Partilhar via


Isolamento do driver da impressora

Importante

A plataforma de impressão moderna é o meio preferido do Windows para se comunicar com as impressoras. 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 Plataformade impressão moderna e o Guia de design do aplicativo de suporte de 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 dar suporte ao isolamento do driver de impressora e ser capaz de ser executado em um processo isolado.

Nas 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 de 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 de 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 de driver interrompa o serviço de impressão.

Para obter mais informações sobre as funções de spooler, consulte Funções e estruturas de componentes de 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 dá suporte ao isolamento do driver, o instalador da classe de impressora configurará o driver para ser executado no processo de spooler. No entanto, se o arquivo INF indicar que o driver dá suporte ao isolamento do 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 dar suporte ao isolamento do driver, o arquivo INF que instala um driver de impressora pode usar a palavra-chave DriverIsolation para indicar se o driver dá suporte ao isolamento do driver de impressora. Definir DriverIsolation=2 indica que o driver dá suporte ao isolamento do driver. Definir DriverIsolation=0 indica que o driver não dá suporte ao isolamento do 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 Liste as configurações de isolamento de driver para uma impressora.
FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification Solicite notificações de alterações nas configurações de isolamento do driver de uma impressora.

O formato para os dados é o seguinte:

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

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

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

Configurando o modo de isolamento do 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 compartilhado com outros drivers de impressora, mas separado do processo de spooler.
Isolado Execute o driver em um processo separado do processo do spooler e não compartilhado com outros drivers de impressora.
Nenhum Execute o driver no processo de spooler.

Idealmente, um driver de impressora pode 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 na operação de outros drivers executados no mesmo processo.

Para dar 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 do driver estiver desabilitado pela política 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 o isolamento, ele será executado no modo compartilhado. Se o driver não for compatível com o modo, a substituição da política de grupo determinará se o driver será 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 escolher o 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.

Funções Spoolss.dll

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 pelo 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 de spooler