Partilhar via


Isolamento do driver 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 o guia de design do aplicativo de suporte Print.

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 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 do driver de impressão pode causar falha no subsistema de impressão, 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 evitar que uma falha em um componente de driver interrompa o serviço de impressão.

Para obter mais informações sobre as funções do spooler, consulte Spooler Component Functions and Structures.

Suporte de 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 suporta isolamento de driver, o instalador de classe de impressora configura o driver para ser executado no processo de spooler. No entanto, se o arquivo INF indica que o driver suporta isolamento de driver, o instalador configura o driver para ser executado em um processo isolado. Um administrador pode substituir estas definições de configuração e especificar, para cada driver, se deve executar o driver no processo de spooler ou num 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 suporta isolamento de driver de impressora. Definir DriverIsolation=2 indica que o driver suporta o isolamento de controladores. Definir DriverIsolation=0 indica que o controlador não suporta isolamento de controlador. 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 apresenta as funções do spooler que um administrador pode utilizar para configurar as definições de isolamento do driver.

Nome da função Funcionamento
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 Enumere as configurações de isolamento do 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:

  • Drivers em cada grupo são separados por '\'

  • Cada grupo de controladores é 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 com capacidade de isolamento são carregados por padrão.

Configuração do modo de isolamento de driver pela 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 configurar as configurações de isolamento do driver para cada driver de impressora instalado no computador. O administrador configura o driver para usar uma das configurações listadas na tabela a seguir.

Modo de isolamento do driver Significado
Partilhado 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 executar no modo compartilhado. Ou seja, é executado num processo isolado, partilhado com outros controladores 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 freqüê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 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 o administrador 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 estará desativado para todos os drivers de impressora. Se o isolamento estiver ativado, os drivers individuais serão verificados quanto ao 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 diretiva de grupo determinará se o driver é executado no modo partilhado ou no modo desativado.

O gráfico a seguir apresenta um mapa de decisão para a escolha do modo de isolamento do condutor:

fluxograma para escolher o modo de isolamento do driver.

Funções de spooler permitidas em isolamento de driver

Apenas funções específicas são permitidas no isolamento do controlador.

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 ligando-se a spoolss.lib.

Funções WinSpool.drv

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

Ver também

Funções e estruturas dos componentes do Spooler