待機/ウェイク IRP の送信
マイナー電源IRPコード IRP_MN_WAIT_WAKE は、デバイスのスリープ解除またはシステムのスリープ解除用に提供されます。 自分自身またはシステムをスリープ解除できるデバイスのドライバーは、 IRP_MN_WAIT_WAKE 要求を送信します。 システムは IRP_MN_WAIT_WAKE 要求を、電源ーオンスイッチのような常にシステムをウェイクアップするデバイスにのみ送信します。
ドライバーが IRP_MN_WAIT_WAKE 要求を送る理由は2つの理由のいずれかです:
そのデバイスが、外部からのウェイクアップ信号に応じてスリープ状態から動作状態に戻ることができる必要があります。
例えば、モデムのドライバーはエネルギーを節約するために、電源状態D1に設定する前に待機/ウェイクIRPを送信することがあります。 待機/ウェイクIRP は、モデムが着信呼に応答できるようにします。
そのデバイスは、ウェイクアップ信号に応答してシステムをウェイクアップできなければなりません。
システムがスリープに入ると、モデムは IRP_MN_WAIT_WAKE が保留された状態D1のままになることがあります。 この場合、着信呼があると、モデムだけでなくシステムもウェイクアップします。
デバイスが自分自身をウェイクさせる準備であれ、システムをウェイクさせる準備であれ、そのドライバーが実行する必要があるアクションは同じです。 主な違いは、デバイスとシステムのハードウェアが最初のウェイクアップ信号にどのように応答するかにあります。 ドライバーの動作はどちらの場合でも同じです。