PoStartNextPowerIrp 함수(ntifs.h)
PoStartNextPowerIrp 루틴은 드라이버가 다음 전원 IRP처리할 준비가 되었음을 전원 관리자에 신호를 표시합니다. (Windows Server 2003, Windows XP 및 Windows 2000만 해당)
통사론
void PoStartNextPowerIrp(
[in, out] PIRP Irp
);
매개 변수
[in, out] Irp
주 함수 코드가 IRP_MJ_POWERIRP에 대한 포인터입니다.
반환 값
없음
발언
Windows Vista부터 드라이버는 poStartNextPowerIrp 호출할 필요가 없으며 이 루틴에 대한 호출은 전원 관리 작업을 수행하지 않습니다. 그러나 Windows Server 2003, Windows XP 및 Windows 2000에서 PoStartNextPowerIrp 드라이버가 이전 전원 IRP(있는 경우)로 완료되고 다음 전원 IRP를 처리할 준비가 된 후 디바이스 스택의 모든 드라이버에서 호출해야 합니다. 모든 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 |