Compartilhar via


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 usb classe 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 de 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 da impressora USB cria um novo PDO para o dispositivo de impressora. Quando o gerenciador Plug and Play (PnP) consulta as sequências de identificação do dispositivo do PDO recém-criado, o driver da impressora USB gera um novo identificador de hardware, derivado da sequência IEEE 1284 do dispositivo, compatível com os identificadores de sequência gerados pelo enumerador do barramento paralelo. Essa ID de hardware tem o seguinte formato:

USBPRINT\NameModel(20)Checksum(4)

Em que:

  • NameModel(20) é a concatenação do nome do fabricante e o modelo do dispositivo, truncado para um máximo de 20 caracteres.

  • Soma de verificação(4) é um código CRC (verificação de redundância cíclica) de 4 caracteres calculado com base no nome do fabricante e no nome do modelo.

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 string 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 ID de hardware correto a ser usado com o arquivo INF para o driver da impressora. Para recuperar a hardwareID, é melhor pesquisar o arquivo setupapi.dev.log associado à impressora USB que está sendo instalada.