PoSetSystemWake-Funktion (wdm.h)

Die PoSetSystemWake-Routine markiert die angegebene IRP als eine, die dazu beigetragen hat, das System aus einem Ruhezustand zu wecken.

Syntax

void PoSetSystemWake(
  [in, out] PIRP Irp
);

Parameter

[in, out] Irp

Ein Zeiger auf den Warte-/Aktivierungs-IRP.

Rückgabewert

Keine

Bemerkungen

Treiber rufen PoSetSystemWake auf, um eine IRP_MN_WAIT_WAKE IRP als einen Beitrag zum Aufwecken des Systems aus einem Ruhezustand zu markieren. Standardmäßig werden Warte-/Aktivierungs-IRPs als Geräteaktivierungs-IRPs betrachtet. Es liegt in der Verantwortung des Endgeräts in einer Warte-/Reaktivierungskette zu bestimmen, ob es das System weckt und PoSetSystemWake für die Terminalwarte-/Reaktivierungs-IRP aufzurufen. Wenn ein Treiber PoSetSystemWake auf einem IRP aufruft, wird er als dazu beigetragen, dass das System aus einem Ruhezustand aktiviert wurde. Nur ein Treiber in einem Stapel muss diese Routine aufrufen, und normalerweise sollte es sich um den Bustreiber in einem Treiberstapel handelt.

Alle anderen Treiber in einer Warte-/Aktivierungskette können PoGetSystemWake für ihre eigenen Warte-/Aktivierungs-IRPs bei Abschluss aufrufen, um zu bestimmen, ob sie PoSetSystemWake für alle untergeordneten Wait/Wake-IRPs aufrufen sollen, die sie gerade abschließen. Dadurch wird sichergestellt, dass die Systemreaktivierungsinformationen während der gesamten Warte-/Aktivierungskette ordnungsgemäß fortgesetzt werden.

Nach Abschluss eines Warte-/Aktivierungs-IRP überprüft der Power Manager, ob die IRP als Systemreaktivierungs-IRP gekennzeichnet ist. Wenn die IRP als IRP für die Systemreaktivierung gekennzeichnet ist, fügt der Energie-Manager den IRP einer internen Liste der Geräte hinzu, die das System aktiviert haben. Der Energie-Manager verfolgt jedoch nur die spezifischen Geräte nach, die das System verwenden. Wenn beispielsweise Gerät A als Gerät hinzugefügt wird, das das System aktiviert, und dann gerät B – ein untergeordnetes Element von Gerät A – wird ebenfalls hinzugefügt, behält der Energie-Manager nur Gerät B in der Liste bei, da Gerät B das spezifischste ist. Wenn der Energie-Manager das spezifischste Gerät, das das System weckt, nicht ermitteln kann, verfolgt der Energiemanager möglicherweise mehrere Geräte, die gemeldet haben, dass es das System weckt.

Der Power Manager protokolliert ein ETW-Ereignis (Ereignisablaufverfolgung für Windows) (im globalen Systemkanal sichtbar), das Informationen darüber enthält, welche Geräte das System aktiviert haben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows Vista.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

PoGetSystemWake