Freigeben über


Von USBPRINT.SYS generierte Bezeichner

Ab Windows 2000 stellt das Betriebssystem einen USB-Druckertreiber im Kernelmodus bereit,usbprint.sys , der das Druckersubsystem mit dem USB-Stapel verbindet. Der native USB-Druckertreiber befreit Anbieter von der Notwendigkeit, eigene Kernelmodus-USB-Druckertreiber zu entwickeln. Dies ermöglicht es Anbietern, druckertreiber im allgemeinen Benutzermodus zu entwickeln, die sowohl mit USB- als auch mit parallelen Druckern funktionieren.

Die Usbprint.inf-Installationsdatei enthält eine kompatible ID, die mit allen USB-Druckergeräten der Klasse 7 übereinstimmt. Wenn der USB-Hubtreiber eines dieser Geräte aufzählt, findet das Betriebssystem eine Übereinstimmung mit der ID, die der Hubtreiber in usbprint.inf generiert, und lädt den USB-Druckertreiber ,usbprint.sys. Die in usbprint.inf gefundene kompatible ID hat die folgende Form:

USB\CLASS_07

Hierbei gilt:

  • Klasse 07h = Geräte, die zur USB-Druckerklasse gehören

Sobald es geladen ist, erstellt der USB-Druckertreiber eine neue PDO für das Druckergerät. Wenn der Plug & Play-Manager (PnP) die Geräteidentifikationszeichenfolgen des neu erstellten PDO abfragt, erstellt der USB-Druckertreiber eine neue Hardware-ID, die von der IEEE 1284-Zeichenfolge des Geräts abgeleitet wird, die mit den vom parallelen Bus-Enumerator generierten Zeichenfolgenbezeichnern kompatibel ist. Diese Hardware-ID hat das folgende Format:

USBPRINT\NameModel(20)Checksum(4)

Hierbei gilt:

  • NameModel(20) ist die Verkettung des Herstellernamens und des Modells des Geräts, die auf maximal 20 Zeichen abgeschnitten sind.

  • Prüfsumme(4) ist ein 4-stellig zyklischer Redundanzprüfungscode (CRC), der aus dem Herstellernamen und dem Modellnamen berechnet wird.

Leerzeichen in der Zeichenfolge werden durch Unterstriche ersetzt. Wenn der Hersteller beispielsweise "Hewlett-Packard", der Modellname "HP Color LaserJet 550" und die Prüfsumme 3115 lautet, lautet die Hardware-ID wie folgt:

USBPRINT\Hewlett-PackardHP_Co3115

Im vorherigen Beispiel wurde das Leerzeichen zwischen "HP" und "Color" im Modellnamen durch einen Unterstrich ersetzt, um die abgeschnittene Make/Model-Zeichenfolge "Hewlett-PackardHP_Co" zu erzeugen.

Hinweis Der vom Betriebssystem generierte CRC stimmt möglicherweise nicht mit dem CRC überein, der wie im vorherigen Abschnitt beschrieben berechnet wird, oder mit einem anderen CRC-Algorithmus. Aus diesem Grund kann Ihr Druckertreiber möglicherweise nicht die richtige hardwareID berechnen, die mit der INF-Datei für den Druckertreiber verwendet werden soll. Um die hardwareID abzurufen, ist es besser, die Datei setupapi.dev.log zu durchsuchen, die dem installierten USB-Drucker zugeordnet ist.