다음을 통해 공유


USB 디바이스 전원 상태

이 항목에서는 유니버설 Serial Bus 2.0 사양의 섹션 9.1에 지정된 대로 USB 디바이스 전원 상태에 사용할 WDM 디바이스 상태에 대해 설명합니다.

USB 디바이스 전원 상태(유니버설 직렬 버스 2.0 사양의 섹션 9.1에 지정된 대로)를 세 가지 일반 범주로 그룹화할 수 있습니다.

  • 연결됨: 디바이스가 연결되어 있지만 완전히 전원이 공급되지는 않습니다.
  • 전원 공급: 디바이스가 완전히 전원이 켜진 상태(기본값, 주소 또는 구성됨) 중 하나입니다.
  • 일시 중단됨: 디바이스가 유휴 상태이며 저전력에서 작동합니다.

WDM 전원 모델에 정의된 디바이스 전원 상태와 USB 표준에 정의된 디바이스 전원 상태 간에는 직접적인 상관 관계가 없습니다. 예를 들어 일시 중단 및유휴 용어는 USB 사양에서 매우 구체적인 의미를 갖습니다. 그러나 이러한 용어는 WDM 전원 모델에서 다르게 사용되는 경우가 많습니다. Windows 클라이언트 드라이버는 USB 디바이스를 일시 중단 상태로 설정할 수 있습니다. 자세한 내용은 USB 선택적 일시 중단을 참조하세요. 클라이언트 드라이버가 디바이스를 일시 중단할 준비가 되면 버스 드라이버에 유휴 상태로 두도록 지시합니다. 유휴 요청에 대한 논의는 USB 선택적 일시 중단을 참조하세요.

WDM 모델의 디바이스 전원 상태는 다음과 같이 요약할 수 있습니다.

  • D0 - 작업 상태입니다. 디바이스의 전원이 완전히 공급됩니다.
  • D1/D2 - 중간 절전 모드 상태입니다. 이러한 상태를 사용하면 원격 절전 모드 해제를 위해 디바이스를 무장할 수 있습니다.
  • D3 - 가장 깊은 절전 상태입니다. 상태 D3 의 디바이스는 원격 절전 모드 해제를 위해 무장할 수 없습니다.

WDM 전원 모델의 디바이스 전원 상태에 대한 자세한 내용은 디바이스 전원 상태를 참조 하세요.

WDM 전원 모델은 원격 절전 모드 해제에 디바이스의 무장이라는 용어를 사용합니다. Arming은 일반적으로는 아니지만 항상 USB 디바이스에서 원격 절전 모드 해제 기능을 사용하도록 설정하는 하드웨어 작업으로 이어지는 소프트웨어 작업입니다. 원격 절전 모드 해제를 위해 디바이스를 무기로 사용하는 WDM 소프트웨어 작업은 대기 절전 모드 해제 IRP(IRP_MN_WAIT_WAKE)입니다. 이 IRP에 대한 자세한 내용은 절전 모드 해제 기능이 있는 지원 디바이스를 참조 하세요.

이 소프트웨어 작업과 USB 원격 절전 모드 해제 기능의 사용 간의 관계에 대한 설명은 USB 디바이스의 원격 절전 모드 해제를 참조 하세요.

이 섹션에는 다음 하위 섹션이 포함되어 있습니다.

비 복합 디바이스의 전원 상태 변경

USB 디바이스의 전원 정책 관리자는 디바이스의 전원 상태를 설정해야 합니다. 전원 정책 관리자는 WDM 전원(IRP_MN_SET_POWER) IRP를 실행하여 전원 상태를 설정합니다. 전원 정책 관리자에 대한 자세한 내용은 Power Policy 소유권을 참조 하세요.

버스 드라이버에서 수행하는 작업은 전원 정책 관리자가 요청하는 디바이스 전원 수준에 따라 달라집니다. 다음은 버스 드라이버가 설정된 전원 요청의 각 수준에 대해 수행하는 작업을 나열합니다.

  • D0

    버스 드라이버는 다음 작업을 수행합니다.

    1. 모든 업스트림 USB 허브의 전원이 공급되고 요청을 받을 준비가 되었는지 확인합니다.
    2. 디바이스의 USB 포트가 일시 중단된 경우 PORT_SUSPEND 기능을 지워 포트를 다시 시작합니다.
    3. 보류 중인 경우 STATUS_SUCCESS 사용하여 디바이스의 유휴 IRP를 완료합니다.
    4. 무장 한 경우 원격 절전 모드 해제를 위해 장치를 무장 해제합니다.
  • D1/D2

    버스 드라이버는 다음 작업을 수행합니다.

    1. 대기 절전 모드 해제 IRP(IRP_MN_WAIT_WAKE)가 보류 중인 경우 원격 절전 모드 해제를 위해 디바이스를 무기화합니다.
    2. PORT_SUSPEND 기능을 설정하여 디바이스의 USB 포트를 일시 중단합니다.
  • D3

    버스 드라이버는 다음 작업을 수행합니다.

    1. PORT_SUSPEND 기능을 설정하여 디바이스의 USB 포트를 일시 중단합니다.
    2. 보류 중인 경우 STATUS_POWER_STATE_INVALID 사용하여 디바이스의 대기 절전 모드 해제 IRP를 완료합니다.
    3. 보류 중인 경우 STATUS_POWER_STATE_INVALID 사용하여 디바이스의 유휴 IRP(IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION)를 완료합니다.

복합 디바이스의 전원 상태 변경

복합 디바이스의 인터페이스에 대한 클라이언트 드라이버는 복합 디바이스의 전원 상태를 디바이스의 다른 인터페이스에 대한 클라이언트 드라이버와 공유해야 합니다. 따라서 인터페이스에 대한 클라이언트 드라이버는 디바이스의 다른 인터페이스에 영향을 주지 않고 복합 디바이스를 더 낮은 전원 상태로 전환할 수 없습니다. USB Usbccgp.sys(일반 부모 드라이버)는 인터페이스의 클라이언트 드라이버가 IRP_MN_SET_POWER 요청을 보낼 때 다음 작업을 수행합니다.

  • D0

    버스 드라이버는 다음 작업을 수행합니다.

    1. 모든 업스팀 USB 허브의 전원이 공급되고 요청을 받을 준비가 되었는지 확인합니다.
    2. 디바이스의 USB 포트가 일시 중단된 경우 PORT_SUSPEND 기능을 지워 포트를 다시 시작합니다.
    3. 보류 중인 경우 클라이언트 드라이버의 유휴 IRP를 STATUS_SUCCESS 완료합니다.
  • D1/D2

    버스 운전사는 아무런 조치도 취하지 않습니다.

  • D3

    버스 드라이버는 다음 작업을 수행합니다.

    1. 보류 중인 경우 STATUS_POWER_STATE_INVALID 사용하여 클라이언트 드라이버의 대기 절전 모드 해제 IRP(IRP_MN_WAIT_WAKE)를 완료합니다.
    2. 보류 중인 경우 STATUS_POWER_STATE_INVALID 사용하여 클라이언트 드라이버의 유휴 IRP(IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION)를 완료합니다.

다음 조건 중 하나가 true인 경우 일반 부모 드라이버는 디바이스의 USB 포트를 일시 중단합니다.

  • 시스템이 더 낮은 전원 상태로 전환되고 있습니다.
  • 복합 디바이스의 모든 함수에 대한 클라이언트 드라이버가 선택적 일시 중단을 시작했습니다.

USB 전원 관리