USB 장치가 데이터 만 입력 할 수 있음을 증명하는 방법은 무엇입니까?


2

HID 및 복합 장치가 어떻게 정의되는지 이해하려고합니다.

최근에 연결된 USB 장치가 데이터를 입력 할 수만 있고 하드 드라이브처럼 연결하거나 실행 파일 등을 실행할 수 없음을 OS 측에서 어떻게 알 수 있습니까?

그에 따른 후속 조치는 다음과 같습니다. 연결된 USB 장치가 HID 여야한다고 대답 한 경우 해당 HID는 트랙 패드가 통합 된 키보드와 같은 키보드 / 마우스 콤보로 구성 될 수 있습니까?


2
OS에서 장치를 식별하는 방법 또는 장치의 실제 특성에 대해 묻고 있습니까? 정의에 따라 둘 이상의 논리적 하위 장치로 구성된 USB 장치는 항상 복합 USB 장치입니다.
Twisty Impersonator

나는 OS에서 그것이 어떻게 식별되는지 묻고있다-본질적으로, 나는 최근에 연결된 USB 장치가 데이터를 입력 할 수 있고 다른 것을 할 수 없다는 것을 알고있는 방법 (OS 측에서)을 걱정한다. 드라이브, 실행 파일 실행 등).
sscirrus

답변:


2

문제는 "Cut 'n'Shut"가 아닙니다. "하나의 마우스, 하나의 케이블 = HID VS 하나의 마우스, 하나의 키보드, 하나의 케이블 = 컴포지트"보다 USB 식별에 더 많은 것이 있습니다.

예를 들어 고독 키보드는 HID 및 / 또는 복합 USB 장치 일 수 있습니다. 매크로와 조명이 내장 된 "게이머"키보드를 가지고 있고 여행용 매크로를 저장하기위한 자체 저장 장치 인 복합 키보드 하나의 버스에 여러 장치를 통합하기 때문에 장치.

카운터 포인트에서 Logitech 무선 마우스 키보드 콤보는 HID 장치 일 수 있습니다. 두 장치가있을 수 있지만 두 장치가 모두 HID 전용이기 때문입니다.

USB 복합 장치는 둘 이상의 장치 클래스를 지원하는 주변 장치입니다. 많은 다른 장치가 복합 장치로 구현됩니다. 예를 들어 특정 장치 클래스뿐만 아니라 특정 드라이버 소프트웨어에 액세스 할 필요없이 장치를 자동으로 설치할 수 있도록 필요한 모든 드라이버가 저장된 USB 디스크로 구성됩니다.

출처 : USB 복합 장치

그리고 Windows가 장치를 어떻게 보는지에 대한 요점이 있습니다.

새 USB 장치가 호스트 시스템에 연결되면 USB 버스 드라이버는 장치에 대한 물리적 장치 개체 (PDO)를 생성하고 PnP 이벤트를 생성하여 새 PDO를보고합니다. 그런 다음 운영 체제는 버스 드라이버에 PDO와 연관된 하드웨어 ID를 조회합니다.

버스 드라이버는 또한 장치 설명 자의 장치 클래스 (bDeviceClass), 서브 클래스 (bDeviceSubClass) 및 프로토콜 (bDeviceProtocol) 필드도 확인합니다. 이 필드가 0이면 장치는 복합 장치이며 버스 드라이버는 PDO에 대해 USB \ COMPOSITE의 추가 호환 식별자 (ID)를보고합니다.

출처 : USB 복합 장치 열거

이것이 주제에 대해 조금 더 이해하는 데 도움이 되었기를 바랍니다.


이것은 훌륭한 게시물이지만 내가 묻는 특정 질문을 그리워합니다. 단일 USB 장치에 키보드 / 마우스 콤보가있는 경우 해당 장치가 컴퓨터의 OS가 HID로 인식하도록 자체 분류 할 수 있습니까?
sscirrus

@TwistyImpersonator의 권고에 따라, 시도 된 해결책보다는 문제에 초점을 맞추기 위해 질문을 넓혔습니다.
sscirrus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.