Identificadores gerados por USBPRINT.SYS
A partir do Windows 2000, o sistema operacional fornece um driver de impressão USB no modo kernel ,usbprint.sys que conecta o subsistema da impressora à pilha USB. O driver de impressora USB nativo libera os fornecedores da necessidade de desenvolver seus próprios drivers de impressora USB no modo kernel. Isso permite que os fornecedores desenvolvam drivers de impressora de modo de usuário de alto nível que funcionam com impressoras USB e paralelas.
O arquivo de instalação usbprint.inf contém uma ID compatível que corresponde a todos os dispositivos de impressora classe USB 7. Se o driver do hub USB enumerar um desses dispositivos, o sistema operacional encontrará uma correspondência para a ID que o driver do hub gera em usbprint.inf e carregará o driver da impressora USB, usbprint.sys. A ID compatível encontrada em usbprint.inf tem o seguinte formulário:
USB\CLASS_07
Em que:
- classe 07h = dispositivos que pertencem à classe de impressora USB
Assim que ele é carregado, o driver de impressora USB cria um novo PDO para o dispositivo de impressora. Quando o gerenciador de Plug and Play (PnP) consulta as cadeias de caracteres de identificação do dispositivo do PDO recém-criado, o driver de impressora USB cria uma nova ID de hardware, derivada da cadeia de caracteres IEEE 1284 do dispositivo que é compatível com os identificadores de cadeia de caracteres gerados pelo enumerador de barramento paralelo. Essa ID de hardware tem o seguinte formato:
USBPRINT\NameModel(20)Soma de verificação(4)
Em que:
NameModel(20) é a concatenação do nome do fabricante e do modelo do dispositivo, truncado até um máximo de 20 caracteres.
Checksum(4) é um código CRC (redundância cíclica marcar) de 4 caracteres calculado com base no nome do fabricante e no nome do modelo.
Os espaços na cadeia de caracteres são substituídos por sublinhados. Por exemplo, se o nome do fabricante for "Hewlett-Packard", o nome do modelo for "HP Color LaserJet 550" e a soma de verificação for 3115, a ID de hardware será a seguinte:
USBPRINT\Hewlett-PackardHP_Co3115
No exemplo anterior, o espaço entre "HP" e "Color" no nome do modelo foi substituído por um sublinhado para produzir a cadeia de caracteres de marca/modelo truncada "Hewlett-PackardHP_Co".
Nota O CRC gerado pelo sistema operacional pode não corresponder ao CRC calculado conforme descrito na seção anterior ou por qualquer outro algoritmo crc. Como resultado disso, o driver da impressora pode não ser capaz de calcular o hardwareID correto a ser usado com o arquivo INF para o driver de impressora. Para recuperar o hardwareID, é melhor pesquisar o arquivo setupapi.dev.log associado à impressora USB que está sendo instalada.