Udostępnij przez


Identyfikatory generowane przez USBPRINT.SYS

Począwszy od systemu Windows 2000, system operacyjny zapewnia sterownik wydruku USB w trybie jądra, usbprint.sys który łączy podsystem drukarki ze stosem USB. Natywny sterownik drukarki USB zwalnia dostawców z potrzeby opracowywania własnych sterowników drukarek USB w trybie jądra. Umożliwia to dostawcom opracowywanie sterowników drukarek w trybie użytkownika wysokiego poziomu, które współpracują zarówno z drukarkami USB, jak i równoległymi.

Plik instalacyjny usbprint.inf zawiera zgodny identyfikator zgodny ze wszystkimi urządzeniami drukarki klasy USB 7. Jeśli sterownik koncentratora USB wylicza jeden z tych urządzeń, system operacyjny znajdzie dopasowanie identyfikatora wygenerowanego przez sterownik koncentratora w pliku usbprint.inf i załaduje sterownik drukarki USB, usbprint.sys. Zgodny identyfikator znaleziony w pliku usbprint.inf ma następującą postać:

USB\CLASS_07

Gdzie:

  • klasa 07h = urządzenia należące do klasy drukarki USB

Po załadowaniu ten sterownik drukarki USB tworzy nowy PDO dla urządzenia drukarki. Gdy menedżer Plug and Play (PnP) wysyła zapytania dotyczące ciągów identyfikacyjnych urządzenia nowo utworzonego PDO, sterownik drukarki USB tworzy nowy identyfikator sprzętu, który jest pochodną ciągu urządzenia IEEE 1284 i jest zgodny z identyfikatorami ciągów generowanymi przez enumerator magistrali równoległej. Ten identyfikator sprzętu ma następujący format:

USBPRINT\NameModel(20)Checksum(4)

Gdzie:

  • NameModel(20) to łączenie nazwy producenta i modelu urządzenia, obcięte do maksymalnie 20 znaków.

  • Suma kontrolna (4) to 4-znakowy kod kontroli nadmiarowości cyklicznej (CRC) obliczany na podstawie nazwy producenta i nazwy modelu.

Spacje w ciągu są zastępowane podkreślnikami. Jeśli na przykład nazwa producenta to "Hewlett-Packard", nazwa modelu to "HP Color LaserJet 550", a suma kontrolna to 3115, identyfikator sprzętu będzie następujący:

USBPRINT\Hewlett-PackardHP_Co3115

W poprzednim przykładzie spacja między "HP" a "Color" w nazwie modelu została zastąpiona podkreślnikiem, aby utworzyć obcięty ciąg znakowy modelu/marki "Hewlett-PackardHP_Co".

Uwaga CRC, który jest generowany przez system operacyjny, może nie być zgodny z CRC obliczonym zgodnie z opisem w poprzedniej sekcji lub za pomocą innego algorytmu CRC. W związku z tym sterownik drukarki może nie być w stanie obliczyć poprawnego identyfikatora sprzętu do użycia z plikiem INF sterownika drukarki. Aby pobrać identyfikator hardwareID, lepiej wyszukać plik setupapi.dev.log skojarzony z zainstalowaną drukarką USB.