Freigeben über


EngWaitForSingleObject-Funktion (winddi.h)

Die EngWaitForSingleObject-Funktion versetzt den aktuellen Thread des Anzeigetreibers in einen Wartezustand, bis das angegebene Ereignisobjekt auf den signalierten Zustand festgelegt ist oder bis das Wartezeitüberschreitungsüberschreitung eintritt.

Syntax

ENGAPI BOOL EngWaitForSingleObject(
  [in] PEVENT         pEvent,
  [in] PLARGE_INTEGER pTimeOut
);

Parameter

[in] pEvent

Zeiger auf ein initialisiertes Ereignisobjekt. Dieses Ereignisobjekthandle wurde in einem vorherigen Aufruf von EngCreateEvent abgerufen.

[in] pTimeOut

(Optional) Zeiger auf einen Timeoutwert, der die absolute oder relative Zeit angibt, zu der die Wartezeit abgeschlossen werden soll. Ein negativer Wert gibt ein Intervall relativ zur aktuellen Zeit an. Der Wert sollte in Einheiten von 100 Nanosekunden ausgedrückt werden. Absolute Ablaufzeiten nachverfolgen alle Änderungen der Systemzeit; relative Ablaufzeiten werden von Systemzeitänderungen nicht beeinflusst. Wenn pTimeOutNULL ist, bleibt der aufrufende Thread in einem Wartezustand, bis das Ereignisobjekt signalisiert wird.

Rückgabewert

EngWaitForSingleObject gibt bei Erfolg TRUE zurück, was das Auftreten eines Timeouts einschließt. Andernfalls wird FALSE zurückgegeben. Der Rückgabewert FALSE gibt an, dass einer der Parameter ungültig ist.

Hinweise

EngWaitForSingleObject bewirkt, dass ein Anzeigetreiberthread in einen Wartezustand versetzt wird. Der Anzeigetreiberthread bleibt im Wartezustand, bis entweder das Ereignisobjekt auf den signalierten Zustand festgelegt ist oder bis das Wartezeitüberschreitungsüberschreitung besteht. Wenn kein Timeoutwert angegeben wird, bleibt der Anzeigetreiberthread im Wartezustand, bis das Ereignisobjekt auf den signalierten Zustand festgelegt ist.

Ein Synchronisierungsereignis wird automatisch auf den nicht signalierten Zustand zurückgesetzt, wenn die Wartezeit erfüllt ist. Daher wird nur eine Wartezeit pro Aufruf von EngSetEvent oder VideoPortSetEvent erfüllt. Im Gegensatz dazu wird ein Benachrichtigungsereignis nicht automatisch zurückgesetzt.

Ein Timeoutwert von 0 ermöglicht es dem Treiber, die Wartebedingung zu testen und alle Nebenwirkungen bedingt auszuführen, vorausgesetzt, die Wartezeit kann sofort erfüllt werden.

Der Anzeigetreiber kann Zeichnungsvorgänge zwischen sich und dem Videominiporttreiber synchronisieren, indem Er EngWaitForSingleObject mit einem Ereignisobjekt aufruft und wartet, bis der Miniporttreiber das Ereignisobjekt auf den signalierten Zustand festlegt.

Der Treiber kann EngWaitForSingleObject bei ereignissen, die von EngMapEvent zurückgegeben werden, nicht aufrufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Diese Funktion ist in Windows XP und höher verfügbar.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

EngCreateEvent

EngSetEvent

VideoPortSetEvent