Compartilhar via


Introdução aos provedores de impressão

Aviso

A partir do Windows 10, as APIs que dão suporte a provedores de impressão de terceiros são preteridas. A Microsoft não recomenda nenhum investimento em provedores de impressão de terceiros. Além disso, em Windows 8 e produtos mais recentes em que o modelo de driver de impressão v4 está disponível, os provedores de impressão de terceiros podem não criar ou gerenciar filas que usam drivers de impressão v4.

Os provedores de impressão são responsáveis por direcionar trabalhos de impressão para dispositivos de impressão local ou remoto. Eles também são responsáveis por operações de gerenciamento de fila de impressão, como iniciar, parar e enumerar filas de impressão de um servidor. Os provedores de impressão definem uma exibição independente do sistema operacional de alto nível, independente do computador, de um servidor de impressão.

Todos os provedores de impressão implementam um conjunto comum de recursos do provedor de impressão. Esses recursos são definidos por um conjunto de funções de API, que são chamadas pelo roteador do spooler (Spoolss.dll).

A maioria das funções definidas pelos provedores de impressão exige um identificador de impressora como entrada. Um cliente spooler obtém um identificador de impressora chamando OpenPrinter em Winspool.drv, que chama o servidor de API (Spoolsv.exe). O roteador do spooler (Spoolss.dll) chama a função OpenPrinter de cada provedor de impressão até que um deles forneça um identificador de impressora e um valor retornado indicando que o provedor de impressão reconhece o nome da impressora especificado. Em seguida, o roteador retorna seu próprio identificador para o servidor de API. O identificador do roteador inclui o identificador da impressora e um identificador do provedor. Esse identificador é retornado ao aplicativo para que as chamadas subsequentes do aplicativo possam ser direcionadas para o provedor e a impressora corretos.

A Microsoft fornece os seguintes provedores de impressão com o Windows 2000 e posterior:

Localspl.dll
Provedor de impressão local. Manipula todos os trabalhos de impressão direcionados para impressoras gerenciadas do servidor local.

Win32spl.dll
Provedor de impressão de rede do Windows. Manipula trabalhos de impressão direcionados para servidores Win32 remotos (sistema operacional baseado em NT ou Windows para Grupos de Trabalho). Quando o trabalho chega ao servidor remoto, ele é passado para o provedor de impressão local do servidor.

Nwprovau.dll
Provedor de impressão Novell NetWare. Manipula trabalhos de impressão direcionados para servidores de impressão Novell NetWare.

Inetpp.dll
Provedor de impressão HTTP. Manipula trabalhos de impressão enviados para uma URL.

Os fornecedores podem criar provedores de impressão de rede adicionais. Para obter mais informações, consulte Escrevendo um provedor de impressão de rede.

O diagrama a seguir ilustra possíveis caminhos de fluxo envolvendo esses provedores de impressão.

imprimir caminhos de fluxo do provedor.

Ao exibir o diagrama, você deve considerar os seguintes pontos:

  • Se a impressora for gerenciada pelo sistema cliente, o trabalho de impressão será tratado pelo provedor de impressão local (Localspl.dll). Impressoras gerenciadas por Localspl.dll não precisam ser fisicamente locais para o cliente; eles podem ser conectados diretamente a cartões de rede.

  • Se a impressora estiver localizada em um servidor do sistema operacional baseado em NT, o provedor de rede (Win32spl.dll) usará RPC para redirecionar chamadas do roteador do cliente para o processo de Spoolsv.exe do servidor. Como a impressora é local para o servidor, o provedor de impressão local do servidor manipulará o trabalho de impressão.

  • Se a impressora estiver localizada em algum outro tipo de servidor, ela poderá ser acessada pelo provedor de impressão local ou por um provedor de impressão de rede que dê suporte a esse tipo de servidor, usando formatos de dados e protocolos de rede compatíveis com o servidor.

  • Para que o provedor de impressão local acesse uma impressora remota, ele deve conter um monitor de porta que possa usar protocolos de rede reconhecidos pela impressora ou servidor remoto.