Compartir a través de


Función StorPortWaitForSingleObject (storport.h)

Un miniport puede llamar a función StorPortWaitForSingleObject para colocar el subproceso actual en un estado de espera hasta que el objeto distribuidor especificado esté establecido en estado señalado o, opcionalmente, agote el tiempo de espera.

Sintaxis

ULONG StorPortWaitForSingleObject(
  PVOID          HwDeviceExtension,
  PVOID          Object,
  BOOLEAN        Alertable,
  PLARGE_INTEGER Timeout
);

Parámetros

HwDeviceExtension

Puntero a la extensión de dispositivo del miniporte de almacenamiento.

Object

Puntero al objeto distribuidor inicializado (evento, exclusión mutua, semáforo, subproceso o temporizador).

Alertable

El valor booleano establece TRUE si la espera es alertable y FALSE en caso contrario.

Timeout

Puntero al valor de tiempo de espera que especifica el tiempo absoluto o relativo, en unidades de 100 nanosegundos, en las que se va a completar la espera.

Un valor positivo especifica una hora absoluta, relativa al 1 de enero de 1601. Un valor negativo especifica un intervalo relativo a la hora actual. Los tiempos de expiración absolutos realizan un seguimiento de los cambios en la hora del sistema; Los tiempos de expiración relativos no se ven afectados por los cambios en la hora del sistema.

Si tiempo de espera = 0, la rutina devuelve sin esperar. Si el minipuerto proporciona un puntero NULL, la rutina espera indefinidamente hasta que el objeto distribuidor se establece en el estado señalado. Para obtener más información, vea la siguiente sección Comentarios.

Valor devuelto

StorPortSetEvent devuelve un código de estado como uno de los siguientes:

Código devuelto Descripción
STOR_STATUS_INVALID_PARAMETER Uno o varios de los parámetros no son válidos.
STOR_STATUS_SUCCESS El evento ETW se registró correctamente.
STOR_STATUS_UNSUCCESSFUL Error en la operación.

Observaciones

Consulte KeWaitForSingleObject para obtener más información.

Los autores de llamadas de storportWaitForSingleObject deben ejecutarse en IRQL <= DISPATCH_LEVEL. Sin embargo, si tiempo de espera = NULL o Tiempo de espera != 0, el autor de la llamada debe ejecutarse en IRQL <= APC_LEVEL y en un contexto de subproceso nobitrario. (Si tiempo de espera != NULL y Tiempo de espera = 0, el autor de la llamada debe ejecutarse en IRQL <= DISPATCH_LEVEL).)

Requisitos

Requisito Valor
cliente mínimo admitido Windows 10, versión 2004
encabezado de storport.h

Consulte también

KeWaitForSingleObject

storportInitializeEvent

StorportSetEvent