WdfDeviceInitSetPowerPolicyOwnership 함수(wdfdevice.h)

[KMDF 및 UMDF에 적용]

WdfDeviceInitSetPowerPolicyOwnership 메서드는 호출 드라이버가 지정된 디바이스의 전원 정책 소유자인지 여부를 설정합니다.

구문

void WdfDeviceInitSetPowerPolicyOwnership(
  [in] PWDFDEVICE_INIT DeviceInit,
  [in] BOOLEAN         IsPowerPolicyOwner
);

매개 변수

[in] DeviceInit

WDFDEVICE_INIT 구조체에 대한 호출자 제공 포인터입니다.

[in] IsPowerPolicyOwner

호출 드라이버가 전원 정책 소유자인지 여부를 나타내는 부울 값입니다. TRUE이면 호출 드라이버가 전원 정책 소유자입니다. FALSE이면 전원 정책 소유자가 아닙니다.

반환 값

없음

설명

프레임워크 기반 함수 드라이버를 작성하는 경우 프레임워크는 자동으로 드라이버를 전원 정책 소유자로 설정합니다. (디바이스가 원시 모드에서 작동하는 경우 버스 드라이버는 기본 전원 정책 소유자입니다.)

기본 전원 정책 소유자를 변경하려면 다음 두 드라이버가 WdfDeviceInitSetPowerPolicyOwnership을 호출해야 합니다.

  • 기본 전원 정책 소유자는 IsPowerPolicyOwner가 FALSE로 설정된 WdfDeviceInitSetPowerPolicyOwnership을 호출해야 합니다.
  • 전원 정책 소유자가 되려는 드라이버는 IsPowerPolicyOwnerTRUE로 설정된 WdfDeviceInitSetPowerPolicyOwnership을 호출해야 합니다.
프레임워크 기반 버스 드라이버 또는 필터 드라이버를 작성하고 디바이스가 원시 모드에서 작동하지 않는 경우 WdfDeviceInitSetPowerPolicyOwnership을 호출하지 않는 한 드라이버는 전원 정책 소유자가 되지 않습니다.

각 스택에서 하나의 드라이버만 전원 정책 소유자일 수 있으므로 한 드라이버만 IsPowerPolicyOwnerTRUE로 설정된 WdfDeviceInitSetPowerPolicyOwnership을 호출하는지 확인해야 합니다.

드라이버가 WdfDeviceInitSetPowerPolicyOwnership을 호출하는 경우 WdfDeviceCreate를 호출하기 전에 호출해야 합니다. 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요.

WdfDeviceInitSetPowerPolicyOwnership을 호출하는 방법에 대한 자세한 내용은 Power Policy 소유권을 참조하세요.

예제

다음 코드 예제는 직렬 샘플 드라이버에서 가져옵니다. 다음은 레지스트리 값을 확인하여 드라이버가 전원 정책 소유자여야 하는지 확인하는 예제입니다. 드라이버가 전원 정책 소유자가 아니어야 하는 경우 이 예제에서는 WdfDeviceInitSetPowerPolicyOwnership을 호출합니다.

//
// Call subroutine that checks a registry value.
//
SerialGetFdoRegistryKeyValue(
                             DeviceInit,
                             L"SerialRelinquishPowerPolicy",
                             &relinquishPowerPolicy
                             );
//
// If the registry value is TRUE, do not own power policy.
//
if(relinquishPowerPolicy) {
    WdfDeviceInitSetPowerPolicyOwnership(
                                         DeviceInit,
                                         FALSE
                                         );
}

요구 사항

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

추가 정보

WdfDeviceCreate