IWDFDevice2::AssignSxWakeSettings 메서드(wudfddi.h)

[경고: UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한됩니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF를 사용하여 시작 참조하세요.]

AssignSxWakeSettings 메서드는 디바이스와 시스템이 모두 저전력 상태인 동안 절전 신호를 트리거하는 디바이스의 기능에 대한 드라이버 제공 정보를 제공합니다.

구문

HRESULT AssignSxWakeSettings(
  [in] DEVICE_POWER_STATE                    DxState,
  [in] WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings,
  [in] WDF_TRI_STATE                         Enabled
);

매개 변수

[in] DxState

시스템 전원 상태가 절전 모드 해제 가능한 저전력 상태로 떨어질 때 디바이스가 입력할 낮은 디바이스 전원 상태를 식별하는 DEVICE_POWER_STATE 형식의 열거자입니다. DxState 값은 PowerDeviceD0일 수 없습니다. DEVICE_POWER_STATE 값은 wdm.h에 정의됩니다.

[in] UserControlOfWakeSettings

사용자가 디바이스의 절식 설정을 수정할 수 있는지 여부를 나타내는 WDF_POWER_POLICY_SX_WAKE_USER_CONTROL 형식의 열거자입니다.

[in] Enabled

시스템이 저전력 상태일 때 디바이스가 시스템 절전 모드를 해제할 수 있는지(즉, 시스템을 S0으로 복원)할 수 있는지 여부를 나타내는 WDF_TRI_STATE 형식의 열거자입니다. 이 멤버는 다음 값 중 하나를 가질 수 있습니다.

WdfTrue - 시스템 절전 모드 해제가 사용하도록 설정됩니다.

WdfFalse - 시스템을 해제할 수 없습니다.

WdfUseDefault - 시스템 절전 모드 해제는 기본적으로 기본적으로 사용하도록 설정됩니다. 하지만 UserControlOfWakeSettings 멤버가 WakeAllowUserControl로 설정된 경우 사용자의 설정 또는 드라이버의 INF 파일이 초기 값을 재정의합니다.

시스템을 절전 모드에서 해제하고 시스템이 저전력 상태로 진입하려고 하는 경우 프레임워크는 디바이스가 저전력 상태가 되기 전에 드라이버의 IPowerPolicyCallbackWakeFromSx::OnArmWakeFromSx 콜백 함수를 호출합니다.

반환 값

AssignSxWakeSettings는 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
E_INVALIDARG
호출자가 입력 매개 변수에 잘못된 값을 지정했습니다.
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_REQUEST)
호출 드라이버는 디바이스의 전원 정책 소유자가 아닙니다.
HRESULT_FROM_NT(STATUS_POWER_STATE_INVALID)
DxState 매개 변수는 잘못된 디바이스 전원 상태를 지정하거나 버스 드라이버는 디바이스가 절전 모드 해제 신호를 트리거할 수 없음을 나타냅니다.
 

이 메서드는 Winerror.h에 포함된 다른 값 중 하나를 반환할 수 있습니다.

설명

드라이버가 AssignSxWakeSettings를 처음 호출할 때 다음 작업이 발생합니다.

  • 프레임워크는 매개 변수 값을 저장합니다.
  • UserControlOfWakeSettings 매개 변수가 WakeAllowUserControl로 설정되어 있고 Enabled 매개 변수가 WdfUseDefault로 설정된 경우 프레임워크는 레지스트리를 읽어 사용자가 시스템 절전 모드 해제를 사용하도록 설정했는지 확인합니다.
AssignSxWakeSettings에 대한 후속 호출 중에 프레임워크는 UserControlOfWakeSettings 매개 변수의 값을 저장하지 않습니다. 즉, 프레임워크는 드라이버가 AssignSxWakeSettings 를 처음 호출할 때 다음 단계를 수행하지만 나중에 호출하는 동안에는 다음 단계를 수행하지 않습니다.
  • UserControlOfWakeSettings 매개 변수의 값을 저장합니다.
  • Enabled 매개 변수의 값이 WdfUseDefault인 경우 레지스트리에서 사용자 설정을 찾습니다.
다음 규칙은 DxState 매개 변수에 대해 지정한 값에 적용됩니다.
  • 값은 PowerDeviceD0일 수 없습니다.
  • DevicePowerMaximum을 지정하는 경우 프레임워크는 해당 WDF_DEVICE_POWER_CAPABILITIES 구조의 DeviceWake 멤버에 제공된 디바이스 버스의 커널 모드 드라이버 값을 사용합니다.
  • 커널 모드 버스 드라이버의 WDF_DEVICE_POWER_CAPABILITIES 구조의 DeviceWake 멤버에서 디바이스 전원 상태보다 낮은 디바이스 전원 상태를 지정할 수 없습니다. 즉, 버스 드라이버의 DeviceWake 값이 PowerDeviceD2인 경우 함수 드라이버의 DxState 값은 PowerDeviceD3일 수 없습니다.
디바이스의 절전 모드 해제 기능을 제어하는 레지스트리 항목에 대한 자세한 내용은 UMDF에서 디바이스 유휴 및 절전 모드 해제 동작의 사용자 제어를 참조하세요.

디바이스의 절전 모드 해제 기능을 지원하는 방법에 대한 자세한 내용은 UMDF 기반 드라이버에서 시스템 Wake-Up 지원을 참조하세요.

다음 코드 예제에서는 IWDFDevice2 인터페이스를 가져온 다음 AssignSxWakeSettings를 호출합니다.

    IWDFDevice2 *pIWDFDevice2 = NULL;
    HRESULT hr;

    //
    // Get a pointer to the IWDFDevice2 interface.
    //
    hr = pIWDFDevice->QueryInterface(__uuidof(IWDFDevice2),
                                     (void**) &pIWDFDevice2);
    if (SUCCEEDED(hr)) 
    {
        hr = pIWDFDevice2->AssignSxWakeSettings(PowerDeviceMaximum,
                                                WakeAllowUserControl,
                                                WdfUseDefault);
    }
...
    SAFE_RELEASE(pIWDFDevice2);

요구 사항

요구 사항
지원 종료 UMDF 2.0 이상에서는 사용할 수 없습니다.
대상 플랫폼 데스크톱
최소 UMDF 버전 1.9
머리글 wudfddi.h(Wudfddi.h 포함)
DLL WUDFx.dll

추가 정보

IWDFDevice2

IWDFDevice2::AssignS0IdleSettings