IAdapterPowerManagement::P owerChangeState 메서드(portcls.h)

메서드는 PowerChangeState 디바이스가 새 전원 상태로 변경되도록 요청합니다.

구문

void PowerChangeState(
  [in] POWER_STATE NewState
);

매개 변수

[in] NewState

디바이스에 대해 요청되는 새 전원 상태를 지정합니다. 이 매개 변수는 POWER_STATE 형식의 공용 구조체입니다. 새 전원 상태(NewState.DeviceState)는 다음 표에 표시된 DEVICE_POWER_STATE 열거형 값 중 하나일 수 있습니다.

전원 상태 의미
PowerDeviceD0 전체 전원 상태(D0). 이 코드는 현재 전원 상태의 함수일 수 있습니다. 새 상태를 저장합니다. 이 로컬 값은 속성 액세스를 캐시할 시기와 드라이버가 하드웨어에 액세스하도록 허용할 시기를 결정하는 데 사용됩니다.
PowerDeviceD1 D0으로 반환하는 데 필요한 대기 시간과 관련하여 대기 시간이 가장 짧은 절전 모드 상태입니다.
PowerDeviceD2 중간 대기 시간 절전 상태입니다. 이 상태에서 디바이스 드라이버는 하드웨어를 터치할 수 있다고 가정할 수 없으므로 D0을 입력할 때 액세스 권한을 캐시하고 하드웨어를 복원해야 합니다.
PowerDeviceD3 전체 최대 절전 모드 상태이며 가장 긴 대기 시간 절전 상태입니다. 드라이버는 이 상태의 하드웨어에 액세스할 수 없으며, D0 또는 D1로 돌아가면 하드웨어 액세스를 캐시하고 하드웨어를 복원해야 합니다.

반환 값

없음

설명

PortCls는 IRP_MN_SET_POWER 전원 IRP에 대한 응답으로 메서드를 호출 PowerChangeState 합니다. 이 호출은 실패하지 않아야 합니다. PortCls 및 시스템은 호출을 PowerChangeState 사용하여 디바이스를 원하는 전원 상태로 배치합니다. 시스템이 활성 오디오 스트림을 일시 중단하거나 다시 시작하려고 할 때 드라이버는 디바이스 컨텍스트를 적절하게 저장하거나 복원할 수 있어야 합니다.

드라이버를 지원하기 위해 PortCls는 이 메서드를 호출하기 전에 활성 오디오 스트림을 일시 중지하여 디바이스를 절전 모드 상태로 만듭니다. 이 메서드를 호출한 후 PortCls는 활성 오디오 스트림을 일시 중지하여 디바이스를 절전 모드 해제합니다. 미니포트는 IPowerNotify 인터페이스를 활용하여 추가 알림을 선택할 수 있습니다.

미니포트 드라이버는 호출에서 PowerChangeState 반환되기 전에 디바이스의 전원 상태에 대해 요청된 변경을 수행해야 합니다. 미니포트 드라이버가 전원 상태를 변경하기 전에 디바이스 상태를 저장하거나 복원해야 하는 경우 미니포트 드라이버는 IPowerNotify 인터페이스를 지원해야 하며, 이를 통해 이러한 변경에 대한 사전 경고를 받을 수 있습니다. 성공적인 PowerChangeState 호출에서 반환하기 전에 미니포트 드라이버는 새 전원 상태를 캐시해야 합니다.

미니포트 드라이버는 절전 상태(PowerDeviceD0 이외의 모든 상태) 중 하나에 있지만 하드웨어에 쓰지 않아야 합니다. 미니포트 드라이버는 디바이스가 다시 작동할 때까지 연기해야 하는 모든 하드웨어 액세스를 캐시해야 합니다. 전원 상태가 절전 상태 중 하나에서 PowerDeviceD0으로 변경되는 경우 미니포트 드라이버는 디바이스 전원이 공급된 후 지연된 하드웨어 액세스를 수행해야 합니다. 전원 상태가 PowerDeviceD0에서 절전 상태로 변경되는 경우 미니포트 드라이버는 디바이스 전원을 켜기 전에 호출 중에 PowerChangeState 필요한 하드웨어 액세스를 수행할 수 있습니다.

전원을 낮추면 미니포트 드라이버에 미니포트 드라이버 개체 또는 스트림 개체를 만들라는 메시지가 나타나지 않습니다. PortCls는 항상 미니포트 드라이버의 NewStream 메서드를 호출하기 전에 디바이스를 PowerDeviceD0 상태에 배치합니다.

이 메서드의 코드는 페이징된 메모리에 있어야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 portcls.h(Portcls.h 포함)

추가 정보

IAdapterPowerManagement

IPowerNotify

IRP_MN_SET_POWER