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(있는 경우)로 완료되고 다음 전원 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 |