Partilhar via


Operações personalizadas de configuração da impressora

Importante

A moderna plataforma de impressão é o meio preferido do Windows para comunicar com as impressoras. Recomendamos que utilize o controlador de classe da caixa de entrada IPP da Microsoft, juntamente com as Aplicações de Suporte de Impressão (PSA), para personalizar a experiência de impressão no Windows 10 e 11 para o desenvolvimento de dispositivos de impressora.

Para obter mais informações, consulte Guia de design do aplicativo de suporte de impressão v1 e v2.

Para fornecer operações de configuração de impressora personalizadas para impressoras instaladas usando Ntprint.dll, o instalador de classe de impressora padrão do Windows 2000 e posterior, você pode incluir uma entrada VendorSetup INF no arquivo INF da impressora.

Atenção

Lembre-se de que VendorSetup agora foi preterido e não deve ser usado por nenhum novo driver v3 ou v4 que desenvolveres. Este tópico é fornecido apenas para referência ou para a manutenção de drivers v3 existentes que já usam essa diretiva INF.

Se pretender exibir elementos da interface do utilizador durante a instalação de um controlador de impressora, deve usar uma entrada INF VendorSetup. No entanto, você deve usar uma entrada VendorSetup INF somente se for necessário. Uma desvantagem significativa é que seu uso impede que um usuário comum instale uma impressora com Plug and Play (o usuário deve ser um administrador neste caso).

Não é possível instalar um dispositivo usando uma instalação do lado do servidor quando o driver de dispositivo não está assinado ou quando o arquivo INF do driver (assinado ou não assinado) contém uma entrada VendorSetup INF. Quando o driver não está assinado, o Setup adiciona 0x8000 à classificação que o driver teria se fosse um driver assinado. Se o arquivo INF do driver contiver uma entrada VendorSetup, a Instalação determinará que a instalação do dispositivo requer interação do usuário (o que não pode ocorrer em uma instalação no servidor) e interromperá a instalação.

A configuração também suspende uma instalação no lado do servidor se a classificação do driver for 0x8000 ou superior. A instalação pode continuar quando um usuário com privilégios administrativos fizer logon, momento em que a Instalação reinicia a instalação do dispositivo como uma instalação do lado do cliente. Para um driver cujo valor de classificação é 0x1000 ou superior e, portanto, não corresponde a um ID de hardware, o Setup inicia o Assistente de Novo Hardware Encontrado no contexto da DLL de Novo Dispositivo, que solicita ao utilizador que instale um driver.

Se o arquivo INF de um driver assinado contiver uma entrada VendorSetup e a classificação do driver for menor que 0x1000, a Configuração não iniciará o Assistente de Novo Hardware Encontrado. Para obter mais informações, consulte Como a instalação seleciona drivers.

O formato para a entrada VendorSetup é o seguinte:

VendorSetup= FileName, FunctionName

onde FileName é o nome de uma DLL que contém uma função de instalação e FunctionName é o nome da função. A DLL deve ser instalada no diretório %windir%\system32. O instalador da classe da impressora chama a função de configuração nesta DLL somente quando a impressora é instalada pelo Plug and Play ou pelo Assistente para Adicionar Impressora. A função de configuração não é chamada quando apenas um driver é instalado (por exemplo, usando o Assistente para Adicionar Driver de Impressora).

Para copiar um ou mais arquivos para o diretório \system32 %windir%, você pode adicionar o nome de uma seção definida pelo gravador INF à seção INF DestinationDirs. No exemplo a seguir, a seção OEMVendorFiles lista todos os arquivos que devem ser copiados.

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

A função especificada por FunctionName deve corresponder ao seguinte protótipo:

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

onde FunctionName é o nome da função de configuração. Os parâmetros da função e suas descrições são mostrados na tabela a seguir.

Parâmetro Descrição
hWnd Especifica o identificador da janela pai.
hInstance Especifica o identificador de instância do processo de chamada.
lpszCmdLine Especifica uma cadeia de caracteres ANSI contendo o nome da impressora que foi instalada. Essa cadeia de caracteres é analisada por FunctionName.
nCmdShow Especifica como a janela deve ser mostrada. Os sinalizadores que controlam como a janela é mostrada são definidos em Winuser.h.

O instalador de classe de impressora chama a função de configuração como uma das etapas finais na operação de instalação.