다음을 통해 공유


WdfDeviceGetSystemPowerAction 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

WdfDeviceGetSystemPowerAction 메서드는 컴퓨터에 대해 현재 발생하는 시스템 전원 작업(있는 경우)을 반환합니다.

구문

POWER_ACTION WdfDeviceGetSystemPowerAction(
  [in] WDFDEVICE Device
);

매개 변수

[in] Device

프레임워크 디바이스 개체에 대한 핸들입니다.

반환 값

WdfDeviceGetSystemPowerAction 은 POWER_ACTION 형식의 열거자 값을 반환합니다. 값은 컴퓨터에 대해 현재 발생하는 시스템 전원 동작 을 나타냅니다. 자세한 내용은 아래 설명 부분을 참조하십시오. POWER_ACTION 열거형은 wdm.h에 정의되어 있습니다.

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

WDF 버전 1.31/2.31("v31"이라고 함)부터 WdfDeviceGetSystemPowerAction 은 디바이스가 전원 정책 소유자일 때 시스템 전원 작업을 보다 정확하게 보고하도록 업데이트되었습니다. 다음과 같은 새 동작을 얻으려면 드라이버를 v31 이상으로 다시 컴파일해야 합니다.

  • 관련 없는 시스템 전원 전환이 진행 중인 동안 S0 유휴 상태( WdfDeviceAssignS0IdleSettings 참조)로 인해 디바이스가 D0에 들어오거나 종료되면 WdfDeviceGetSystemPowerActionPowerActionSleep을 반환할 수 있습니다. 이 문제는 v31에서 수정되었으며 이제 PowerActionNone을 반환합니다.

  • 시스템이 하이브리드 절전 모드에서 해제되면(최대 절전 모드 파일로 절전 모드) v31 전에 WdfDeviceGetSystemPowerAction 은 항상 PowerActionHibernate를 반환했습니다. 이 문제는 v31에서 수정되었으며 이제 다음을 반환합니다.

    • PowerActionSleep 이 전원 손실 없이 절전 모드에서 해제되면 시스템이 S3에 유지됨을 의미합니다.
    • PowerActionHibernate 전원 손실 후 절전 모드가 해제되면 시스템이 최대 절전 모드 파일에서 다시 시작됨을 의미합니다.

WdfDeviceGetSystemPowerAction 메서드를 사용하면 드라이버가 디바이스가 유휴 상태(또는 절전 모드 해제)되어 디바이스의 전원 전환이 발생하는지 또는 전체 컴퓨터가 저전력 상태로 전환(또는 중단)되어 있는지 여부를 확인할 수 있습니다.

드라이버는 디바이스가 저전력 상태로 들어가거나 작업 상태로 돌아갈 때 프레임워크가 호출하는 이벤트 콜백 함수에서만 WdfDeviceGetSystemPowerAction을 호출해야 합니다.

WdfDeviceGetSystemPowerAction이 반환하는 값은 다음과 같은 상황에 따라 달라집니다.

  • 드라이버가 WdfDeviceGetSystemPowerAction을 호출할 때 컴퓨터가 저전력 상태로 진입하는 경우 메서드는 컴퓨터가 저전력 상태로 들어가는 이유를 반환합니다. 예를 들어 컴퓨터가 S1, S2 또는 S3 저전력 상태를 입력하는 경우 메서드는 PowerActionSleep 을 반환합니다.
  • 드라이버가 WdfDeviceGetSystemPowerAction을 호출할 때 컴퓨터가 저전력 상태에서 작동(S0) 상태로 돌아가는 경우 메서드는 컴퓨터가 저전력 상태로 진입한 이유를 반환합니다. 예를 들어 컴퓨터가 S1, S2 또는 S3 저전력 상태를 벗어나면 메서드는 PowerActionSleep 을 반환합니다.
  • 드라이버가 WdfDeviceGetSystemPowerAction을 호출할 때 컴퓨터의 전원이 켜지면(꺼진 후) 메서드는 PowerActionNone을 반환합니다.
  • 드라이버가 WdfDeviceGetSystemPowerAction을 호출할 때 디바이스가 저전력 유휴 상태로 전환되거나 작동 중(D0) 상태로 돌아가고 나머지 시스템은 작동 중(S0) 상태로 유지되면 메서드는 PowerActionNone을 반환합니다.
  • 드라이버가 WdfDeviceGetSystemPowerAction을 호출할 때 컴퓨터와 디바이스가 모두 작동 상태에 있는 경우 메서드는 PowerActionNone을 반환합니다.
저전력 상태에 대한 자세한 내용은 디바이스가 Low-Power 상태를 입력을 참조하세요.

예제

다음 코드 예제에서는 컴퓨터에 대해 현재 발생 하는 전원 전환 작업을 가져옵니다.

POWER_ACTION SysPowerAction;

SysPowerAction = WdfDeviceGetSystemPowerAction(device);

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.9
최소 UMDF 버전 2.0
머리글 wdfdevice.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL <= DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)