Funzione StorPortWaitForSingleObject (storport.h)
Un miniport può chiamare 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, si verifica il timeout.
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 all'ora di sistema.
Se timeout = 0, la routine viene restituita senza attendere. Se il miniport fornisce un puntatore NULL, la routine attende a tempo indeterminato fino a quando l'oggetto dispatcher non viene impostato sullo stato segnalato. Per altre informazioni, vedere la sezione Osservazioni seguente.
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. |
Osservazioni
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 arbitro. Se timeout != NULL e timeout = 0, il chiamante deve essere in esecuzione in IRQL <= DISPATCH_LEVEL.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 2004 |
intestazione | storport.h |