Conceitos de configuração do driver V4
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 a plataforma de impressão moderna e o guia de design do aplicativo de suporte de impressão .
O modelo de driver de impressão v4 usa um novo modelo de configuração para melhorar a experiência do usuário e reduzir os custos de suporte.
O driver de impressão v4 é executado diretamente da Loja de Driver, o que elimina a possibilidade de colisões de arquivos e melhora o desempenho da instalação. O modelo de instalação v4 continua a usar arquivos INF, mas também emprega um novo arquivo de manifesto para capturar as diretivas de configuração específicas da impressora.
Identificadores de dispositivo
IDS compatíveis
CompatibleIDs são um conceito-chave para drivers de classe de impressão porque eles permitem que os drivers suportem dispositivos que são lançados após o lançamento da nova versão do Windows, sem a necessidade de atualizar o driver. Isso é possível porque CompatibleIDs permitem que os dispositivos anunciem suporte para um driver de impressão menos específico do que um HardwareID.
Se um determinado CompatibleID já for suportado por um driver de classe de impressão, os drivers de impressão v4 não deverão especificá-lo novamente. Se a data de um driver de impressão for mais recente do que a data do driver de classe de impressão, o driver de impressão será baixado automaticamente do site Windows Update.
Os dispositivos devem incluir CompatibleIDs em sua cadeia de caracteres 1284ID. Se um driver de classe de impressão existente suportar o dispositivo, o driver de impressão deverá usar esse CompatibleID; caso contrário, recomendamos a utilização do seguinte formato.
1284_CID_<manufacturer identifier>_<PDL identifier>_device family identifier
Por exemplo:
1284_CID_FA_PCL5e_Laser
Se CompatibleIDs já estiverem implementados em dispositivos existentes, o driver de impressão deverá continuar a usar esses CompatibleIDs.
CompatibleIDs não são usados na instalação de dispositivos de impressão baseados em TCP/IP. Como resultado, os usuários precisarão identificar um driver apropriado usando apenas o nome do driver. No que diz respeito aos controladores de classe de impressão, recomendamos que os fabricantes forneçam listas de compatibilidade nos seus Web sites para quaisquer dispositivos suportados por um controlador de classe de impressão. Para obter mais informações sobre como implementar IDs compatíveis em seu hardware, incluindo uma lista completa de regras e restrições, consulte Como implementar IDs compatíveis em dispositivos de impressão.
A Microsoft suporta algumas CompatibleIDs padrão para suportar vários drivers de classe de impressão padrão neutros em relação ao fabricante. A tabela a seguir mostra esses CompatibleIDs padrão e seus tipos de arquivo PDL associados.
Tipo de arquivo PDL | Identificador Compatível Padrão |
---|---|
XPS | 1284_CID_MS_XPS |
OpenXPS (ECMA-388) | 1284_CID_MS_OXPS |
PCL6 | 1284_CID_MS_PCL6 |
P.S. | 1284_CID_MS_PS |
Esses drivers de classe de impressão padrão suportam apenas um pequeno conjunto de recursos, portanto, os fabricantes que optarem por utilizar esses drivers de classe devem implementar uma configuração de driver aprimorada, usando Bidi para adicionar tamanhos e configurações de papel mais específicos. A tabela a seguir mostra os recursos e as opções associadas suportados pelos drivers de classe de impressão padrão.
Funcionalidade | Opções |
---|---|
Tamanho do papel | Carta, A4 |
Resolução | 300dpi, 600dpi |
Tipo de mídia | Papel simples |
N-Up | 1, 2, 4, 6, 9, 16 |
ID do driver da impressora
O PrinterDriverID é um novo identificador que é usado para determinar a compatibilidade entre drivers para compartilhamento de impressora, bem como a compatibilidade entre drivers e extensões de impressora. Por exemplo, se o driver no servidor especificar um PrinterDriverID no seu ficheiro de manifesto e o driver for partilhado, os clientes que se conectarem a essa impressora irão procurar no Armazém de Drivers local e no Windows Update um driver que especifique o mesmo PrinterDriverID no seu INF de driver. Se uma correspondência for encontrada, uma conexão será feita usando esse driver. As máquinas cliente não filtram os resultados correspondentes usando o nome do driver.
PrinterDriverID deve ser especificado para todos os drivers compatíveis das seguintes maneiras:
Usando a diretiva PrinterDriverID no manifesto v4.
Como um identificador de hardware no INF do driver v4.
Para que dois drivers diferentes compartilhem o mesmo PrinterDriverID, eles devem ser compatíveis para compartilhamento. Para que a conexão seja sempre bem-sucedida, os dois drivers devem ser capazes de fazer o seguinte:
Apoie o mesmo PDL
Use o mesmo tipo de arquivos de configuração (GPD ou PPD)
Ser capaz de renderizar quaisquer recursos ou opções especificados nos arquivos GPD, PPD e/ou JS de restrição do driver do servidor
Suporta as mesmas extensões de impressora
O spooler não valida essas limitações e depende apenas do PrinterDriverID para indicar se dois drivers são compatíveis para compartilhamento. Os fabricantes devem ter certeza de alterar o PrinterDriverID de um driver se forem feitas alterações em qualquer um dos itens acima.
As extensões de impressora também podem ser associadas a drivers através de PrinterDriverIDs. Como resultado, dois drivers que compartilham um PrinterDriverID devem trabalhar com as mesmas extensões de impressora. A última extensão de impressora instalada substituirá quaisquer extensões de impressora anteriores para todos os dispositivos que usam os PrinterDriverIDs de destino, portanto, eles devem funcionar corretamente usando o mesmo aplicativo.
Práticas recomendadas para o uso de GUIDs
GUIDs são usados amplamente através do modelo de driver de impressão v4, mais notavelmente no PrinterDriverID, e também no PrinterExtensionID, o EventID e o ModelID. Estes são usados para identificar exclusivamente diferentes itens no sistema, ou para identificá-los como os mesmos para fins de manutenção, compartilhamento, etc.
Ao criar novos GUIDs, sempre use um gerador de GUID, como o incluído no Microsoft Visual Studio ou o incluído no SDK. GUIDs criados manualmente e GUIDs que foram copiados e colados erroneamente são propensos a colisões.
Comportamentos de configuração
Nome da fila de impressão
Para drivers v3, o nome da fila de impressão é determinado primeiro pelo nome do driver e, em seguida, pelo usuário. Com a introdução de drivers de classe de impressão, o nome do driver é muito menos útil para que o utilizador reconheça o dispositivo. O Windows renomeará a fila automaticamente para todos os dispositivos Plug and Play instalados para executar um driver de impressão v4 da seguinte maneira:
Inicialmente, o nome da fila de impressão é definido como o nome do controlador.
Se o driver for um driver de impressão v4, o Windows consultará o dispositivo usando Bidi.
Se \Printer.DeviceInfo:FriendlyName estiver especificado, será usado como o novo nome da fila.
Caso contrário, o Windows consultará \Printer.DeviceInfo:Manufacturer, \Printer.DeviceInfo:ModelName.
Se ambos forem especificados, o Windows irá concatená-los em "Manufacturer ModelName".
Se apenas uma dessas consultas Bidi falhar, o Windows usará o retorno bem-sucedido da outra consulta como o nome da fila.
Se todas as consultas Bidi falharem, o Windows usará o IEEE 1284ID para determinar os nomes do fabricante e do modelo.
Se DESCRIPTION ou DES estiver especificado, isso será usado como o novo nome da fila.
Caso contrário, o Windows procurará por FABRICANTE ou MFG e MODELO ou MDL.
Se ambos forem especificados, o Windows irá concatená-los em "MODELO DO FABRICANTE".
Se apenas uma delas falhar, o Windows usará o valor da outra chave como o nome da fila.
O Assistente para Adicionar Impressora
O nome do driver continuará a ser o único identificador disponível para os utilizadores que escolherem um driver no Assistente para Adicionar Impressora. Os dispositivos baseados em TCP/IP devem implementar o MIB do Monitor de Porta (PWG 5107.1-2005) para suportar a detecção automática de TCP/IP. Os dispositivos existentes que são adicionados a um driver de classe de impressão usando um mapeamento de ID de hardware (HWID) podem usar adicionalmente um nome de modelo específico do dispositivo.
Mudança de portas e gestão dos nós de dispositivo de impressora
Para fornecer uma experiência de interface de utilizador consistente, todas as filas de impressão recebem um nó de dispositivo de software (devnode). É assim que as impressoras são descobertas na interface do usuário e permite que impressoras virtuais, conexões com impressoras compartilhadas e impressoras de rede sejam enumeradas e acessadas da mesma forma que as impressoras Plug and Play (PnP). Os devnodes de software para impressoras PnP físicas herdarão propriedades do devnode PnP que disparou a criação da fila.
A interface de utilizador agrupará devnodes em Contêineres de Dispositivo quando houver uma relação entre dois objetos diferentes. Esse agrupamento é o que permite que uma impressora multifuncional (MFP) apareça como um ícone na pasta
Alterar a porta associada a uma fila alterará a ID do contêiner associada ao devnode da fila. Isso fará com que a fila não seja mais agrupada no mesmo contêiner de dispositivo que o restante dos objetos PnP para o dispositivo físico. Não há informações suficientes no sistema operacional para limpar corretamente as situações em que a fila e o objeto PnP ficam separados. Em alguns casos, essa é a intenção real do usuário. Somente o usuário ou aplicativo que altera o nome da porta sabe qual é o resultado pretendido, e cabe ao usuário/aplicativo limpar qualquer estado confuso deixado para trás depois que a porta de uma fila é alterada. Aqui estão dois exemplos de situações, com instruções mostrando como limpar adequadamente.
Administrador de TI configurando impressoras – Um administrador de TI usa o WS Discovery para localizar uma impressora na rede e altera a porta para TCP/IP porque gosta do processo de gerenciamento de TCP/IP.
Expectativa – Existe apenas um "dispositivo" na pasta de dispositivos e impressoras.
Solução – O administrador de TI remove o devnode WSD PnP da Pasta Dispositivos e Impressoras.
Software de configuração IHV – O IHV instala um driver junto com um monitor de porta personalizado (monitores de porta personalizados não são permitidos na v4, mas a mesma manipulação de devnode se aplica aos drivers v3). O IHV altera a porta USB da fila de impressão para uma porta criada pelo fabricante do dispositivo.
Expectativa – Há apenas um "equipamento" na pasta "Dispositivos e Impressoras".
Solução 1 – O devnode PnP ainda é necessário: O programa de instalação altera o ID do contêiner do devnode da fila para corresponder ao objeto PnP.
Solução 2 – O devnode PnP é estranho: O programa de instalação remove o dispositivo PnP original.
Classificação dos condutores
A introdução de drivers de impressão v4 não modifica o comportamento de classificação Plug and Play. Quando um dispositivo está conectado, o driver disponível com a pontuação mais alta será selecionado. Se o driver selecionado for um driver de classe de impressão e houver um driver correspondente melhor classificado no site do Windows Update, o driver selecionado será substituído automaticamente na próxima vez que o usuário baixar atualizações para o Windows.
Para obter mais informações sobre a classificação de drivers, consulte Como o Windows classifica os drivers.
Práticas recomendadas de configuração de controlador
Embalagem
Os drivers de impressão V4 não empregam as diretivas de arquivo INF necessidades e inclui, nem tecnologias principais de driver para lidar com arquivos compartilhados. Como resultado, os drivers de impressão v4 devem ser independentes, com apenas algumas exceções.
Os drivers de impressão V4 podem continuar a depender de arquivos comuns fornecidos pelo Windows. Estes incluem os arquivos em NTPrint.INF ou NTPrint4.INF. Os drivers podem incluir esses arquivos especificando a diretiva RequiredFiles no arquivo de manifesto v4.
Se houver drivers de classe de impressão existentes que forneçam funcionalidade de renderização básica para seus dispositivos ou sua PDL, também existe um mecanismo para assumir uma dependência do driver de classe usando a diretiva RequiredClass
Linhas de modelos de impressoras
O Plug and Play mantém uma classificação implícita de todos os IDs de Hardware e IDs Compatíveis numa linha de modelos. Como resultado, a Microsoft recomenda que os parceiros usem as seguintes práticas recomendadas para evitar comportamentos imprevisíveis em relação à classificação.
Driver de impressão V4
Os INFs do driver de impressão V4 devem definir dois tipos de linhas de modelo diferentes:
Linhas HardwareID: "Nome do driver" = INSTALL_SECTION, busenumerator\HardwareID
Linhas de PrinterDriverID: "Nome do driver" = INSTALL_SECTION,{GUID}
Os INFs do driver de impressão V4 devem definir IDs de hardware específicos do barramento em linhas individuais.
"Nome do driver" = INSTALL_SECTION,WSDPRINT\HardwareID
"Nome do driver" = INSTALL_SECTION,USBPRINT\HardwareID
"Nome do driver" = INSTALL_SECTION,LPTENUM\HardwareID
Driver de classe de impressão
Os INFs do driver de classe de impressão devem indicar três tipos diferentes de linhas de modelo:
Linhas HardwareID: "Nome do driver" = INSTALL_SECTION,HardwareID
Linhas PrinterDriverID: "Nome do driver" = INSTALL_SECTION,{GUID}
Linhas CompatibleID: "Imprimir nome do driver de classe" = INSTALL_SECTION,,1284_CID_CompatID
Os INFs do driver de classe de impressão não devem definir nenhum enumerador de barramento (por exemplo, WSDPRINT)
Tópicos relacionados
Como implementar IDs compatíveis em dispositivos de impressão