フィルター ドライバーからの PoStartNextPowerIrp の呼び出し
Windows Vista 以降では、PoStartNextPowerIrp を呼び出す必要はなく、このルーチンを呼び出しても電源管理操作は実行されません。 ただし、Windows Server 2003、Windows XP、および Windows 2000 では、バス ドライバーは、ドライバーが受け取る IRP_MN_QUERY_POWER または IRP_MN_SET_POWER 要求ごとに PoStartNextPowerIrp を 1 回呼び出す必要があります。 次の表に示すように、呼び出しが発生するタイミングは、要求の種類と、ドライバーが失敗するか成功するかによって異なります。
要求の種類 | ドライバーが要求に成功すると、呼び出しが発生します。 | ドライバーが要求に成功すると、呼び出しが発生します。 |
---|---|---|
IRP_MN_QUERY_POWER (デバイスの電源状態) |
IoCompletion ルーチンで、戻る直前。 |
DispatchPower ルーチンで、IoCompleteRequest を呼び出す前。 |
IRP_MN_QUERY_POWER (デバイスの電源状態) |
DispatchPower ルーチンで、ロックの削除を取得した後、IRP スタックの場所を設定する前。 |
DispatchPower ルーチンで、IoCompleteRequest を呼び出す前。 |
IRP_MN_SET_POWER (デバイスの電源状態) |
IoCompletion ルーチンで、戻る直前。 |
許可されていません。 |
システム電源状態の IRP_MN_SET_POWER |
DispatchPower ルーチンで、ロックの削除を取得した後、IRP スタックの場所を設定する前。 |
許可されていません。 |