Compartilhar via


Isolamento do driver de impressora

Importante

Recomendamos que você use o driver de classe de caixa de entrada IPP da Microsoft juntamente com PSA (Aplicativos de Suporte à Impressão) 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 o Guia de design do aplicativo de suporte à impressão.

O isolamento do driver de impressora melhora a confiabilidade do serviço de impressão do Windows, permitindo que os drivers de impressora sejam executados em processos separados do processo no qual o spooler de impressão é executado.

O suporte para isolamento de driver de impressora é implementado no Windows 7, Windows Server 2008 R2 e sistemas operacionais posteriores.

A partir do Windows 7 e do Windows Server 2008 R2, um driver de impressora de caixa de entrada deve oferecer suporte ao isolamento do driver de impressora e ser capaz de ser executado em um processo isolado.

Em versões anteriores do Windows, os drivers de impressora sempre eram executados no mesmo processo que o spooler. Os componentes do driver de impressora executados no processo do spooler incluíam o seguinte:

  • Módulos de configuração do driver de impressão

  • Processadores de impressão

  • Módulos de renderização

A falha de um único componente do driver de impressão pode fazer com que o subsistema de impressão falhe, interrompendo as operações de impressão para todos os usuários e para todos os componentes de impressão.

A partir do Windows 7 e do Windows Server 2008 R2, um administrador pode, como opção, configurar um driver de impressora para ser executado em um processo isolado - um processo separado do processo de spooler. Ao isolar o driver, o administrador pode impedir que uma falha em um componente do driver interrompa o serviço de impressão.

Para obter mais informações sobre as funções do spooler, consulte Funções e estruturas do componente do spooler.

Suporte ao isolamento de driver em arquivos INF

Por padrão, se o arquivo INF que instala um driver de impressora não indicar que o driver oferece suporte ao isolamento de driver, o instalador de classe de impressora configurará o driver para ser executado no processo de spooler. No entanto, se o arquivo INF indicar que o driver oferece suporte ao isolamento de driver, o instalador configurará o driver para ser executado em um processo isolado. Um administrador pode substituir essas definições de configuração e especificar, para cada driver, se deseja executar o driver no processo de spooler ou em um processo isolado.

Para oferecer suporte ao isolamento de driver, o arquivo INF que instala um driver de impressora pode usar a palavra-chave DriverIsolation para indicar se o driver oferece suporte ao isolamento de driver de impressora. A configuração DriverIsolation=2 indica que o driver oferece suporte ao isolamento do driver. Definir DriverIsolation=0 indica que o driver não oferece suporte ao isolamento de driver. Omitir a palavra-chave DriverIsolation do arquivo INF tem o mesmo efeito que definir DriverIsolation=0.

Funções de spooler para configurações de isolamento de driver

A tabela a seguir mostra as funções de spooler que um administrador pode usar para definir as configurações de isolamento de driver.

Nome da função Operação
GetPrinterDataEx Obtenha as configurações de isolamento de driver para uma impressora.
SetPrinterDataEx Defina as configurações de isolamento de driver para uma impressora.
EnumPrinterDataEx Enumerar configurações de isolamento de driver para uma impressora.
FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification Solicite notificações de alterações nas configurações de isolamento de driver de uma impressora.

O formato dos dados é o seguinte:

  • O driver em cada grupo é separado por '\'

  • Cada grupo de drivers é separado por '\\'

O primeiro grupo carrega o driver nos processos do spooler. Cada grupo subsequente carrega os drivers em processos isolados por grupo. O segundo grupo é considerado o grupo 'compartilhado' no qual outros drivers compatíveis com isolamento são carregados por padrão.

Configurando o modo de isolamento de driver por meio da administração

Um administrador de computador pode usar o console de Gerenciamento de Impressão do Windows ou chamar as funções de spooler do Windows para definir as configurações de isolamento de driver para cada driver de impressora instalado em um computador. O administrador configura o driver para usar uma das configurações listadas na tabela a seguir.

Modo de isolamento do driver Significado
Compartilhado Execute o driver em um processo que é compartilhado com outros drivers de impressora, mas é separado do processo de spooler.
Isolado Execute o driver em um processo separado do processo de spooler e não é compartilhado com outros drivers de impressora.
Nenhum Execute o driver no processo de spooler.

Idealmente, um driver de impressora é capaz de ser executado no modo compartilhado. Ou seja, ele é executado em um processo isolado compartilhado com outros drivers de impressora, mas separado do processo de spooler. Um driver pode precisar ser executado no modo isolado se puder ser executado em um processo separado do processo de spooler, mas tiver dificuldade em compartilhar o processo com outros drivers. Por exemplo, um driver mal projetado pode ter nomes de arquivo que entram em conflito com os de drivers relacionados ou de versões diferentes do mesmo driver, ou o driver pode falhar com frequência ou ter um vazamento de memória que interfere com a operação de outros drivers que são executados no mesmo processo.

Para oferecer suporte à solução de problemas, o administrador do domínio pode desabilitar o recurso de isolamento de driver em um computador no domínio ou pode forçar todos os drivers de impressora no computador a serem executados no modo isolado. No modo isolado, cada driver deve ser executado em um processo separado do spooler e dos outros drivers de impressora.

Se o isolamento de driver estiver desabilitado pela diretiva de grupo, o isolamento será desativado para todos os drivers de impressora. Se o isolamento estiver habilitado, os drivers individuais serão verificados no modo. Se um driver tiver o modo de isolamento definido, ele será executado no modo compartilhado, isolado ou nenhum, com base na entrada do Registro. No entanto, se o driver não tiver o modo de isolamento definido e for compatível com isolamento, ele será executado no modo compartilhado. Se o driver não for compatível com o modo, a substituição da diretiva de grupo determinará se o driver é executado no modo compartilhado ou no modo nenhum.

O gráfico a seguir mostra um mapa de decisão para escolher o modo de isolamento do driver:

fluxograma para escolha do modo de isolamento do driver.

Funções de spooler permitidas no isolamento do driver

Somente funções específicas são permitidas no isolamento do driver.

Spoolss.dll funções

As funções a seguir são exportadas pelo spoolss.dll e estão disponíveis para plug-ins de spooler vinculando-se a spoolss.lib.

Funções WinSpool.drv

As funções a seguir são exportadas por winspool.drv e estão disponíveis para plug-ins de spooler vinculando-se a Winspool.h.

Confira também

Funções e estruturas do componente do spooler