다음을 통해 공유


PoStartNextPowerIrp 호출

Windows Vista부터 PoStartNextPowerIrp 를 호출할 필요가 없으며 이 루틴에 대한 호출은 전원 관리 작업을 수행하지 않습니다. 그러나 Windows Server 2003, Windows XP 및 Windows 2000에서 드라이버가 쿼리 전원 IRP 또는 전원 설정 IRP를 처리한 후 드라이버는 PoStartNextPowerIrp 를 호출하여 다른 전원 IRP를 받을 준비가 되었음을 전원 관리자에게 알려야 합니다. IRP 스택 위치가 현재 드라이버를 가리키고 PoCallDriver를 호출하기 전에 드라이버가 PoStartNextPowerIrp을 호출해야 합니다.

드라이버는 수신하는 각 IRP_MN_QUERY_POWER 또는 IRP_MN_SET_POWER 요청에 대해 이 루틴을 한 번 호출해야 합니다. 드라이버는 IRP_MN_WAIT_WAKE 또는 IRP_MN_POWER_SEQUENCE 요청을 처리할 때 PoStartNextPowerIrp을 호출할 필요가 없습니다.

드라이버가 PoStartNextPowerIrp를 호출하면 현재 IRP 스택 위치가 현재 드라이버를 가리킵니다. 일반적으로 이 호출은 IoCompletion 루틴에서 가장 적합합니다. IoCompleteRequest, IoSkipCurrentIrpStackLocationPoCallDriver 전에 PoStartNextPowerIrp을 호출해야 합니다. 루틴을 다른 순서로 호출하면 시스템 교착 상태가 발생할 수 있습니다.

드라이버가 IRP에 실패하더라도 PoStartNextPowerIrp 를 호출하여 다른 전원 IRP를 처리할 준비가 되었다는 것을 전원 관리자에게 알려야 합니다.

다음 섹션에서는 각 유형의 드라이버가 이 루틴을 호출해야 하는 시기를 명확히 설명합니다.

필터 드라이버에서 PoStartNextPowerIrp 호출

디바이스 전원 정책 소유자로부터 PoStartNextPowerIrp 호출

버스 드라이버에서 PoStartNextPowerIrp 호출