Compartir a través de


Función StorPortWaitForSingleObject (storport.h)

Un minipuerto puede llamar a la 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 del dispositivo del minipuerto 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 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 de hora del sistema.

Si Timeout = 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 sección Comentarios que se muestra más adelante.

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.

Comentarios

Consulte KeWaitForSingleObject para obtener más detalles.

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

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 2004
Encabezado storport.h

Consulte también

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent