WinUSB 전원 관리

WinUSB는 전원 관리에 KMDF 상태 머신을 사용합니다. 전원 정책은 WinUsb_SetPowerPolicy 호출을 통해 관리됩니다.

WinUSB의 전원 동작을 수정하기 위해 디바이스의 INF에서 기본 레지스트리 설정을 수정할 수 있습니다. 이러한 값은 HW에 값을 추가하여 레지스트리의 디바이스 특정 위치에 기록되어야 합니다 . INF의 AddReg 섹션입니다.

다음 목록에 설명된 레지스트리 값을 디바이스의 INF에 지정하여 전원 동작을 수정할 수 있습니다.

시스템 절전 모드 해제

이 기능은 SystemWakeEnabled DWORD 레지스트리 설정에 의해 제어됩니다. 이 값은 디바이스가 저전력 상태에서 시스템을 절전 모드 해제하도록 허용해야 하는지 여부를 나타냅니다.

HKR,,SystemWakeEnabled,0x00010001,1
  • 값이 0이거나 이 값이 없으므로 디바이스가 시스템을 절전 모드에서 해제할 수 없음을 나타냅니다.
  • 디바이스가 시스템을 절전 모드 해제할 수 있도록 하려면 SystemWakeEnabled 를 0이 아닌 값으로 설정합니다. 사용자가 설정을 재정의할 수 있도록 디바이스 속성 페이지의 검사 상자가 자동으로 사용하도록 설정됩니다.

참고

SystemWakeEnabled 설정을 변경해도 선택적 일시 중단에는 영향을 주지 않습니다. 이 레지스트리 값은 시스템 일시 중단과 관련이 있습니다.

선택적 일시 중단

여러 시스템 또는 WinUSB 설정에서 선택적 일시 중단을 사용하지 않도록 설정할 수 있습니다. 단일 설정은 WinUSB가 선택적 일시 중단을 사용하도록 강제할 수 없습니다.

WinUsb_SetPowerPolicyPolicyType 매개 변수에 지정된 다음 전원 정책 설정은 선택적 일시 중단의 동작에 영향을 미칩니다.

  • AUTO_SUSPEND 0으로 설정하면 디바이스가 선택적 일시 중단 모드로 설정되지 않습니다.
  • SUSPEND_DELAY 디바이스가 유휴 상태가 되는 시점과 WinUSB가 선택적 일시 중단으로 전환하도록 디바이스를 요청하는 시점 사이의 시간을 설정합니다.

다음 표에서는 레지스트리 키가 선택적 일시 중단 기능에 미치는 영향을 보여줍니다.

레지스트리 키 설명
DeviceIdleEnabled DWORD 값입니다. 이 레지스트리 값은 유휴 상태일 때 디바이스의 전원을 끕니다(선택적 일시 중단).
  • 값이 0이거나 이 값이 없으면 디바이스가 유휴 상태일 때 전원이 낮아지는 것을 지원하지 않음을 나타냅니다.
  • 0이 아닌 값은 디바이스가 유휴 상태일 때 전원이 낮아지는 것을 지원한다는 것을 나타냅니다.
  • DeviceIdleEnabled가 설정되지 않은 경우 AUTO_SUSPEND 전원 정책 설정의 값은 무시됩니다.

HKR,,DeviceIdleEnabled,0x00010001,1
DeviceIdleIgnoreWakeEnable 0이 아닌 값으로 설정하면 RemoteWake를 지원하지 않더라도 디바이스가 일시 중단됩니다.
UserSetDeviceIdleEnabled 이 값은 DWORD 값입니다. 이 레지스트리 값은 사용자가 유휴 기본값을 재정의할 수 있는 디바이스 속성 페이지에서 검사 상자를 사용하도록 설정해야 하는지 여부를 나타냅니다. UserSetDeviceIdleEnabled가 0이 아닌 값으로 설정되면 검사 상자가 활성화되고 사용자가 유휴 상태일 때 디바이스 전원을 끄지 않도록 설정할 수 있습니다. 값이 0이거나 이 값이 없으므로 검사 상자를 사용할 수 없음을 나타냅니다.
  • 사용자가 디바이스 전원 절약을 사용하지 않도록 설정하면 AUTO_SUSPEND 전원 정책 설정의 값이 무시됩니다.
  • 사용자가 디바이스 전원 절약을 사용하도록 설정하는 경우 AUTO_SUSPEND 값을 사용하여 유휴 상태일 때 디바이스를 일시 중단할지 여부를 결정합니다.

DeviceIdleEnabled가 설정되지 않은 경우 UserSetDeviceIdleEnabled는 무시됩니다.

HKR,,UserSetDeviceIdleEnabled,0x00010001,1
DefaultIdleState DWORD 값입니다. 이 레지스트리 값은 AUTO_SUSPEND 전원 정책 설정의 기본값을 설정합니다. 이 레지스트리 키는 핸들이 디바이스에 열려 있지 않을 때 선택적 일시 중단을 사용하거나 사용하지 않도록 설정하는 데 사용됩니다.
  • 값이 0이거나 이 값이 없으면 기본적으로 유휴 상태일 때 디바이스가 일시 중단되지 않음을 나타냅니다. AUTO_SUSPEND 전원 정책을 사용하는 경우에만 유휴 상태일 때만 디바이스를 일시 중단하도록 허용됩니다.
  • 0이 아닌 값은 기본적으로 유휴 상태일 때 디바이스를 일시 중단할 수 있음을 나타냅니다.

DeviceIdleEnabled가 설정되지 않은 경우 이 값은 무시됩니다.

HKR,,DefaultIdleState,0x00010001,1
DefaultIdleTimeout DWORD 값입니다. 이 레지스트리 값은 SUSPEND_DELAY 전원 정책 설정의 기본 상태를 설정합니다.

값은 디바이스가 유휴 상태인지 확인하기 전에 대기할 시간(밀리초)을 나타냅니다.

HKR,,DefaultIdleTimeout,0x00010001,100

유휴 상태 검색

모든 쓰기 및 제어 전송은 디바이스를 D0 전원 상태로 강제 전환하고 유휴 타이머를 다시 설정합니다. IN 엔드포인트 큐는 전원 관리되지 않습니다. 읽기 요청은 제출될 때 디바이스를 절전 모드에서 해제합니다. 그러나 읽기 요청이 대기하는 동안 디바이스가 유휴 상태가 될 수 있습니다.