Compartir a través de


Operaciones de configuración personalizada de impresoras

Importante

La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.

Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.

Para proporcionar operaciones personalizadas de configuración de impresoras para impresoras que se instalan mediante Ntprint.dll, el instalador de clase de impresora predeterminado de Windows 2000 y versiones posteriores, puede incluir una entrada VENDORSetup del INF en el archivo INF de la impresora.

Precaución

Tenga en cuenta que VendorSetup ya está en desuso y no se debe utilizar en ningún nuevo controlador v3 o v4 que desarrolle. Este tema solo se proporciona como referencia o para el mantenimiento de los controladores v3 existentes que ya usan esta directiva INF.

Si tiene previsto mostrar elementos de la interfaz de usuario durante la instalación de un controlador de impresora, debe usar una entrada de INF VENDORSetup. Sin embargo, debe usar una entrada de INF VENDORSetup solo si es necesario. Una desventaja importante es que su uso impide que un usuario normal instale una impresora con Plug and Play (el usuario debe ser administrador en este caso).

No es posible instalar un dispositivo mediante una instalación del lado servidor cuando el controlador del dispositivo no está firmado o cuando el archivo INF del controlador (firmado o sin firmar) contiene una entrada de INF VendorSetup. Cuando el controlador no está firmado, el programa de instalación agrega 0x8000 al rango que tendría el controlador si fuera un controlador firmado. Si el archivo INF del controlador contiene una entrada VendorSetup, el programa de instalación determina que la instalación del dispositivo requiere interacción del usuario (que no se puede producir en una instalación del lado servidor) y detiene la instalación.

El programa de instalación también detiene una instalación del lado servidor si el rango del controlador es 0x8000 o mayor. La instalación puede continuar cuando un usuario con privilegios administrativos inicia sesión, en cuyo momento el programa de instalación reinicia la instalación del dispositivo como una instalación del lado cliente. Para un controlador cuyo rango es 0x1000 o mayor, y no es, por lo tanto, una coincidencia de identificador de hardware, el programa de instalación inicia el Asistente para nuevo hardware encontrado en el archivo DLL de nuevo dispositivo, que solicita al usuario que instale un controlador.

Si el archivo INF de un controlador firmado contiene una entrada VendorSetup y el rango del controlador es menor que 0x1000, el programa de instalación no inicia el Asistente para nuevo hardware encontrado. Para obtener más información, consulte Cómo selecciona el programa de instalación los controladores.

El formato de la entrada VendorSetup es el siguiente:

VendorSetup= FileName, FunctionName

donde FileName es el nombre de un archivo DLL que contiene una función de instalación y FunctionName es el nombre de la función. El archivo DLL debe instalarse en el directorio %windir%\system32. El instalador de clase de impresora llama a la función de instalación en este archivo DLL solo cuando la impresora se instala mediante Plug and Play o el Asistente para agregar impresoras. No se llama a la función de instalación cuando solo se instala un controlador (por ejemplo, mediante el Asistente para agregar controladores de impresora).

Para copiar uno o varios archivos en el directorio %windir%\system32, puede agregar el nombre de una sección INF-writer-defined a la sección DestinationDirs del INF. En el ejemplo siguiente, la sección OEMVendorFiles enumera todos los archivos que se van a copiar.

[DestinationDirs]
OEMVendorFiles = 11
...
[OEMVendorFiles]
vendor.dll

La función especificada por FunctionName debe coincidir con el siguiente prototipo:

VOID WINAPI FunctionName (HWND hWnd, HINSTANCE hInstance, LPSTR lpszCmdLine, UINT nCmdShow);

donde FunctionName es el nombre de la función de instalación. Los parámetros de la función y sus descripciones se muestran en la tabla siguiente.

Parámetro Descripción
hWnd Especifica el identificador de la ventana principal.
hInstance Especifica el identificador de instancia del proceso de llamada.
lpszCmdLine Especifica una cadena ANSI que contiene el nombre de la impresora que se instaló. FunctionName analiza esta cadena.
nCmdShow Especifica cómo se va a mostrar la ventana. Las marcas que controlan cómo se muestra la ventana se definen en Winuser.h.

El instalador de clase de impresora llama a la función setup como uno de los pasos finales de la operación de instalación.