Freigeben über


Microsoft OS-Deskriptoren für USB-Geräte

Microsoft stellt eine Reihe proprietärer Geräteklassen und USB-Deskriptoren bereit, die als Microsoft OS Descriptors (MODs) bezeichnet werden.

Aufgrund der schnellen Entstehung von Geräten, die mehrere Hardwarefunktionen enthalten, stellen viele Hersteller fest, dass ihre Geräte nicht bequem in eine der aktuellen universellen seriellen Bus -Geräteklassen (USB) passen. Dies entzieht solchen Herstellern eines der attraktivsten Merkmale der USB-Technologie: die Standardisierung der Treibersoftware (gemäß der Klasse des Geräts). Windows stellt systemeigene Klassentreiber für die meisten Geräte bereit, die zu standard-USB-Geräteklassen gehören, und diese Treiber ermöglichen Endbenutzern das einfache Anfügen solcher Geräte an den Computer, ohne spezielle Software installieren zu müssen.

Um Hersteller zu unterstützen, deren Geräte nicht in den aktuellen Satz von USB-Geräteklassen passen, hat Microsoft eine Reihe proprietärer Geräteklassen und USB-Deskriptoren entwickelt, die als Microsoft OS Descriptors (MODs) bezeichnet werden. Sowohl Anwendungen als auch Systemsoftware können die Geräte identifizieren, die zu den von Microsoft definierten Geräteklassen gehören, indem sie die Geräte abfragen, um festzustellen, ob sie MODs unterstützen.

Microsoft-Betriebssystemdeskriptoren haben andere Verwendungen als die Unterstützung der proprietären Geräteklassen. Insbesondere bieten sie einen Mechanismus für die Ableitung des maximalen Nutzens von der Gerätefirmware. Mit Hilfe von Microsoft OS-Beschreibungen können Sie die Firmware verwenden, um Hilfedateien, spezielle Symbole, URLs (Uniform Resource Locators), Registrierungseinstellungen und andere Daten bereitzustellen, die erforderlich sind, um die Installation zu vereinfachen und die Kundenzufriedenheit zu verbessern. In einigen Fällen können Sie Speichermedien wie Disketten und CDs verzichten, wodurch die Bereitstellung und Unterstützung von Upgrades vereinfacht wird.

Betriebssystemunterstützung

Microsoft OS 1.0-Deskriptoren werden in folgenden Versionen unterstützt:

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista, Windows Server 2008
  • Windows XP mit Service Pack 1 (SP1), Windows Server 2003

Microsoft OS 2.0-Deskriptoren werden in:

  • Windows 11
  • Windows 10
  • Windows 8,1

Warum stellt Windows eine Zeichenfolgenbeschreibungsanforderung zum Indizieren 0xEE aus?

Geräte, die Microsoft OS-Deskriptoren unterstützen, müssen einen speziellen USB-Zeichenfolgendeskriptor in der Firmware im festen Zeichenfolgenindex von 0xEE speichern. Dieser Zeichenfolgendeskriptor wird als Microsoft OS-Zeichenfolgendeskriptor bezeichnet.

  • Das Vorhandensein weist darauf hin, dass das Gerät mindestens eine Funktionsbeschreibung des Betriebssystems enthält.
  • Sie enthält die Daten, die zum Abrufen der zugehörigen Betriebssystemfeaturedeskriptoren erforderlich sind.
  • Es enthält ein Signaturfeld, das den Betriebssystemzeichenfolgendeskriptor von anderen Zeichenfolgen unterscheidet, die IHVs möglicherweise bei 0xEE speichern möchten.
  • Sie enthält eine Versionsnummer, die zukünftige Überarbeitungen von Microsoft OS-Deskriptoren ermöglicht.

Wenn bei 0xEE kein Zeichenfolgendeskriptor vorhanden ist oder der Zeichenfolgendeskriptor bei diesem Index kein gültiger Betriebssystemzeichenfolgendeskriptor ist, geht Windows davon aus, dass das Gerät keine Betriebssystemfeaturedeskriptoren enthält.

Wenn ein neues Gerät zum ersten Mal an einen Computer angefügt wird, fordert ein Betriebssystem, das Microsoft OS-Deskriptoren unterstützt, den Zeichenfolgendeskriptor an, der sich im Index 0xEE befindet. Der Microsoft OS String Descriptor enthält ein eingebettetes Signaturfeld, das vom Betriebssystem verwendet wird, um es von anderen Zeichenfolgen zu unterscheiden, die sich möglicherweise im Index 0xEE befinden. Das Vorhandensein eines Zeichenfolgendeskriptors, das das richtige Signaturfeld im Index 0xEE enthält, gibt an, dass das Gerät Microsoft OS-Deskriptoren unterstützt. Der Microsoft OS String Descriptor stellt außerdem das Betriebssystem mit Versionsinformationen bereit.

Das Betriebssystem fragt den Zeichenfolgendeskriptor bei index 0xEE während der Geräteenumeration ab – bevor der Treiber für das Gerät geladen wird– was zu einer Fehlfunktion einiger Geräte führen kann. Solche Geräte werden von Versionen des Windows-Betriebssystems nicht unterstützt, die Microsoft OS-Deskriptoren unterstützen.

Wenn ein Gerät keinen gültigen Zeichenfolgendeskriptor bei Index 0xEE enthält, muss es mit einem Stallpaket (d. h. einem Paket, das einen Paketbezeichner vom Typ STALL enthält) reagieren, der im Abschnitt "Anforderungsfehler" der Universal Serial Bus Specification beschrieben wird. Wenn das Gerät nicht mit einem Stallpaket reagiert, gibt das System ein single-ends Zero Reset-Paket auf das Gerät aus, um es aus dem zustandsfreien Zustand wiederherzustellen (nur Windows XP).

Nachdem das Betriebssystem einen Microsoft OS String Descriptor von einem Gerät anfordert, wird der folgende Registrierungsschlüssel erstellt:

HLKM\SYSTEM\CurrentControlSet\Control\UsbFlags\vvvvpppprrrrrrr

Das Betriebssystem erstellt unter diesem Registrierungsschlüssel einen Registrierungseintrag namens osvc, der angibt, ob das Gerät Microsoft OS-Deskriptoren unterstützt. Wenn das Gerät beim ersten Abfragen des Betriebssystems keine gültige Antwort für einen Microsoft OS-Zeichenfolgendeskriptor bereitstellt, führt das Betriebssystem keine weiteren Anforderungen für diesen Deskriptor aus.

Registrierungseinträge unter diesem Schlüssel finden Sie unter USB-Geräteregistrierungseinträge.

Weitere Informationen finden Sie unter Microsoft OS 1.0 Descriptors Specification.

Welche Typen von Betriebssystemfeaturedeskriptoren unterstützt Windows?

Alle Informationen, die als Featuredeskriptor gespeichert werden sollen, müssen einem der von Microsoft definierten Standardformate entsprechen. Andere Featuredeskriptoren können ohne Microsoft-Zustimmung nicht definiert oder implementiert werden. Microsoft hat die folgenden Featuredeskriptoren definiert:

  • Erweiterte Compat-ID. Windows verwendet Klassen- und Unterklassencodes, um den geeigneten Standardtreiber für ein USB-Gerät zu finden. Die Arbeitsgruppe für USB-Geräte muss diese Codes jedoch zuordnen. Dies bedeutet, dass Geräte, die neue Arten von Features implementieren, häufig noch nicht über geeignete Klassen- und Unterklassencodes verfügen, sodass Windows die Codes nicht zum Auswählen eines Standardtreibers verwenden kann. IHVs können dieses Problem umgehen, indem die Informationen in der Firmware als erweiterte kompatible ID-Betriebssystem-Featurebeschreibung gespeichert werden. Windows kann diese Informationen dann abrufen, wenn das Gerät angeschlossen ist, und es verwenden, um zu ermitteln, welcher Standardtreiber geladen werden soll.
  • Erweiterte Eigenschaften. Derzeit gibt es zwei Ebenen, auf denen Eigenschaften für ein USB-Gerät deklariert werden können: Klassenebene oder Devnode-Ebene. Mit dem Featuredeskriptor für erweiterte Eigenschaften des Betriebssystems kann ein Anbieter weitere Eigenschaften speichern, z. B. Hilfeseiten, URLs und Symbol-in-Gerätefirmware.