次の方法で共有


PoSetDeviceBusy マクロ (wdm.h)

PoSetDeviceBusy は、IdlePointer に関連付けられているデバイスがビジー状態であることを電源マネージャーに通知するマクロです。

構文

void PoSetDeviceBusy(
  [in, out]  IdlePointer
);

パラメーター

[in, out] IdlePointer

PoRegisterDeviceForIdleDetection によって以前に返された、NULL でないアイドル ポインターを指定します。 PoRegisterDeviceForIdleDetection から NULL ポインターが返される場合があることに注意してください。 PoSetDeviceBusy の呼び出し元は、ポインターを PoSetDeviceBusy に渡す前に、そのポインターが NULL でないことを確認する必要があります。

戻り値

なし

解説

PoSetDeviceBusyEx ルーチンは、PoSetDeviceBusy マクロの直接の置き換えです。 Windows Vista Service Pack 1 (SP1) 以降のバージョンの Windows 用の新しいドライバー コードを作成する場合は、PoSetDeviceBusy ではなく、PoSetDeviceBusyEx を呼び出します。

ドライバーでは、PoSetDeviceBusyPoRegisterDeviceForIdleDetection と共に使用して、デバイスのシステム アイドル検出を有効にします。 アイドル検出の対象として登録されたデバイスがアイドル状態になると、電源マネージャーによって IRP_MN_SET_POWER 要求が送信されて、デバイスが要求されたスリープ状態になります。

PoSetDeviceBusy によって、デバイスがビジー状態であることが報告され、電源マネージャーがアイドル状態のカウントダウンを再開できるようになります。 デバイスの電源が入っていない場合は、PoSetDeviceBusy によって状態が変更されることはありません。 つまり、それによってシステムが電源オン要求を送信することはありません。

ドライバーでは、すべての I/O 要求で PoSetDeviceBusy を呼び出す必要があります。

要件

要件
Header wdm.h (Wdm.h を含む)
IRQL 任意のレベル