デバイスでウェイクアップが有効になっていない限り、そのドライバーの電源はシステムのシャットダウン時にオフになります。 デバイスは、取り出し時または予期しない取り出し時は常に電源をオフにしておく必要があります。
デバイスが取り出されると、プラグ アンド プレイ マネージャーは IRP_MN_REMOVE_DEVICE 要求をデバイス スタックに送信します。 この IRP に応答して、デバイスのドライバーは、デバイスの電源が切れることを保証する必要があります。 デバイスの電源を切る操作は、取り出し処理の暗黙的な部分です。デバイス電源ポリシー所有者は、PowerDeviceD3 の IRP_MN_SET_POWER を送信する必要はありません。
ドライバーは、IRP_MN_REMOVE_DEVICE 要求を処理すると、保留中の I/O が完了するまで待機し、必要な取り出し処理を実行します。また、PoSetPowerState を呼び出して、デバイスが状態 D3 であることを電源マネージャーに通知し、このデバイス用に作成したデバイス オブジェクトを削除します。 通常、バス ドライバーはデバイスの電源をオフにします。
Windows 2000 以降のオペレーティング システムから予期せずにデバイスが取り出された場合、プラグ アンド プレイ マネージャーは、対応するデバイス スタックの先頭に IRP_MN_SURPRISE_REMOVAL 要求を送信します。 この IRP に応答して、デバイスのドライバーは、「IRP_MN_SURPRISE_REMOVAL 要求の処理」の説明に従って、予期しない取り出し処理を実行する必要があります。
システムのシャットダウン時に、電源マネージャーはシステム電源状態 (S4 または S5) の IRP_MN_SET_POWER を送信します。 デバイス電源ポリシー所有者は、この IRP を受け取ったときに、PowerDeviceD3 の IRP_MN_SET_POWER を送信して、下位ドライバーが作業を完了し、デバイスの電源を切断できるようにする必要があります。
デバイスが使用されていないときに電源をオフにできるように、ドライバーが必要に応じてデバイスのアイドル状態の検出を実行することも、電源マネージャーがアイドル状態の検出を実行するように要求することもできます。 詳細については、「アイドル状態デバイスの検出」を参照してください。