次の方法で共有


電源 IRP の処理

ドライバーは、DispatchPower ルーチンで電源 IRP を処理します。 すべての電源管理要求には、主要な IRP コード IRP_MJ_POWER と次のいずれかのマイナー コードがあります。

IRP_MN_QUERY_POWER — 電源状態の変更が可能かどうかを判断するクエリ

IRP_MN_SET_POWER — ある電源状態から別の電源状態への変更を要求します

IRP_MN_WAIT_WAKE — デバイスが自身またはシステムのウェイクアップを有効にすることを要求します

IRP_MN_POWER_SEQUENCE — 特定のデバイスへの電力復元を最適化するための情報を要求します

IRP_MN_SET_POWERIRP_MN_QUERY_POWER のサポートが必要です。 これらの IRP を処理するには、すべてのドライバーを準備する必要があります。

IRP_MN_WAIT_WAKE のサポートは、外部信号に応答してウェイクアップできる任意のデバイスのデバイス スタック内のすべてのドライバーに必要です。 ドライバーは、この IRP を送信して、ウェイクアップのデバイスを有効にします。

IRP_MN_POWER_SEQUENCE のサポートは省略可能です。 この IRP は、電源を復元するのに長い時間がかかるデバイスの最適化を提供します。

電源 IRP は、システム電源操作またはデバイスの電源操作を指定できます。 次のセクションで説明するように、「システム用の電源 IRP」と「個々のデバイスの電源 IRP」は、デバイス スタックを通じて少し異なるパスを使用します。