Share via


PoSetPowerState 함수(ntifs.h)

PoSetPowerState 루틴은 디바이스의 디바이스 전원 상태 변경에 대해 시스템에 알합니다.

구문

POWER_STATE PoSetPowerState(
  [in] PDEVICE_OBJECT   DeviceObject,
  [in] POWER_STATE_TYPE Type,
  [in] POWER_STATE      State
);

매개 변수

[in] DeviceObject

대상 DEVICE_OBJECT 대한 포인터입니다.

[in] Type

POWER_STATE_TYPE 값을 나타냅니다. 드라이버는 DevicePowerState를 지정해야 합니다.

[in] State

설정할 전원 상태를 지정합니다. 드라이버는 DEVICE_POWER_STATE 값을 지정해야 합니다.

반환 값

PoSetPowerState 는 이전 전원 상태를 반환합니다.

설명

PoSetPowerState 는 디바이스에 대한 새 전원 상태의 전원 관리자 에게 알 수 있습니다. 디바이스 스택(필터, 함수 및 버스 드라이버)의 각 드라이버는 PoSetPowerState 를 호출하여 해당 디바이스 개체의 전원 상태 변경을 전원 관리자에게 알려야 합니다. 예를 들면 다음과 같습니다.

  • 드라이버는 디바이스 설정 전원 요청을 받은 후 PoStartNextPowerIrp을 호출하기 전에 이 루틴을 호출합니다. PnP IRP_MN_START_DEVICE 요청을 처리할 때 드라이버는 PoSetPowerState 를 호출하여 디바이스가 D0 상태임을 전원 관리자에게 알려야 합니다.

  • 디바이스 전원이 켜진 경우 드라이버는 D0 상태를 떠나기 전에 PoSetPowerState 를 호출해야 합니다. 또한 PoSetPowerState 가 반환되기 전에 드라이버가 클라이언트 요청을 처리할 수 있어야 합니다.

  • 디바이스 전원이 켜진 경우 디바이스가 D0 상태로 전환된 후 드라이버가 PoSetPowerState 를 호출해야 합니다.

디바이스를 위아래로 전원을 공급하는 방법에 대한 자세한 내용은 디바이스 전원 상태에 대한 IRP_MN_SET_POWER 처리를 참조하세요.

PoSetPowerState의 호출자는 상태를 D0으로 설정하는 경우를 제외하고 IRQL <= APC_LEVEL 실행되어야 합니다. 상태를 D0으로 설정할 때 호출자는 IRQL <= DISPATCH_LEVEL 실행할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000
대상 플랫폼 유니버설
헤더 ntifs.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 설명 섹션을 참조하십시오.

추가 정보

IRP_MN_START_DEVICE

PoStartNextPowerIrp