Windows의 USB - FAQ

이 항목에서는 USB 장치 및 드라이버를 처음 개발하고 Windows 운영 체제와 통합하는 드라이버 개발자를 위한 질문과 대답을 제공합니다.

수많은 USB 용어가 거의 반복적으로 언급되고 있습니다. 이러한 용어는 무엇을 의미하나요?

"USB 3.0 덕분에 SuperSpeed USB 썸 드라이브(thumb drive)를 PC의 xHCI 호스트 컨트롤러에 연결하고 파일을 더 빠르게 복사할 수 있습니다."

이전 문장에 있는 USB 용어를 살펴보겠습니다. USB 3.0, USB 2.0 및 USB 1.0은 USB 구현자 포럼의 USB 사양 수정 번호를 나타냅니다. USB 사양은 호스트 PC와 USB 장치가 서로 통신하는 방식을 정의합니다.

또한 버전 번호는 최대 전송 속도를 나타냅니다. 최신 사양 버전은 최대 전송 속도를 5Gbps까지 지정하는 USB 3.0입니다. USB 1.0은 저속 USB(최대 1.5Mbps) 및 전속력 USB(최대 12Mbps)의 두 가지 데이터 속도를 정의합니다. USB 2.0은 새로운 데이터 속도인 고속 USB(480Mbps)를 정의하는 동시에 저속 및 전속력 장치에 대한 지원을 유지합니다. USB 3.0은 계속해서 이전에 정의된 모든 데이터 속도로 작동합니다. 제품 패키징에서 SuperSpeed USB는 최신 USB 3.0 장치를 나타냅니다. 고속 USB는 고속 USB 2.0 장치를 설명하는 데 사용됩니다. 설명자가 없는 USB는 저속 및 전속력 장치를 나타냅니다.

USB 프로토콜 외에 장치가 연결된 PC에 있는 하드웨어의 일부인 USB 포트 컨트롤러에 대한 두 번째 사양이 있습니다. 호스트 컨트롤러 인터페이스 사양은 호스트 컨트롤러 하드웨어 및 소프트웨어가 상호 작용하는 방식을 정의합니다. xHCI(eXtensible Host Controller Interface)는 USB 3.0 호스트 컨트롤러를 정의합니다. EHCI(Enhanced Host Controller Interface)는 USB 2.0 호스트 컨트롤러를 정의합니다. UHCI(Universal Host Controller) 및 OHCI(Open Host Controller)는 USB 1.0 호스트 컨트롤러의 두 가지 대체 구현입니다.

내 PC에 USB 3.0 포트가 있나요?

USB 3.0 포트에는 SuperSpeed USB 로고가 표시되거나 포트가 대개 파란색입니다.

파란색 USB 3.0 포트

최신 PC에는 USB 3.0 및 USB 2.0 포트가 둘 다 있습니다. SuperSpeed USB 장치를 사용하여 최고 속도로 작동하려면 USB 3.0 포트를 찾고 장치를 해당 포트에 연결합니다. USB 2.0 포트에 연결된 SuperSpeed 장치는 고속으로 작동합니다.

장치 관리자에서 특정 포트가 USB 3.0 포트인지 확인할 수도 있습니다. Windows Vista 이상 버전의 Windows에서는 장치 관리자를 열고 목록에서 포트를 선택합니다.

장치 관리자의 USB 호스트 컨트롤러

확장 가능한 호스트 컨트롤러는 USB 3.0을 지원합니다.

확장 가능한 호스트 컨트롤러용 드라이버를 설치해야 하나요?

Windows 8 및 Windows Server 2012에는 USB 3.0에 대한 지원이 포함되어 있습니다.

PC에 USB 3.0 포트가 있고 Windows 8보다 이전 버전의 Windows를 실행하는 경우 PC 제조업체에서 호스트 컨트롤러 드라이버를 제공합니다. 이 드라이버를 다시 설치해야 하는 경우 제조업체에서 드라이버를 구해야 합니다.

Windows 8보다 이전 버전의 Windows를 실행하는 PC에 USB 3.0 컨트롤러 카드를 추가한 경우 컨트롤러 카드 제조업체에서 제공한 드라이버를 설치해야 합니다.

Windows 8에서는 Microsoft 제공 USB 3.0 드라이버 집합(USB 드라이버 스택)이 대부분의 호스트 컨트롤러에서 작동합니다. Microsoft USB 3.0 드라이버 스택은 Fresco Logic FL1000 컨트롤러에서 작동하지 않습니다. FL1000 컨트롤러가 있는지 확인하려면 장치 관리자를 열고 범용 직렬 버스 컨트롤러를 확장합니다. 컨트롤러 노드를 마우스 오른쪽 단추로 클릭하여 컨트롤러 속성을 표시합니다. 세부 정보 탭의 목록에서 하드웨어 ID 속성을 선택합니다. 하드웨어 ID가 PCI\VEN_1B73&DEV_1000으로 시작되는 경우 이 컨트롤러는 FL1000입니다. 이 컨트롤러의 경우 PC 또는 컨트롤러 카드 제조업체에서 드라이버를 다운로드하여 설치합니다.

시스템에 여러 호스트 컨트롤러가 표시되는 이유는 무엇인가요?

PC에 연결하는 USB 장치 외에 PC 내에는 웹캠, 지문 판독기, SD 카드 판독기 같이 USB를 통해 연결될 수 있는 다양한 장치가 통합되어 있습니다. 해당 장치를 모두 연결하고도 외부 USB 포트를 제공하기 위해 PC는 여러 개의 USB 포트 컨트롤러를 지원합니다.

USB 3.0 xHCI 호스트 컨트롤러는 SuperSpeed, 고속, 전속력 및 저속의 모든 USB 장치 속도와 완벽하게 호환됩니다. xHCI 컨트롤러에 장치를 직접 연결하면 해당 장치가 작동합니다. EHCI 컨트롤러는 이 경우에 해당하지 않습니다. USB 2.0 사양은 모든 장치 속도를 지원하지만 EHCI 컨트롤러는 고속 USB 장치만 지원합니다. 전속력 및 저속 USB 장치가 작동하려면 USB 2.0 허브를 통해 EHCI 컨트롤러에 연결하거나, UHCI 또는 OHCI 컨트롤러에 연결해야 합니다.

최신 PC의 경우 PC에서 노출된 대부분의 USB 2.0 포트가 USB 2.0 허브의 다운스트림입니다. 이 허브는 EHCI 컨트롤러에 연결됩니다. 이 허브를 사용하면 PC의 USB 2.0 포트가 모든 장치 속도에서 작동합니다. SuperSpeed 장치는 2.0 포트에 연결될 경우 고속 장치처럼 동작합니다.

USB 2.0 사양이 릴리스된 후 PC에서는 모든 장치 속도를 지원하기 위해 호스트 컨트롤러를 조합해 사용했습니다. 단일 USB 2.0 포트는 두 개의 호스트 컨트롤러인 EHCI 호스트 컨트롤러와 UHCI 또는 OHCI 호스트 컨트롤러에 연결됩니다. 장치를 연결하면 하드웨어가 동적으로 호스트 두 개 중 하나로 연결을 경로 지정합니다. 루틴은 장치 속도에 따라 다릅니다.

USB 3.0 허브를 하나만 연결했는데 장치 관리자에 허브가 두 개 나타나는 이유는 무엇인가요?

xHCI 호스트 컨트롤러는 모든 장치 속도에서 작동하지만 SuperSpeed 허브는 SuperSpeed 장치에서만 작동합니다. USB 3.0 허브가 모드 속도에서 작동할 수 있도록 이 허브에는 SuperSpeed 허브 및 USB 2.0 허브가 포함됩니다. USB 3.0 허브는 장치 속도에 따라 SuperSpeed 허브 또는 2.0 허브로 장치 경로를 동적으로 지정하여 모든 속도를 지원할 수 있습니다.

장치 관리자를 열고 장치(연결별)를 표시하고 확장 가능한 호스트 컨트롤러를 찾습니다. 단일 USB 3.0 허브를 USB 3.0 포트에 연결할 경우 컨트롤러의 루트 허브에는 두 개의 허브 다운스트림이 있습니다.

장치 관리자의 USB 3.0 허브

다음 예에서 SuperSpeed USB 저장 장치 및 USB 오디오 장치는 둘 다 USB 3.0 허브에 연결되어 있습니다. 저장 장치는 SuperSpeed 허브의 다운스트림이고 오디오 장치는 USB 2.0 허브의 다운스트림임을 알 수 있습니다.

장치 관리자의 연결된 장치가 있는 USB 3.0 허브

2.0 허브에 연결된 장치의 경우 어떤 드라이버 집합이 로드되나요?

각 호스트 컨트롤러 유형에 대해 로드되는 이진 파일 집합은 서로 다릅니다. Windows가 로드하는 USB 드라이버 스택은 연결된 장치의 속도가 아니라 호스트 컨트롤러 유형에 관련된다는 점을 이해해야 합니다.

이 이미지에서는 다양한 유형의 각 USB 호스트 컨트롤러에 대해 어떤 드라이버가 로드되는지 확인할 수 있습니다.

Windows 8의 USB 드라이버 스택

USB 3.0 포트가 xHCI 컨트롤러에 제대로 경로 지정되어 있으면 Windows는 xHCI 드라이버 스택(USB 3.0 드라이버 스택이라고도 함)을 로드합니다.

USB 2.0 포트가 USB 2.0 허브를 통해 EHCI 컨트롤러에 연결되어 있으면 트래픽이 EHCI 컨트롤러를 통해 이동하고 USB 2.0 드라이버 스택이 로드됩니다.

USB 드라이버 스택의 드라이버에 대한 자세한 내용은 USB 드라이버 스택 아키텍처를 참조하세요.

PC의 USB 2.0 포트에 도우미 컨트롤러가 사용되는 경우 포트 경로가 지정되는 호스트 컨트롤러는 장치 속도에 따라 다릅니다. 예를 들어 저속 장치는 UHCI 또는 OHCI 컨트롤러를 통해 연결되고 USBUHCI 또는 USBOHCI 드라이버를 사용합니다. PC는 고속 장치를 EHCI 컨트롤러로 경로 지정하므로 Windows는 USBEHCI 드라이버를 사용합니다.

컨트롤러용으로 로드되는 드라이버는 장치 속도에 따라 결정되지 않습니다. 그러나 사용되는 컨트롤러는 장치 속도에 따라 결정될 수 있습니다. 컨트롤러는 항상 동일한 드라이버를 사용합니다.

USB 3.0 장치가 SuperSpeed로 작동하고 있는지 어떻게 확인할 수 있나요?

Windows 8에서는 먼저 USB 3.0 포트 및 xHCI 호스트 컨트롤러가 있는지 확인합니다. SuperSpeed USB 장치가 xHCI 호스트 컨트롤러에 연결되어 있는 경우 Windows 8에서는 Windows 8 UI의 특정 부분에 "USB 3.0에 연결했습니다."라는 메시지가 표시됩니다. 장치가 XHCI 컨트롤러 대신 EHCI 컨트롤러에 연결되어 있는 경우에는 "USB 3.0에 연결하면 장치의 수행 속도가 높아질 수 있습니다."라는 메시지가 표시됩니다.

PC 설정에서 이러한 UI 메시지를 볼 수 있습니다.

  1. 참 메뉴를 엽니다(커서를 화면의 오른쪽 위 또는 아래로 끌거나 Windows 키 + C를 입력하거나 손가락으로 오른쪽에서 안쪽으로 살짝 밀기).
  2. 설정, PC 설정 변경을 차례로 선택합니다.
  3. PC 설정에서 장치를 선택합니다.

이 이미지에서는 USB 3.0 장치가 SuperSpeed로 작동 중인 경우 표시되는 USB 메시지를 보여 줍니다.

SuperSpeed USB 장치가 SuperSpeed로 작동 중입니다.

이 이미지에서는 USB 장치가 SuperSpeed보다 낮은 버스 속도로 작동 중인 경우 표시되는 UI 메시지를 보여 줍니다.

SuperSpeed USB 장치가 고속으로 작동 중입니다.

장치 및 프린터에서 이러한 이미지와 유사한 메시지를 볼 수 있습니다.

SuperSpeed USB 장치가 SuperSpeed로 작동 중입니다.

SuperSpeed 장치가 고속으로 작동 중입니다.

USB 3.0 장치가 저장 장치인 경우 Windows 탐색기에는 다음과 같이 볼륨 레이블이 선택될 경우와 유사한 메시지가 표시됩니다. 메시지를 표시하려면 보기 -> 세부 정보 창을 선택해야 합니다.

SuperSpeed USB 장치가 SuperSpeed로 작동 중입니다.

SuperSpeed USB 장치가 고속으로 작동 중입니다.

장치 드라이버를 작성하는 경우 WDK(Windows 드라이버 키트)에 포함된 USBView 도구가 매우 유용합니다. Windows 8 WDK의 경우 Microsoft는 SuperSpeed USB 정보를 표시하도록 USBView를 업데이트했습니다. 이 도구를 사용하여 장치가 SuperSpeed로 작동 중인지 확인할 수 있습니다. 이 이미지에서는 USBView에서 SuperSpeed로 작동 중인 USB 3.0 장치를 보여 줍니다.

SuperSpeed USB 장치가 SuperSpeed로 작동 중입니다.

장치 드라이버 개발자인 경우 USB 드라이버 스택은 USB 3.0 장치에 대한 속도 정보를 쿼리하는 데 사용할 수 있는 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2라는 IOCTL을 노출합니다.

SuperSpeed USB 장치가 동등한 고속 USB 장치보다 더 빠르지 않은 이유는 무엇인가요?

일반적으로 USB 3.0 USB 장치가 고속 USB 장치보다 더 빠르지 않다면 해당 장치는 SuperSpeed로 작동하고 있지 않은 것입니다. SuperSpeed USB 장치가 USB 3.0 포트에 연결되어 있는 경우 다음과 같은 이유로 이 장치가 SuperSpeed로 작동하지 않을 수 있습니다.

  • USB 2.0 허브를 사용하고 있습니다.

    허브를 사용할 경우 허브가 USB 3.0 허브인지 확인하세요. USB 2.0 허브를 사용할 경우 모든 연결된 SuperSpeed USB 장치가 고속으로 작동합니다. 이 허브를 USB 3.0 허브로 바꾸거나 장치를 USB 3.0 포트에 직접 연결하세요.

  • USB 3.0 허브의 펌웨어가 최신 상태가 아닙니다.

    일부 이전 USB 3.0 허브는 제대로 작동하지 않습니다. 따라서 Windows는 해당 허브의 2.0 부분만 사용합니다. 장치 관리자에 이 이미지와 같이 "작동하지 않는" 허브가 표시될 경우 Windows 8은 해당 허브의 3.0 부분을 사용하지 않습니다.

    작동하지 않는 SuperSpeed USB 허브

    SuperSpeed 장치를 USB 3.0 포트에 직접 연결하거나 허브의 펌웨어를 업데이트할 수 있습니다. Windows 8에서는 최신 펌웨어가 있는 허브를 인식합니다.

  • 장치가 USB 2.0 케이블로 연결되어 있습니다.

    장치 연결에 사용된 케이블이 USB 3.0 케이블인지 확인합니다. USB 3.0 케이블에 신호 무결성 문제가 있을 수도 있습니다. 이 경우 장치가 고속으로 전환될 수 있습니다. 이 문제가 발생하면 다른 USB 3.0 케이블을 사용해야 합니다.

  • 장치의 펌웨어가 최신 상태가 아닙니다.

    제조업체 웹 사이트에서 최신 버전을 다운로드하여 SuperSpeed USB 장치에 대한 펌웨어를 업데이트하세요. 일부 SuperSpeed USB 장치 제조업체는 장치에 있는 버그에 대한 수정을 펌웨어 업데이트로 릴리스합니다.

  • 호스트 컨트롤러의 펌웨어가 최신 상태가 아닙니다.

    PC 제조업체 사이트 또는 추가 기능 카드 제조업체 사이트에서 최신 버전을 다운로드하여 USB 3.0 컨트롤러의 펌웨어를 업데이트합니다. 일부 USB 3.0 컨트롤러 제조업체는 컨트롤러에 있는 버그에 대한 수정을 펌웨어 업데이트로 릴리스합니다.

  • 시스템의 BIOS가 최신 상태가 아닙니다.

    PC 제조업체에서 최신 버전을 다운로드하여 시스템의 BIOS를 업데이트합니다. 일부 마더보드에서는 BIOS가 EHCI 컨트롤러에 연결된 장치의 경로를 잘못 지정할 수 있습니다. 이 잘못된 경로 지정으로 인해 SuperSpeed USB 장치가 고속으로 작동합니다. BIOS 업데이트로 이 문제를 수정할 수 있습니다.

하드웨어의 일부로 복합 장치를 포함할 수 있나요?

예. 복합 USB 장치의 예로는 버스에서 전원이 공급되는 3포트 허브가 포함된 Microsoft Natural Keyboard Pro가 있습니다. 장치의 포트 1에는 복합 장치가 연결되어 있습니다. 추가 포트 두 개는 최종 사용자에게 노출됩니다.

포트 1에 연결된 장치는 저속 복합 장치입니다. 장치에는 인터페이스 두 개가 있으며 둘 다 HID(휴먼 인터페이스 장치)에 대한 USB 표준 장치 클래스 정의를 준수합니다. 복합 장치는 최상위 컬렉션을 사용하여 단일 HID 인터페이스를 통해 모든 컬렉션을 멀티플렉싱하지 않고 HID 인터페이스 두 개를 제공합니다. 이 디자인은 이전 BIOS와의 호환성을 위해 선택되었습니다.

USB 장치가 새 포트로 이동되면 장치 중 일부가 다시 설치되는 이유는 무엇인가요?

Windows 2000 이상 운영 체제에서는 USB 장치가 한 포트에서 다른 포트로 이동되면 새로운 PDO(실제 장치 개체)가 만들어집니다. 하드웨어가 고유한 USB 일련 번호를 보고하는 경우에는 새 PDO가 만들어지지 않습니다.

같은 PDO을 다시 사용하고 장치가 같은 포트나 새 포트에 다시 삽입되는지 여부에 관계없이 장치 환경이 변경되지 않는지 확인하려면 하드웨어 공급업체가 해당 장치에 일련 번호를 저장해야 합니다. Windows 하드웨어 인증 프로그램 요구 사항에 따라 장치 설치 식별자를 공유하는 모든 장치에 대한 일련 번호는 고유해야 합니다.

USB 제품 패키징에 대한 디자인 권장 사항이 있나요?

USB-IF는 Microsoft 및 기타 USB-IF 회원사와의 공동 작업을 통해 패키징에 포함할 독립 하드웨어 공급업체에 대한 권장 사항 목록을 개발했습니다.

자세한 정보는 USB 웹 사이트에서 확인할 수 있습니다.

USB 및 고속 USB에 대해서는 http://www.usb.org/developers/packaging/을 참조하세요.

SuperSpeed USB에 대해서는 http://www.usb.org/channel/을 참조하세요.

USB 3.0 장치를 지원하도록 클라이언드 드라이버를 다시 작성해야 하나요?

저속, 전속력 또는 고속 장치가 USB 3.0 포트에 연결될 경우 모든 기존 클라이언트 드라이버는 있는 그대로 계속 작동해야 합니다. Windows 8에서는 기존 클라이언트 드라이버와의 호환성을 제공합니다.

USB 3.0 드라이버 스택은 기존 드라이버가 계속 작동할 수 있도록 IRQL 수준, 호출자 컨텍스트 및 오류 상태, 장치를 조작할 재시도 빈도 및 타이밍 등을 유지 관리합니다. 테스트는 여전히 매우 중요합니다.

다음과 같은 이유로 일반적인 오류가 발생합니다.

  • SuperSpeed 끝점 도우미 설명자가 있기 때문에 드라이버의 끝점 설명자 구문 분석이 중단됩니다.
  • 속도 증가로 인해 응용 프로그램 프로토콜 수준에서 타이밍 문제가 발생할 수 있습니다.
  • 끝점에서 지원되는 최대 패킷 크기가 서로 다를 수 있습니다.
  • \기능 전원 관리로 인해 선택적 절전 모드 작동에 대한 타이밍이 서로 다를 수 있습니다.

Windows 7 및 이전 버전의 운영 체제에서는 USB 3.0 드라이버 스택을 타사에서 제공합니다. 따라서 타사 USB 드라이버 스택에서 작동할 드라이버를 테스트하는 것이 좋습니다.

Windows 8에서 고속 및 SuperSpeed USB 장치용 새 클라이언트 드라이버는 새 기능을 선택해야 합니다.

SuperSpeed 저장 장치를 사용할 경우 Uaspstor.sys 또는 Usbstor.sys 중 어떤 드라이버가 로드되나요?

UAS(USB Attached SCSI) 프로토콜은 설정된 USB 대용량 저장소 프로토콜인 BOT(Bulk-Only-Transport)를 통해 성능을 향상시키도록 디자인된 새로운 대용량 저장소 프로토콜입니다. 프로토콜 오버헤드를 줄이고 SATA NCQ(Native Command Queuing)를 지원하고 동시에 여러 명령을 처리하는 방법으로 이 작업을 성능을 향상시킵니다. 이 작업을 위해 UAS는 스트림이라는 대량 전송에 새 USB 3.0 기능을 사용합니다.

기존 대용량 저장소 드라이버인 Usbstor.sys는 BOT 프로토콜을 사용합니다. 이 드라이버는 SuperSpeed USB 장치를 비롯한 모든 속도의 장치에서 작동합니다.

Windows 8의 경우 Microsoft는 USA 프로토콜을 사용하는 새 대용량 저장소 클래스 드라이버인 Uaspstor.sys를 포함합니다. 스트림이 USB 3.0의 새로운 기능이므로 Uaspstor.sys는 하드웨어가 스트림을 지원하는 경우(SuperSpeed USB 장치가 xHCI 호스트 컨트롤러에 연결되어 있는 경우)에만 스트림을 사용할 수 있습니다. 드라이버에는 소프트웨어 스트림에 대한 지원도 포함되므로 이 드라이버는 호스트 유형에 관계없이 고속으로 작동하는 장치용으로 로드될 수 있습니다.

대용량 저장 장치를 Windows 8에 연결하고 해당 장치가 UAS를 지원하면 Windows가 Uaspstor.sys를 로드합니다. 경우에 따라 특정 xHCI 호스트 컨트롤러에서 하드웨어 스트림에 관련된 알려진 문제나 장치의 UAS 프로토콜 구현에 관련된 알려진 문제가 있을 수 있습니다. 이 경우 Windows는 BOT 프로토콜로 대체하고 Usbstor.sys 드라이버를 대신 로드합니다.

Uaspstor.sys는 Windows 8의 새로운 기능입니다. 이 기능은 이전 Windows 버전에는 없습니다.

Microsoft가 지원하는 USB DWG 클래스는 무엇인가요?

Windows는 USB DWG(장치 작업 그룹)에서 정의한 여러 가지 USB 클래스를 지원합니다. 현재 USB 클래스 사양 및 클래스 코드 목록을 보려면 USB DWG 웹 사이트(http://www.usb.org/developers/devclass_docs)를 방문하세요.

이 표에서는 Windows에서 지원되는 USB DWG 클래스를 중점적으로 다루고 각 클래스를 지원하는 Windows 버전을 식별합니다.

클래스 사양 bDeviceClass 코드드라이버 이름 Windows 지원
Bluetooth 클래스0xE0Bthusb.sysWindows XP 이상
CCID(칩/스마트 카드 인터페이스 장치)0x0BUsbccid.sys

Windows Server 2008 이상

Windows Vista 이상

Windows Server 2003*

Windows XP*

Windows 2000*

허브 클래스0x09 Usbhub.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

HID(휴먼 인터페이스 장치)0x03Hidusb.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

MSC(대용량 저장소 클래스)0x08Usbstor.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

UAS(USB Attached SCSI)0x08Uaspstor.sys

Windows Server 2012

Windows 8

인쇄 클래스0x07Usbprint.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

스캔/이미징(PTP)0x06

WpdUsb.sys

Usbscan.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

미디어 전송(MTP)0x06WpdUsb.sys

Windows Server 2003 이상

Windows XP 이상

USB 오디오 클래스0x01Usbaudio.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

모뎀 클래스(CDC)0x02Usbser.sys

Windows Server 2003 이상

Windows XP 이상

Windows 2000 이상

비디오 클래스(UVC)0x0EUsbvideo.sys

Windows Vista 이상

Windows XP*

 

*이 드라이버는 운영 체제보다 나중에 릴리스되었기 때문에 이 드라이버를 로드하려면 특별 지침이 필요합니다. Windows 클래스 드라이버가 DWG 클래스 사양에 설명된 모든 기능을 지원하지는 못할 수 있습니다. 이 경우 클래스 일치에 따라 드라이버가 로드되지 않습니다. 클래스 사양 내에 구현된 기능에 대한 자세한 내용은 WDK 문서를 참조하세요.

사용자 지정 USB 장치에 사용해야 하는 장치 클래스는 무엇인가요?

Microsoft는 대부분의 장치 유형에 대한 시스템 정의 설치 클래스를 제공합니다. 시스템 정의 설치 클래스 GUID는 Devguid.h에 정의되어 있습니다. 자세한 내용은 WDK를 참조하세요. Windows 클래스 GUID 목록을 보려면 다음 항목을 참조하세요.

독립 하드웨어 공급업체는 버스 유형이 아니라 USB 장치 유형과 관련된 설치 클래스를 사용해야 합니다. Microsoft가 기존 클래스 GUID를 제공하지 않는 장치 유형을 개발하는 경우에는 새 장치 설치 클래스를 정의할 수 있습니다.

Windows 8에서는 USBDevice(ClassGuid = {88BAE032-5A81-49f0-BC3D-A4FF138216D6})라는 새 설치 클래스가 정의되었습니다. 장치 유형을 개발하는 경우 설치 클래스 USB가 아니라 USBDevice와 장치를 연결하세요. USBDevice 클래스는 Windows Vista and 이상 버전의 운영 체제에서 작동합니다.

설치 클래스 USB(ClassGuid = {36fc9e60-c465-11cf-8056-444553540000})는 USB 호스트 컨트롤러 및 USB 허브용으로만 예약되어 있으며 기타 장치 범주에 사용해서는 안 됩니다. 이 설치 클래스를 사용하면 장치 드라이버가 Windows 로고 테스트에 실패할 수 있습니다.

일부 USB 장치를 연결하면 CPU가 C3으로 전환되는 이유는 무엇인가요?

USB 장치가 연결되면 USB 호스트 컨트롤러는 DMA(직접 메모리 액세스) 버스 마스터 작업인 프레임 스케줄러를 폴링합니다. 정의에 따라 CPU가 C3 상태인 동안에는 CPU의 캐시가 스눕될 수 없으므로 버스 마스터 트래픽, 인터럽트 또는 여러 가지 기타 시스템 활동 같은 "Break events"가 발생하면 CPU가 C3 상태를 종료합니다.

이 문제를 해결하는 방법에는 두 가지가 있습니다.

  • 하드웨어 제거.

    때때로 범용 직렬 버스에서 전자 방식으로 하드웨어의 연결을 끊을 수 있습니다. 예를 들어 저장소 미디어를 USB 판독기에서 제거하면 USB 판독기는 전자적 연결 끊기를 에뮬레이트하고 미디어가 다시 삽입될 때 다시 연결됩니다. 이 경우 USB 장치가 호스트 컨트롤러에 없기 때문에 C3 전환이 발생할 수 있습니다.

  • 선택적 절전 모드.

    Windows XP 이상 운영 체제에서 사용할 수 있는 대체 방법은 USB 선택적 절전 모드를 지원하는 것입니다. 이 기능을 사용하면 시스템 자체가 작동 중 전원 상태(S0)에 남아 있는 경우에도 장치가 유휴 상태가 되면 드라이버가 제어하는 USB 장치를 일시 중단할 수 있습니다. 모든 USB 기능 드라이버가 이 기능을 지원하는 경우 선택적 절전 모드가 특히 강력합니다. 드라이버가 하나라도 이 기능을 지원하지 않으면 CPU가 C3으로 전환될 수 없습니다. 선택적 절전 모드에 대한 자세한 내용은 WDK를 참조하세요.

선택적 절전 모드를 지원하는 USB 클래스 드라이버는 무엇인가요?

다음은 Windows 8에서 선택적 절전 모드를 지원하는 USB 클래스 드라이버 목록입니다.

  • Bluetooth

    이 드라이버는 Windows XP 서비스 팩 2 이상 버전의 Windows를 실행하는 컴퓨터에서 장치를 선택적으로 일시 중단할 수 있습니다. 이 드라이버를 사용하려면 구성 설명자에서 Bluetooth 송수신 장치가 전원을 자체 공급하는 원격 절전 모드 해제 비트를 설정해야 합니다. 활성 Bluetooth 연결이 없는 경우 드라이버가 Bluetooth 송수신 장치를 선택적으로 일시 중단할 수 있습니다(D2).

  • USB HID

    이 드라이버는 HID 장치를 선택적으로 일시 중단할 수 있습니다. 모든 장치 상태 변경 시 원격 절전 모드 해제 신호를 트리거하는 것은 개발자의 책임입니다. HID 스택에서 선택적 절전 모드를 사용하려면 장치의 특정 VID+PID에 대한 SelectiveSuspendEnabled 레지스트리 값을 사용하도록 설정해야 합니다. 예를 들어 Input.inf를 참조하세요.

    Windows 8의 연결된 대기 상태를 지원하는 시스템에서는 시스템이 연결된 대기 상태일 때 이 드라이버가 선택적 절전 모드를 시작합니다(D2). 이 드라이버는 시스템의 절전 모드를 해제하고 화면을 켤 수 있습니다.

  • USB 허브

    허브에 연결된 장치가 없거나 허브에 연결된 모든 장치가 선택적으로 일시 중단될 수 있는 경우 이 드라이버가 루트 또는 외부 허브를 일시 중단할 수 있습니다.

  • USB 모뎀

    활성 모뎀 연결이 없을 경우 이 드라이버가 장치를 선택적으로 일시 중단할 수 있습니다.

  • USB 저장소(BOT)

    Windows 8의 연결된 대기 상태를 지원하는 시스템이 연결된 대기 상태로 전환될 경우 이 드라이버는 해당 시스템에서 저장 장치를 선택적으로 일시 중단할 수 있습니다(D3). HID 같이 모든 Windows 8 시스템에서 선택적 절전 모드를 사용하도록 설정하기 위한 레지스트리 재정의가 있습니다.

  • USB 저장소(UAS)

    이 드라이버는 디스크 시간 제한 기간 동안 유휴 상태일 때 저장 장치를 선택적으로 일시 중단할 수 있습니다(D3).

  • USB 비디오

    이 드라이버는 Windows Vista 이상 운영 체제에서 웹캠을 선택적으로 일시 중단할 수 있습니다(D3).

  • USB 오디오

    컴퓨터가 배터리 전원을 사용하고 있을 경우 Windows 7 이상 운영 체제에서 USB 오디오 장치를 선택적으로 일시 중단할 수 있습니다(D3).

  • 복합 USB

    모든 하위가 일시 중단 상태일 경우 이 드라이버는 복합 장치를 선택적으로 일시 중단할 수 있습니다(D3). D3-Cold를 지원하는 시스템에서는 모든 하위가 D3-Cold를 선택해야 합니다.

  • USB 스마트 카드

    이 드라이버는 Windows 7 이상 운영 체제에서 기본적으로 스마트 카드 인터페이스 장치를 선택적으로 일시 중단할 수 있습니다(D2).

  • 일반 USB 주변 장치(WinUSB)

    이 드라이버는 Windows Vista 이상 운영 체제에서 기본적으로 장치를 선택적으로 일시 중단할 수 있습니다(D3).

  • WWAN: 3G 또는 WiMax 동글

    이 드라이버는 장치를 선택적으로 일시 중단할 수 있습니다. 활성 구독이 있는 경우 장치가 D2로 전환되고 활성 구독이 없으면 장치가 D3으로 전환됩니다.

USB 장치가 S3에서 Windows를 해제할 수 없는 이유는 무엇인가요?

USB 장치는 다음을 비롯한 여러 가지 이유로 Windows를 S3에서 해제할 수 없습니다.

  1. 잘못된 BIOS.

    최신 BIOS가 컴퓨터에 설치되어 있는지 확인합니다. 컴퓨터에 대한 최신 BIOS 버전을 다운로드하려면 OEM 또는 ODM의 웹 사이트를 방문하세요.

  2. 절전 모드를 해제하도록 설정되지 않은 BIOS.

    일부 BIOS에서는 S3 및 S4로부터의 절전 모드 해제를 사용하지 않도록 설정할 수 있습니다. BIOS가 S3에서 절전 모드를 해제하도록 설정되어 있는지 확인합니다.

  3. USBBIOSx 레지스트리 키가 설정되어 있지 않음.

    Windows XP의 새로 설치에는 USBBIOSx 레지스트리 키가 포함되어 있지 않습니다. OEM 또는 ODM에서 BIOS가 S3으로부터 절전 모드를 해제할 수 있는지 검증할 경우 이 레지스트리 키를 0x00으로 설정하고 컴퓨터를 다시 시작합니다.

  4. S3 또는 S4 상태에서는 호스트 컨트롤러에 전원이 공급되지 않습니다.

    PC가 전원 부족 상태인 경우 PC는 추가 기능 카드에 대한 전원을 여러 번 차단합니다. 추가 기능 카드에 전원이 공급되지 않으면 추가 기능 카드는 절전 모드 해제 이벤트를 검색할 수 없으며 PC의 절전 모드를 해제할 수 없습니다.

자세한 내용은 Windows XP 이상 버전의 Windows에서 도움말 및 지원 센터에 있는 USB 문제 해결사를 참조하세요.

향상된(USB 2.0) 호스트 컨트롤러용 드라이버를 설치해야 하나요?

다음 Windows 버전에서는 USB 2.0 Enhanced Host Controller를 지원합니다.

  • Windows Vista 이상
  • Windows Server 2003 이상
  • Windows XP 서비스 팩 1
  • Windows 2000 서비스 팩 4
참고  

Windows 2000 및 Windows XP는 USB 2.0 하드웨어가 제공되기 전에 릴리스되었으므로 이러한 운영 체제용 드라이버는 서비스 팩으로 릴리스되었습니다. 드라이버를 설치하려면

  1. 첫 번째 질문에 대한 대답에 설명된 절차에 따라 컴퓨터에 USB 2.0 포트가 있고 Enhanced Host Controller용 드라이버를 설치해야 하는지 확인합니다.
  2. 장치 관리자 창에서 첫 번째 질문에서 설명된 기타 장치 섹션을 확장하고 USB(범용 직렬 버스) 컨트롤러를 두 번 클릭합니다.
  3. 속성 대화 상자의 일반 탭에서 드라이버 다시 설치를 클릭합니다.

    드라이버 다시 설치

  4. 새 하드웨어 추가 마법사에서 자동으로 소프트웨어 설치(권장)를 선택하고 다음을 클릭합니다. 마법사에서 마지막 페이지에 도달할 때까지 계속해서 모든 기본 옵션을 수락하고 마침을 클릭합니다. 설치를 완료하려면 컴퓨터를 다시 시작해야 할 수 있습니다.

Windows XP 서비스 팩 1의 USB 2.0 사용 가능성에 대한 자세한 내용은 Microsoft 기술 자료 문서 329632, "Windows 서비스 팩1에서 USB 2.0 드라이버를 구하여 설치하는 방법"(http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q329632&)을 참조하세요.

참고  

컴퓨터에 최신 업데이트가 설치되어 있는지 확인하려면 Windows 업데이트를 주기적으로 방문하세요.

"고속 USB 장치가 고속이 아닌 USB 포트에 연결되어 있습니다." 알림을 사용하지 않도록 설정할 수 있나요?

고속 USB 장치가 고속을 지원하지 않는 USB 포트에 연결되어 있을 경우 Windows XP 이상 버전의 Windows는 팝업 알림을 만듭니다. 장치에서 가장 빠른 성능을 확보하려면 사용자가 알림을 클릭하고 화면의 지침을 따라야 합니다.

알림을 사용하지 않도록 설정하려면 다음 단계를 따릅니다.

  1. 이 FAQ의 첫 번째 질문에서 설명된 대로 장치 관리자를 시작합니다.
  2. 장치 관리자 창에서 범용 직렬 버스 컨트롤러 노드를 확장합니다. 제목에 "Universal" 또는 "Open" 단어가 있는 호스트 컨트롤러를 찾습니다. 호스트 컨트롤러를 찾으면 두 번 클릭합니다.
  3. 속성 대화 상자의 고급 탭에서 USB 오류에 대해 알리지 않음을 선택합니다.
참고  

이전 절차에서는 "고속 USB 장치가 고속이 아닌 포트에 연결되어 있습니다."만이 아니라 모든 USB 알림을 사용하지 않도록 설정합니다.

Windows XP 서비스 팩 1의 USB 2.0 지원에 대한 자세한 내용은 Microsoft 기술 자료 문서 329632, "Windows 서비스 팩1에서 USB 2.0 드라이버를 구하여 설치하는 방법"(http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q329632)을 참조하세요.

사용 중인 USB 2.0 허브가 단일 TT 또는 다중 TT인가요?

USB 2.0 허브의 경우 허브의 모든 다운스트림 방향 포트에 단일 TT(트랜잭션 변환기)가 있거나(단일 TT) 허브의 각 다운스트림 방향 포트에 하나씩 TT(multiple TT)가 있습니다.

USB 장치 설명자의 bDeviceProtocol 필드 값과 USB 인터페이스 설명자의 bInterfaceProtocol 필드 값은 허브가 단일 TT 또는 다중 TT인지 여부를 나타냅니다.

  • 단일 TT. bDeviceProtocol == 0x01
  • 다중 TT. bDeviceProtocol == 0x02

Usbhub.sys에서는 이 설정을 사용하여 다중 TT 모드나 단일 TT 모드를 사용하도록 설정합니다. Windows XP 이상에서는 Usbhub.sys가 항상 다중 TT 허브에서 다중 TT 모드를 사용하도록 설정합니다. TT 레이아웃에 대한 자세한 내용은 USB 2.0 사양의 섹션 11.14.1.3 및 11.23.1을 참조하세요.

USB 일련 번호에서 유효한 문자나 바이트는 무엇인가요?

USB 장치 설명자의 iSerialNumber 필드는 다음과 같이 장치에 일련 번호가 있는지 여부와 번호가 저장된 위치를 나타냅니다.

  • iSerialNumber == 0x00: USB 장치에 일련 번호가 없습니다.
  • iSerialNumber != 0x00: USB 장치에 일련 번호가 있습니다. iSerialNumber에 할당된 값은 일련 번호의 문자열 색인입니다.

장치에 일련 번호가 있는 경우 일련 번호는 동일한 장치의 각 인스턴스를 고유하게 식별해야 합니다.

예를 들어 장치 설명자 두 개에서 idVendor, idProductbcdDevice 필드의 값이 동일한 경우에는 장치를 구분하려면 iSerialNumber 필드가 서로 달라야 합니다.

플러그 앤 플레이를 사용하려면 USB 일련 번호의 모든 바이트가 유효해야 합니다. 단일 바이트가 잘못된 경우 Windows는 일련 번호를 무시하고 장치에 일련 번호가 없는 것처럼 장치를 처리합니다. 다음 바이트 값은 USB 일련 번호로 유효하지 않습니다.

  • 0x2C.
  • 0x20보다 작은 값.
  • 0x7F보다 큰 값.

iSerialNumber 값에 대한 자세한 내용은 USB 2.0 사양의 섹션 9.6.1을 참조하세요.

Windows의 지역화 빌드에서 문자열 요청에 사용되는 LANGID는 무엇인가요?

USB 장치는 USB 장치 설명자의 iSerialNumber 필드를 일련 번호의 문자열 색인으로 설정하여 일련 번호가 있는지 나타냅니다. 일련 번호를 검색하기 위해 Windows는 언어 식별자(LANGID)가 0x0409(미국 영어)로 설정된 문자열 요청을 실행합니다. 다른 언어로 지역화된 Windows 버전의 경우에도 Windows에서는 항상 이 LANGID를 사용하여 USB 일련 번호를 검색합니다.

장치의 일련 번호를 추출하는 데 사용되는 LANGID는 무엇인가요?

USB 장치는 USB 장치 설명자의 iSerialNumber 필드를 일련 번호의 문자열 색인으로 설정하여 일련 번호가 있는지 나타냅니다. 일련 번호를 검색하기 위해 Windows는 언어 식별자(LANGID)가 0x0409(미국 영어)로 설정된 문자열 요청을 실행합니다. 다른 언어로 지역화된 Windows 버전의 경우에도 Windows에서는 항상 이 LANGID를 사용하여 USB 일련 번호를 검색합니다.

다양한 Windows 버전에 대한 최대 USB 전송 크기는 무엇인가요?

다양한 운영 체제의 최대 USB 전송 크기를 참조하세요.

복합 장치에서 여러 인터페이스에 번호를 할당하려면 어떻게 해야 하나요?

Windows는 첫 번째 구성에 인터페이스가 두 개 이상 있는 USB 장치를 복합 장치로 처리합니다.

Windows XP 서비스 팩 1 이하 버전의 Windows:

  • 인터페이스 번호는 0부터 시작해야 합니다.
  • 인터페이스 번호는 연속적이고 증가해야 합니다.

Windows XP 서비스 팩 2 이상 버전의 Windows에서는 인터페이스 번호가 증가하지만 연속적이지 않아야 합니다.

인터페이스 번호에 대한 자세한 내용은 인터페이스 번호가 순차적으로 지정된 복합 USB 장치는 Windows XP에서 작동하지 않음을 참조하세요.

인터페이스에 대한 대체 설정은 모든 버전의 Windows에 대해 다음과 같이 할당되어야 합니다.

  • 인터페이스의 기본값은 항상 대체 설정 0입니다.
  • 추가적인 대체 설정 번호는 연속적이고 증가해야 합니다.

대체 설정에 대한 자세한 내용은 USB 2.0 사양의 섹션 9.6.5를 참조하세요.

Usbccgp.sys에서 적용하는 주요 제한 사항은 무엇인가요?

Usbccgp.sys는 다음 운영 체제에 대해 복합 장치를 지원합니다.

  • Windows Me
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

이러한 운영 체제와 이후 버전의 Windows에서 Usbhub.sys를 복합 장치용 상위 드라이버로 로드할 수도 있지만 하드웨어 호환성 오류가 발생할 수 있으므로 이 파일을 로드하지 않는 것이 좋습니다. 대신 Usbccgp.sys을 사용해야 합니다.

복합 장치에 대해 올바른 드라이버를 로드하는지 확인하려면 다음과 같이 INF 파일에서 Include 및 Needs 지시문을 사용합니다.

Include = USB.INF
Needs = Composite.Dev

Usbccgp.sys에서 하드웨어 장치 및 드라이버에 적용하는 주요 제한 사항은 다음과 같습니다.

  • Usbccgp는 기본 구성인 구성 0만 지원합니다.
  • Usbccgp는 Windows XP 및 Windows Server 2003에서 선택적 절전 모드를 지원하지 않습니다. 이 기능은 Windows Vista 이상 버전에서만 지원됩니다.
    참고  

    Usbccgp는 Windows XP SP1 이상 버전의 Windows XP에서 선택적 절전 모드를 지원하지만 기능이 제한됩니다. 이러한 버전의 Windows에서는 장치의 각 하위 기능에 보류 중인 유휴 IRP가 있는 경우에만 선택적 절전 모드로 전환됩니다. Usbccgp는 Windows XP RTM에서 선택적 절전 모드를 지원하지 않습니다.

  • Usbccgp는 Windows XP SP2, Windows Server 2003 SP1 및 이후 버전의 Windows에서만 IAD(인터페이스 연결 설명자)를 지원합니다.
  • Usbccgp는 Windows XP SP2, Windows Server 2003 SP1 및 이후 버전의 Windows에서만 비연속 인터페이스 번호를 지원합니다.

USB 핵심 이진에 대한 디버그 추적을 사용하도록 설정하려면 어떻게 하나요?

드라이버의 공용 PDB 파일에서 WPP 추적 메시지를 포함하고 보는 방법에 대한 블로그 게시물을 참조하세요.

USB 핵심 스택 디버그에 대한 자세한 내용은 다양한 드라이버 및 하위 시스템에서 자세한 디버그 추적을 사용하도록 설정하는 방법을 참조하세요.

Windows는 인터페이스 연결 설명자를 지원하나요?

예. USB 2.0 IAD(인터페이스 연결 설명자) ECN(Engineering Change Notification)은 한 기능 내에서 인터페이스 그룹과 인터페이스의 대체 설정을 설명하기 위한 새 표준 방법을 도입했습니다. IAD를 사용하여 한 기능 내에서 두 개 이상의 연속 인터페이스 및 대체 설정을 식별할 수 있습니다.

Microsoft는 현재 IHV와 함께 IAD를 지원하는 장치를 개발하고 있습니다. 다음 운영 체제에서는 IAD를 지원합니다.

  • Windows XP 서비스 팩 2 이상
  • Windows Server 2003 서비스 팩 1 이상
  • Windows Vista

USB 스택이 URB의 체인 MDL을 처리하나요?

이 기능은 Windows에 포함된 USB 3.0 드라이버 스택에서 지원됩니다.

드라이버의 IRP에 URB를 두 개 이상 포함할 수 있나요?

아니요. 이 기능은 Windows에 포함된 USB 드라이버 스택에서 지원되지 않습니다.

Windows가 USB 복합 허브를 지원하나요?

다기능 USB 장치라고도 하는 복합 USB 장치는 다양한 기능을 노출하며, 이러한 각 기능이 독립 장치로 처리될 수 있습니다. 시스템은 USB 일반 상위 드라이버, Usbccgp.sys를 로드하여 각 장치 기능에 대한 상위 드라이버로 사용합니다. USB 일반 상위 드라이버는 복합 장치의 기능을 개별 USB 장치인 것처럼 열거하고 PDO를 만든 다음 각 기능에 대한 장치 스택을 구성합니다.

복합 USB 장치는 허브로 사용되는 기능을 노출할 수 없습니다. Windows에서는 해당 허브를 제대로 열거하지 않으므로 장치를 설치하려고 하면 시스템 크래시가 발생할 수 있습니다.

USB에 대한 추가 FAQ는 어디서 찾을 수 있나요?

USB-IF FAQ 페이지(http://www.usb.org/developers/usbfaq/)를 참조하세요.

관련 항목

모든 개발자를 위한 USB 개념
USB(범용 직렬 버스)

 

 

표시:
© 2015 Microsoft