Freigeben über


StorPortWaitForSingleObject-Funktion (storport.h)

Ein Miniport kann StorPortWaitForSingleObject--Funktion aufrufen, um den aktuellen Thread in einen Wartezustand zu versetzen, bis das angegebene Dispatcherobjekt auf den signalierten Zustand oder optional ein Zeitüberschreitung 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

Boolescher Wert legt TRUE fest, wenn die Wartezeit warnbar ist und andernfalls FALSE.

Timeout

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

Ein positiver Wert gibt eine absolute Zeit im Verhältnis zum 1. Januar 1601 an. Ein negativer Wert gibt ein Intervall relativ zur aktuellen Uhrzeit an. Absolute Ablaufzeiten verfolgen alle Änderungen der Systemzeit; Relative Ablaufzeiten sind von Systemzeitänderungen nicht betroffen.

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

Rückgabewert

StorPortSetEvent gibt einen Statuscode wie einen der folgenden zurück:

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.

Bemerkungen

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 ausgeführt werden muss, muss der Aufrufer bei IRQL <= APC_LEVEL und in einem nichtarbiträren Threadkontext ausgeführt werden. (Wenn Timeout != NULL und Timeout- = 0 ist, muss der Aufrufer bei IRQL-<= DISPATCH_LEVEL ausgeführt werden.)

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10, Version 2004
Header- storport.h

Siehe auch

KeWaitForSingleObject

StorportInitializeEvent-

StorportSetEvent-