PoStartNextPowerIrp 함수(ntifs.h)
PoStartNextPowerIrp 루틴은 드라이버가 다음 전원 IRP를 처리할 준비가 되었음을 전원 관리자에게 알려줍니다. (Windows Server 2003, Windows XP 및 Windows 2000만 해당)
구문
void PoStartNextPowerIrp(
[in, out] PIRP Irp
);
매개 변수
[in, out] Irp
주 함수 코드가 IRP_MJ_POWER IRP에 대한 포인터입니다.
반환 값
없음
설명
Windows Vista부터 드라이버는 PoStartNextPowerIrp를 호출할 필요가 없으며 이 루틴에 대한 호출은 전원 관리 작업을 수행하지 않습니다. 그러나 Windows Server 2003, Windows XP 및 Windows 2000에서 드라이버가 이전 전원 IRP(있는 경우)로 완료된 후 디바이스 스택의 모든 드라이버에서 PoStartNextPowerIrp를 호출하고 다음 전원 IRP를 처리할 준비가 된 경우 PoStartNextPowerIrp을 호출해야 합니다. 모든 IRP_MN_QUERY_POWER 또는 IRP_MN_SET_POWER 요청에 대해 각 드라이버에서 한 번 호출해야 합니다.
전원 IRP는 한 번만 완료되지만, 일반적으로 디바이스에 대한 버스 드라이버에서 IRP가 스택 아래로 이동하거나 백업할 때 디바이스 스택의 각 드라이버는 PoStartNextPowerIrp 를 호출해야 합니다. 드라이버가 IRP에 실패하더라도 드라이버는 PoStartNextPowerIrp 를 호출하여 다른 전원 IRP를 처리할 준비가 되었음을 전원 관리자에게 신호를 보내야 합니다.
현재 IRP 스택 위치가 현재 드라이버를 가리키는 동안 드라이버는 PoStartNextPowerIrp 를 호출해야 합니다. 따라서 IoCompleteRequest, IoSkipCurrentIrpStackLocation 및 PoCallDriver 전에 이 루틴을 호출해야 합니다. 일반적으로 드라이버는 IRP와 연결된 IoCompletion 루틴 또는 PoRequestPowerIrp에 전달된 콜백 루틴에서 PoStartNextPowerIrp를 호출해야 합니다.
버스 드라이버는 각 IRP를 완료하기 전에 PoStartNextPowerIrp 를 호출해야 합니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows 2000부터 사용할 수 있습니다. |
| 대상 플랫폼 | 유니버설 |
| 헤더 | ntifs.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
| 라이브러리 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <=DISPATCH_LEVEL |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기