Compartilhar via


Impressora conectada a uma porta LPT

O enumerador LPT é um exemplo de um motorista de ônibus. O enumerador LPT é capaz de obter informações de identificação do hardware de porta LPT que está em conformidade com o Protocolo de Porta de Recursos Estendidos do IEEE 1284 e o ISA Interface Standard.

Quando um sistema Windows 2000 ou posterior é iniciado, o gerenciador de configurações chama o enumerador LPT para enumerar os dispositivos compatíveis com IEEE 1284 conectados a portas LPT. Para cada dispositivo encontrado, o gerenciador de configurações chama o instalador de classe de impressora. O instalador de classe de impressora chama as funções de instalação do dispositivo com prefixo SetupDi, que obtêm informações de arquivos INF da impressora.

Para uma impressora conectada paralelamente, o enumerador paralelo cria um devnode com uma ID de hardware exclusiva gerada a partir da cadeia de caracteres 1284 que recebe da impressora.

Um exemplo de cadeia de caracteres 1284 é:

"MANUFACTURER:Hewlett-Packard;COMMAND SET:PJL,MLC,PCL,POSTSCRIPT;MODEL:HP Color LaserJet 550;CLASS:PRINTER;COMMENT:HP LaserJet;"

Nessa cadeia de caracteres 1284, o enumerador paralelo produz a seguinte ID de hardware:

LPTENUM\Hewlett-PackardHP_Co3115

A ID de hardware é composta pelo prefixo do enumerador, seguido pelo Nome do Fabricante, o Nome do Modelo e um código crc (redundância cíclica marcar). O código CRC, que são os últimos quatro dígitos da ID de hardware, é gerado a partir das cadeias de caracteres do fabricante e do modelo. Os espaços na cadeia de caracteres são substituídos por sublinhados.

Para ler a cadeia de caracteres de ID 1284 do dispositivo, envie IOCTL_PAR_QUERY_DEVICE_ID. Observe que o spooler redireciona o link simbólico LPTx (em que x é o número LPT 1, 2 ou 3) para o pipe nomeado do spooler, o que significa que, se o spooler estiver em execução, o parport nunca verá as IOCTLs enviadas ao LPTx.

O devnode de uma impressora Plug and Play conectada paralelamente é colocado em HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM e tem uma única ID de hardware do formulário:

LPTENUM\Company_NameModelNam1234

A pilha de driver aparece na figura após o próximo exemplo de código.

O código INF que "conectará e reproduzirá" corretamente uma ID de hardware do formulário LPTENUM\Company_NameModelNam1234 é mostrado no exemplo a seguir. Observe que a descrição do dispositivo "Nome do Modelo XYZ" aparece duas vezes na seção Fabricante do INF. A ID de hardware na primeira linha inclui o enumerador de barramento, enquanto a ID de hardware na segunda linha não. As duas linhas garantem uma correspondência de ID de hardware de classificação 0, independentemente do tipo de barramento no qual a impressora está instalada. Consulte Instalando um driver de impressora de Plug and Play personalizado para obter mais informações.

[Manufacturer]
%Company_Name%=Company_Name

; Section name for all drivers for Company_Name
[Company_Name]
"Model Name XYZ" = Install_Section_XYZ, LPTENUM\Company_NameModelNam1234 ; plus any compatible IDs
"Model Name XYZ" = Install_Section_XYZ, Company_NameModelNam1234 ; plus any compatible IDs

; The install section for the XYZ model
[Install_Section_XYZ]

[Strings]
Company_Name="Company Name"

plug and play para impressoras de porta paralela.

Para uma impressora que compartilha sua ID do dispositivo com outros modelos, o arquivo INF deve ser semelhante ao seguinte:

[Manufacturer]
%Company_Name%=Company_Name

; The section for all drivers for Company_Name
[Company_Name]
"Model Name XYA" = Install_Section_XYA, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs
"Model Name XYA" = Install_Section_XYA, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs
"Model Name XYB" = Install_Section_XYB, LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234; plus any other compatible IDs
"Model Name XYB" = Install_Section_XYB, Company_NameModelNam1234, Company_NameModelNam1234 ; plus any other compatible IDs

; The install sections
[Install_Section_XYA]

[Install_Section_XYB]

[ControlFlags]
InteractiveInstall = LPTENUM\Company_NameModelNam1234, Company_NameModelNam1234

[Strings]
Company_Name = "Company Name"

Assim como no exemplo anterior, cada modelo na seção Fabricante do INF é representado por um par de linhas quase idênticas. Para um determinado modelo, uma linha no par inclui o enumerador de barramento; o outro não. As duas linhas garantem uma correspondência de ID de hardware de classificação 0, independentemente do tipo de barramento no qual a impressora está instalada. Consulte Instalando um driver de impressora de Plug and Play personalizado para obter mais informações.