Freigeben über


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