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, IoSkipCurrentIrpStackLocationPoCallDriver 전에 호출되어야 합니다. 일반적으로 드라이버는 IRP와 연결된 IoCompletion 루틴 또는 PoRequestPowerIrp에 전달된 콜백 루틴에서 PoStartNextPowerIrp을 호출해야 합니다.

버스 드라이버는 각 IRP를 완료하기 전에 PoStartNextPowerIrp 를 호출해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000.
대상 플랫폼 유니버설
헤더 ntifs.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

추가 정보

IRP

IRP_MJ_POWER

IRP_MN_QUERY_POWER

IRP_MN_SET_POWER

IoCompleteRequest

IoSkipCurrentIrpStackLocation

PoCallDriver

PoRequestPowerIrp