Windows Vista부터 PoStartNextPowerIrp 를 호출할 필요가 없으며 이 루틴에 대한 호출은 전원 관리 작업을 수행하지 않습니다. 그러나 Windows Server 2003, Windows XP 및 Windows 2000에서 필터 드라이버는 드라이버가 수신하는 모든 IRP_MN_QUERY_POWER 또는 IRP_MN_SET_POWER 요청에 대해 PoStartNextPowerIrp를 한 번 호출해야 합니다. 호출이 발생하는 시기는 다음 표와 같이 요청 유형 및 드라이버가 요청에 실패할지 또는 성공하는지에 따라 달라집니다.
| 요청 유형 | 드라이버가 요청에 성공하면 호출이 발생합니다. | 드라이버가 요청에 실패하면 호출이 발생합니다. |
|---|---|---|
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 스택 위치 설정 전입니다. |
허용되지 않습니다. |