PoSetDeviceBusy-Makro (wdm.h)
Das PoSetDeviceBusy-Makro benachrichtigt den Power-Manager , dass das Mit IdlePointer zugeordnete Gerät ausgelastet ist.
Syntax
void PoSetDeviceBusy(
[in, out] IdlePointer
);
Parameter
[in, out] IdlePointer
Gibt einen Nicht-NULL-Leerlaufzeiger an, der zuvor von PoRegisterDeviceForIdleDetection zurückgegeben wurde. Beachten Sie, dass PoRegisterDeviceForIdleDetection möglicherweise einen NULL-Zeiger zurückgibt. Ein Aufrufer von PoSetDeviceBusy muss überprüfen, ob der Zeiger nicht NULL ist, bevor er an PoSetDeviceBusy übergeben wird.
Rückgabewert
Keine
Bemerkungen
Die PoSetDeviceBusyEx-Routine ist ein direkter Ersatz für das PoSetDeviceBusy-Makro . Wenn Sie neuen Treibercode für Windows Vista mit Service Pack 1 (SP1) und höheren Versionen von Windows schreiben, rufen Sie PoSetDeviceBusyEx anstelle von PoSetDeviceBusy Auf.
Ein Treiber verwendet PoSetDeviceBusy zusammen mit PoRegisterDeviceForIdleDetection , um die System-Leerlauferkennung für sein Gerät zu aktivieren. Wenn ein Gerät, das für die Leerlauferkennung registriert ist, im Leerlauf ist, sendet der Power Manager eine IRP_MN_SET_POWER Anforderung, um das Gerät in einen angeforderten Ruhezustand zu versetzen.
PoSetDeviceBusy meldet, dass das Gerät ausgelastet ist, sodass der Power Manager seinen Leerlauf-Countdown neu starten kann. Wenn das Gerät nicht eingeschaltet ist, ändert PoSetDeviceBusy seinen Zustand nicht. Das heißt, es führt nicht dazu, dass das System eine Einschaltanforderung sendet.
Ein Treiber sollte PoSetDeviceBusy bei jeder E/A-Anforderung aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (einschließen von Wdm.h) |
IRQL | Beliebige Ebene |