PoFxNotifySurprisePowerOn 함수(wdm.h)

PoFxNotifySurprisePowerOn 루틴은 디바이스가 다른 디바이스에 전원을 공급하는 부작용으로 켜져 있음을 PoFx(전원 관리 프레임워크)에 알릴 수 있습니다.

구문

void PoFxNotifySurprisePowerOn(
  [in] PDEVICE_OBJECT Pdo
);

매개 변수

[in] Pdo

PDO( 물리적 디바이스 개체 )에 대한 포인터입니다. 이 매개 변수는 부작용으로 켜진 물리적 디바이스를 나타내는 DEVICE_OBJECT 구조를 가리킵니다. 호출자는 항상 PDO를 열거한 버스 드라이버입니다.

반환 값

없음

설명

디바이스 드라이버는 이 루틴을 호출해서는 안 됩니다. 이 루틴은 버스 드라이버에서만 호출해야 합니다.

버스 드라이버는 이 루틴을 호출하여 현재 사용되지 않는 디바이스가 두 번째 디바이스와 동시에 부수적으로 켜져 있음을 PoFx에 알릴 수 있습니다. 예를 들어 첫 번째 디바이스는 두 번째 디바이스와 전원 레일을 공유할 수 있습니다. 따라서 전원을 공급하지 않고는 두 번째 디바이스에 전원을 공급할 수 없으며, 부작용으로 첫 번째 디바이스에 전원을 공급할 수 없습니다. 첫 번째 디바이스가 사용되지 않으므로 이 디바이스는 가능한 한 적은 전원을 사용하도록 구성해야 합니다.

D0 전원 상태로의 전환을 요청하기 위해 디바이스 드라이버는 디바이스 스택 아래로 IRP_MN_SET_POWER 요청을 보냅니다. 이 스택의 PDO를 통해 이 디바이스의 부모인 버스 드라이버는 요청을 수신하고 디바이스에 전원을 공급하여 응답합니다. 그러나 버스 드라이버가 사용하지 않는 두 번째 디바이스를 켜지 않고도 이 디바이스를 켤 수 없는 경우 버스 드라이버는 PoFxNotifySurprisePowerOn 을 호출하여 사용하지 않는 디바이스에서 사용하는 전원을 줄일 수 있습니다.

PoFxNotifySurprisePowerOn에 입력할 때 Pdo 매개 변수로 표시되는 디바이스는 초기화되지 않은 D0 전원 상태에 있습니다. 이 상태에서는 디바이스의 모든 구성 요소가 일반적으로 켜져 있습니다. PoFxNotifySurprisePowerOn 호출에 대한 응답으로 PoFx는 초기화된 D0 상태에서 디바이스를 구성합니다. 이 구성 중에 PoFx는 가능한 한 많은 구성 요소를 저전력 Fx 전원 상태로 전환합니다. 가능한 경우 PoFx는 디바이스를 "핫 D3" 상태로 구성합니다. 이 상태는 실제로 디바이스의 모든 개별 구성 요소가 꺼져 있는 D0 상태입니다.

PoFxNotifySurprisePowerOn 은 디바이스가 이전에 꺼졌을 때 PoFx에 등록된 디바이스만 구성할 수 있습니다. 그러나 버스 드라이버가 디바이스가 등록되지 않았다는 것을 알지 못하는 한, 버스 드라이버는 디바이스가 부작용으로 켜져 있을 때 PoFxNotifySurprisePowerOn 을 호출해야 합니다.

디바이스가 켜져 있을 때 버스 드라이버가 이 루틴을 호출하지 못하면 디바이스 하드웨어가 무기한으로 완전히 켜져 있을 수 있으며, PoFx는 디바이스가 D3(완전히 꺼진) 전원 상태로 유지된다고 가정합니다.

PoFxNotifySurprisePowerOn은 디바이스가 부수적으로 켜져 있는 경우에만 다른 디바이스를 켜는 부작용으로 호출합니다. 버스 드라이버가 DevicePowerRequiredCallback 콜백 또는 D0 전환에 대한 IRP_MN_SET_POWER 요청에 대한 응답으로 디바이스에 전원을 복원하는 경우 대신 PoFxReportDevicePoweredOn 루틴을 호출하여 전원이 디바이스로 복원될 때 PoFx에 알릴 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 시작해서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h
라이브러리 Ntoskrnl.lib
DLL Ntoskrnl.exe
IRQL <= DISPATCH_LEVEL

추가 정보

DEVICE_OBJECT

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PoFxReportDevicePoweredOn