Freigeben über


StorPortWaitForSingleObject-Funktion (storport.h)

Ein Miniport kann die StorPortWaitForSingleObject-Funktion aufrufen, um den aktuellen Thread in einen Wartezustand zu versetzen, bis das angegebene Dispatcherobjekt auf signalisiert oder optional timeout festgelegt ist.

Syntax

ULONG StorPortWaitForSingleObject(
  PVOID          HwDeviceExtension,
  PVOID          Object,
  BOOLEAN        Alertable,
  PLARGE_INTEGER Timeout
);

Parameter

HwDeviceExtension

Zeiger auf die Geräteerweiterung des Speicherminiports.

Object

Zeiger auf das initialisierte Dispatcherobjekt (Ereignis, Mutex, Semaphor, Thread oder Timer).

Alertable

Der boolesche Wert legt TRUE fest, wenn die Wartezeit warnungsfähig ist, andernfalls FALSE.

Timeout

Zeiger auf den Timeoutwert, der die absolute oder relative Zeit in 100 Nanosekundeneinheiten angibt, bei der die Wartezeit abgeschlossen werden soll.

Ein positiver Wert gibt eine absolute Zeit relativ zum 1. Januar 1601 an. Ein negativer Wert gibt ein Intervall relativ zur aktuellen Zeit an. Absolute Ablaufzeiten nachverfolgen alle Änderungen der Systemzeit; relative Ablaufzeiten werden von Systemzeitänderungen nicht beeinflusst.

Wenn Timeout = 0 ist, wird die Routine ohne Wartezeit zurückgegeben. Wenn der Miniport einen NULL-Zeiger bereitstellt, wartet die Routine unbegrenzt, bis das Dispatcherobjekt auf den signalierten Zustand festgelegt ist. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".

Rückgabewert

StorPortSetEvent gibt einen status Code zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STOR_STATUS_INVALID_PARAMETER Mindestens ein Parameter ist ungültig.
STOR_STATUS_SUCCESS Das ETW-Ereignis wurde erfolgreich protokolliert.
STOR_STATUS_UNSUCCESSFUL Fehler beim Vorgang.

Hinweise

Weitere Informationen finden Sie unter KeWaitForSingleObject .

Aufrufer von StorportWaitForSingleObject müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Wenn Jedoch Timeout = NULL oder Timeout != 0 ist, muss der Aufrufer unter IRQL <= APC_LEVEL und in einem nichtarbiträren Threadkontext ausgeführt werden. (Wenn Timeout != NULL und Timeout = 0 sind, muss der Aufrufer unter IRQL <= DISPATCH_LEVEL ausgeführt werden.)

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 2004
Kopfzeile storport.h

Weitere Informationen

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent