Funzione StorPortWaitForSingleObject (storport.h)
Un miniport può chiamare la funzione StorPortWaitForSingleObject per inserire il thread corrente in uno stato di attesa fino a quando l'oggetto dispatcher specificato non viene impostato sullo stato segnalato o, facoltativamente, scade.
Sintassi
ULONG StorPortWaitForSingleObject(
PVOID HwDeviceExtension,
PVOID Object,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout
);
Parametri
HwDeviceExtension
Puntatore all'estensione del dispositivo del miniport di archiviazione.
Object
Puntatore all'oggetto dispatcher inizializzato (evento, mutex, semaforo, thread o timer).
Alertable
Valore booleano impostato su TRUE se l'attesa è avvisabile e FALSE in caso contrario.
Timeout
Puntatore al valore di timeout che specifica il tempo assoluto o relativo, in unità di 100 nanosecondi, in cui l'attesa deve essere completata.
Un valore positivo specifica un'ora assoluta, rispetto al 1° gennaio 1601. Un valore negativo specifica un intervallo relativo all'ora corrente. I tempi di scadenza assoluti tengono traccia delle modifiche apportate all'ora di sistema; le ore di scadenza relative non sono interessate dalle modifiche apportate all'ora di sistema.
Se Timeout = 0, la routine restituisce senza attendere. Se il miniport fornisce un puntatore NULL, la routine attende per un periodo illimitato fino a quando l'oggetto dispatcher non viene impostato sullo stato segnalato. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
Valore restituito
StorPortSetEvent restituisce un codice di stato, ad esempio uno dei seguenti:
Codice restituito | Descrizione |
---|---|
STOR_STATUS_INVALID_PARAMETER | Uno o più parametri non sono validi. |
STOR_STATUS_SUCCESS | L'evento ETW è stato registrato correttamente. |
STOR_STATUS_UNSUCCESSFUL | Operazione non riuscita. |
Commenti
Per altri dettagli, vedere KeWaitForSingleObject .
I chiamanti di StorportWaitForSingleObject devono essere in esecuzione in IRQL <= DISPATCH_LEVEL. Tuttavia, se Timeout = NULL o Timeout != 0, il chiamante deve essere in esecuzione in IRQL <= APC_LEVEL e in un contesto di thread non arbiverso. Se Timeout != NULL e Timeout = 0, il chiamante deve essere in esecuzione in IRQL <= DISPATCH_LEVEL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 2004 |
Intestazione | storport.h |