Compartir a través de


Impresora conectada a un puerto LPT

El enumerador LPT es un ejemplo de un controlador de bus. El enumerador LPT es capaz de obtener información de identificación del hardware de puerto LPT que se ajusta al protocolo de puerto de funcionalidades extendidas IEEE 1284 y al estándar de interfaz ISA.

Cuando se inicia un sistema windows 2000 o posterior, el administrador de configuración llama al enumerador LPT para enumerar los dispositivos compatibles con IEEE 1284 conectados a los puertos LPT. Para cada dispositivo encontrado, el administrador de configuración llama al instalador de clase de impresora. El instalador de clase de impresora llama a las funciones de instalación de dispositivos prefijo SetupDi, que obtienen información de los archivos INF de la impresora.

Para una impresora conectada en paralelo, el enumerador paralelo crea un nodo de desarrollo con un identificador de hardware único generado a partir de la cadena 1284 que recibe de la impresora.

Un ejemplo de cadena 1284 es:

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

A partir de esta cadena 1284, el enumerador paralelo genera el siguiente identificador de hardware:

LPTENUM\Hewlett-PackardHP_Co3115

El identificador de hardware se compone del prefijo del enumerador, seguido del nombre del fabricante, el nombre del modelo y un código de comprobación de redundancia cíclica (CRC). El código CRC, que es los últimos cuatro dígitos del identificador de hardware, se genera a partir de las cadenas del fabricante y del modelo. Los espacios de la cadena se reemplazan por caracteres de subrayado.

Para leer la cadena de identificador 1284 del dispositivo, envíe IOCTL_PAR_QUERY_DEVICE_ID. Tenga en cuenta que el administrador de colas redirige el vínculo simbólico LPTx (donde x es el número LPT 1, 2 o 3) a la canalización con nombre del administrador de colas, lo que significa que si el administrador de colas se está ejecutando, entonces parport nunca ve las ICTLs enviadas a LPTx.

El devnode de una impresora Plug and Play conectada en paralelo se coloca en HKLM\SYSTEM\CurrentControlSet\Enum\LPTENUM y tiene un identificador de hardware único del formulario:

LPTENUM\Company_NameModelNam1234

La pila de controladores aparece en la ilustración que sigue al ejemplo de código siguiente.

El código INF que se "conectará y reproducirá" correctamente un identificador de hardware con el formato LPTENUM\Company_NameModelNam1234 se muestra en el ejemplo siguiente. Observe que la descripción del dispositivo "Nombre de modelo XYZ" aparece dos veces en la sección Fabricante inf. El identificador de hardware de la primera línea incluye el enumerador de bus, mientras que el identificador de hardware de la segunda línea no. Las dos líneas garantizan una coincidencia de id. de hardware rank-0 independientemente del tipo de bus en el que está instalada la impresora. Consulte Instalación de un controlador de impresora de Plug and Play personalizado para obtener más información.

[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 impresoras de puerto paralelas.

Para una impresora que comparte su identificador de dispositivo con otros modelos, el archivo INF debe ser similar al siguiente:

[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"

Al igual que en el ejemplo anterior, cada modelo de la sección Fabricante inf se representa mediante un par de líneas casi idénticas. Para un modelo determinado, una línea del par incluye el enumerador de bus; el otro no. Las dos líneas garantizan una coincidencia de id. de hardware rank-0 independientemente del tipo de bus en el que está instalada la impresora. Consulte Instalación de un controlador de impresora de Plug and Play personalizado para obtener más información.