USB 디바이스용 Microsoft OS 설명자

요약

Microsoft는 MICROSOFT OS 설명자(MOD)라고 하는 독점 디바이스 클래스 및 USB 설명자 집합을 제공합니다.

여러 하드웨어 기능을 포함하는 디바이스의 급속한 출현으로 인해 많은 제조업체는 디바이스가 현재 USB(유니버설 직렬 버스) 디바이스 클래스에 편안하게 맞지 않는다는 것을 알게 됩니다. 이는 USB 기술의 가장 매력적인 기능 중 하나인 드라이버 소프트웨어의 표준화(디바이스 클래스에 따라)의 제조업체를 박탈합니다. Microsoft Windows는 표준 USB 디바이스 클래스에 속하는 대부분의 디바이스에 대해 네이티브 클래스 드라이버를 제공하며, 이러한 드라이버를 사용하면 최종 사용자가 특수 소프트웨어를 설치하지 않고도 이러한 디바이스를 컴퓨터에 쉽게 연결할 수 있습니다.

장치가 현재 USB 디바이스 클래스 집합에 맞지 않는 제조업체를 수용하기 위해 Microsoft Corporation은 Microsoft OS 설명자(MOD)라고 하는 독점 디바이스 클래스 및 USB 설명자 집합을 개발했습니다. 애플리케이션과 시스템 소프트웨어는 모두 디바이스를 쿼리하여 MOD를 지원하는지 여부를 확인하여 Microsoft에서 정의한 디바이스 클래스에 속하는 디바이스를 식별할 수 있습니다.

Microsoft OS 설명자는 독점 디바이스 클래스를 지원하는 것 외에 중요한 용도를 가지고 있습니다. 특히 디바이스 펌웨어에서 최대 이점을 얻을 수 있는 메커니즘을 제공합니다. Microsoft OS 설명자의 도움으로 펌웨어를 사용하여 도움말 파일, 특수 아이콘, URL(Uniform Resource Locators), 레지스트리 설정 및 설치를 용이하게 하고 고객 만족도를 높이는 데 필요한 기타 데이터를 제공할 수 있습니다. 경우에 따라 플로피 디스크 및 CD와 같은 스토리지 미디어를 포기하여 업그레이드 배달 및 지원을 간소화할 수 있습니다.

Operating-System 지원

Microsoft OS 1.0 설명자는 다음에서 지원됩니다.

  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista, Windows Server 2008
  • Windows XP SP1(서비스 팩 1), Windows Server 2003

Microsoft OS 2.0 설명자는 다음에서 지원됩니다.

  • Windows 8.1

Windows에서 인덱스 0xEE 문자열 설명자 요청을 발급하는 이유는 무엇인가요?

Microsoft OS 설명자를 지원하는 디바이스는 0xEE 고정 문자열 인덱스의 특수 USB 문자열 설명자를 펌웨어에 저장해야 합니다. 이 문자열 설명자를 Microsoft OS 문자열 설명자라고 합니다.

  • 해당 존재는 디바이스에 하나 이상의 OS 기능 설명자가 포함되어 있음을 나타냅니다.
  • 연결된 OS 기능 설명자를 검색하는 데 필요한 데이터가 포함되어 있습니다.
  • 여기에는 OS 문자열 설명자를 IHV가 0xEE 저장하도록 선택할 수 있는 다른 문자열과 구분하는 서명 필드가 포함되어 있습니다.
  • Microsoft OS 설명자의 향후 수정을 허용하는 버전 번호가 포함되어 있습니다.

0xEE 문자열 설명자가 없거나 해당 인덱스의 문자열 설명자가 유효한 OS 문자열 설명자가 아닌 경우 Windows는 디바이스에 OS 기능 설명자가 포함되어 있지 않다고 가정합니다.

새 디바이스가 처음으로 컴퓨터에 연결되면 Microsoft OS 설명자를 지원하는 운영 체제가 인덱스 0xEE 있는 문자열 설명자를 요청합니다. Microsoft OS 문자열 설명자에는 운영 체제에서 인덱스 0xEE 있을 수 있는 다른 문자열과 구분하는 데 사용하는 포함된 서명 필드가 포함되어 있습니다. 인덱스 0xEE 적절한 서명 필드가 포함된 문자열 설명자가 있으면 디바이스가 Microsoft OS 설명자를 지원하는 운영 체제에 표시됩니다. Microsoft OS 문자열 설명자는 운영 체제에 버전 정보도 제공합니다.

운영 체제는 디바이스의 드라이버가 로드되기 전에 디바이스 열거 중에 인덱스 0xEE 문자열 설명자를 쿼리합니다. 이로 인해 일부 디바이스가 오작동할 수 있습니다. 이러한 디바이스는 Microsoft OS 설명자를 지원하는 Windows 운영 체제 버전에서 지원되지 않습니다.

디바이스에 인덱스 0xEE 유효한 문자열 설명자가 포함되어 있지 않으면 유니버설 직렬 버스 사양의 "요청 오류" 섹션에 설명된 중단 패킷(즉, STALL 형식의 패킷 식별자가 포함된 패킷)으로 응답해야 합니다. 디바이스가 중단 패킷으로 응답하지 않으면 시스템에서 중단된 상태에서 복구하는 데 도움이 되도록 디바이스에 대한 단단 제로 재설정 패킷을 발급합니다(Windows XP만 해당).

운영 체제가 디바이스에서 Microsoft OS 문자열 설명자를 요청하면 다음 레지스트리 키가 만들어집니다.

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrr

운영 체제는 디바이스가 Microsoft OS 설명자를 지원하는지 여부를 나타내는 레지스트리 키 아래에 osvc라는 레지스트리 항목을 만듭니다. 운영 체제가 Microsoft OS 문자열 설명자에 대해 처음 쿼리할 때 디바이스가 유효한 응답을 제공하지 않으면 운영 체제는 해당 설명자에 대해 더 이상 요청을 하지 않습니다.

해당 키 아래의 레지스트리 항목은 USB 디바이스 레지스트리 항목을 참조하세요.

자세한 내용은 Microsoft OS 설명자를 참조하세요.

Windows에서 지원되는 OS 기능 설명자는 무엇인가요?

기능 설명자로 저장할 모든 정보는 Microsoft에서 정의한 표준 형식 중 하나를 준수해야 합니다. Microsoft 동의 없이는 추가 기능 설명자를 정의하거나 구현할 수 없습니다. Microsoft는 다음 기능 설명자를 정의했습니다.

  • 확장된 호환성 ID입니다. Windows는 클래스 및 서브클래스 코드를 사용하여 USB 디바이스에 적합한 기본 드라이버를 찾습니다. 그러나 USB 디바이스 작업 그룹은 이러한 코드를 할당해야 합니다. 즉, 새로운 유형의 기능을 구현하는 디바이스에는 아직 적절한 클래스 및 하위 클래스 코드가 없으므로 Windows는 코드를 사용하여 기본 드라이버를 선택할 수 없습니다. IHV는 펌웨어에 정보를 확장된 호환 ID OS 기능 설명자로 저장하여 이 문제를 우회할 수 있습니다. 그런 다음 Windows는 디바이스가 연결되어 있을 때 이 정보를 검색하고 이를 사용하여 로드할 기본 드라이버를 결정할 수 있습니다.
  • 확장 속성입니다. 현재 USB 디바이스에 대해 속성을 선언할 수 있는 클래스 수준 또는 devnode 수준이라는 두 가지 수준이 있습니다. 확장 속성 OS 기능 설명자를 사용하면 공급업체가 도움말 페이지, URL 및 아이콘 입력 디바이스 펌웨어와 같은 추가 속성을 저장할 수 있습니다.

Microsoft OS 1.0 설명자 사양
Microsoft OS 2.0 설명자 사양
Windows용 USB 디바이스 빌드