UMDF의 전원 정책 소유권

경고

UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.

보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.

자세한 내용은 UMDF를 사용하여 시작 참조하세요.

각 디바이스에 대해 디바이스 드라이버 중 하나(및 하나만)가 디바이스의 전원 정책 소유자여야 합니다. 전원 정책 소유자는 디바이스에 적합한 디바이스 전원 상태를 결정하고 디바이스의 전원 상태가 변경되어야 할 때마다 디바이스의 드라이버 스택에 요청을 보냅니다.

프레임워크 기반 드라이버는 프레임워크가 해당 코드를 제공하기 때문에 디바이스의 전원 상태 변경을 요청하는 코드를 포함하지 않습니다. 기본적으로 시스템이 시스템 절전 모드 상태가 될 때마다 프레임워크는 디바이스의 버스에 디바이스 전원 상태를 D3으로 낮추도록 드라이버에 요청합니다. (디바이스에서 절전 모드 해제 기능을 제공하는 경우 프레임워크가 디바이스의 절전 모드 상태를 D1 또는 D2로 설정하도록 드라이버에서 기본 동작을 변경할 수 있습니다.) 시스템 전원이 작동(S0) 상태로 돌아오면 프레임워크는 버스 드라이버에 디바이스를 작동(D0) 상태로 복원하도록 요청합니다.

전원 정책 소유자는 다음 디바이스 기능을 사용하도록 설정하고 사용하지 않도록 설정해야 합니다.

  • 디바이스가 유휴 상태이고 시스템이 작동 중(S0 ) 상태로 유지되면 저전력(절전 모드) 상태로 전환할 수 있습니다.

  • 디바이스가 외부 이벤트를 감지할 때 절전 모드에서 해제하는 기능

  • 디바이스가 외부 이벤트를 감지할 때 시스템 절전 모드 상태에서 전체 시스템을 절전 모드에서 해제하는 기능

디바이스가 이러한 유휴 전원 다운 및 시스템 절전 모드 해제 기능을 지원하는 경우 전원 정책 소유자는 전원 정책 이벤트 콜백 함수 집합을 정의하는 프레임워크의 IPowerPolicyCallbackWakeFromS0IPowerPolicyCallbackWakeFromSx 인터페이스를 지원할 수도 있습니다.

기본적으로 UMDF 기반 드라이버는 전원 정책 소유자가 아닙니다. 디바이스의 커널 모드 함수 드라이버는 기본 전원 정책 소유자입니다. 커널 모드 함수 드라이버가 없고 버스 드라이버가 WdfPdoInitAssignRawDevice라고 하는 경우 버스 드라이버는 전원 정책 소유자입니다. UMDF 기반 드라이버를 드라이버 스택의 전원 정책 소유자로 설정하려면 드라이버가 IWDFDeviceInitialize::SetPowerPolicyOwnership을 호출해야 하며, 커널 모드 기본 전원 정책 소유자는 WdfDeviceInitSetPowerPolicyOwnership 을 호출하여 소유권을 사용하지 않도록 설정해야 합니다.

또한 USB 디바이스에 UMDF 기반 드라이버를 제공하고 드라이버를 전원 정책 소유자로 지정하려는 경우 드라이버의 INF 파일에는 레지스트리에서 WinUsbPowerPolicyOwnershipDisabled 값을 설정하는 INF AddReg 지시문 이 포함되어야 합니다. 이 REG_DWORD 크기 값이 0이 아닌 숫자로 설정된 경우 WinUSB 드라이버가 디바이스의 전원 정책 소유자가 될 수 없게 됩니다. 다음 예제와 같이 AddReg 지시문은 INF DDInstall.HW 섹션에 있어야 합니다.

[MyDriver_Install.NT.hw]
AddReg=MyDriver_AddReg

[MyDriver_AddReg]
HKR,,"WinUsbPowerPolicyOwnershipDisabled",0x00010001,1

프레임워크는 전원 정책 소유자에 대해 다음 작업을 수행합니다.

  • 드라이버와 드라이버 스택의 나머지 부분 간의 모든 전원 정책 통신을 처리합니다. 예를 들어 프레임워크가 요청을 수행하므로 드라이버가 버스 드라이버에 디바이스의 전원 상태를 변경하도록 요청할 필요가 없습니다.

  • 드라이버가 전원 정책 이벤트 콜백 함수를 등록하는 경우 프레임워크는 디바이스가 저전력 상태에서 절전 모드를 해제하는 기능을 사용하거나 사용하지 않도록 설정할 때 이를 호출합니다.

  • 드라이버에서 사용자가 유휴 및 절전 모드 해제 설정을 수정할 수 있도록 허용하는 경우 프레임워크는 장치 관리자 표시되는 속성 시트 페이지의 형태로 사용자 인터페이스를 제공합니다.

전원 정책 소유자의 책임에 대한 자세한 내용은 다음 topics 참조하세요.