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 |