Condividi tramite


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

Vedi anche

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent