Condividi tramite


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

Vedere anche

KeWaitForSingleObject

StorportInitializeEvent

storportSetEvent