Escrevendo drivers essenciais
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.
Os desenvolvedores de drivers de impressão podem utilizar a funcionalidade básica do driver que o Windows Vista fornece. Para criar um driver principal, gere um GUID que outros pacotes de driver podem usar para se referir ao conjunto de arquivos que compõem o driver principal. Por exemplo, em Ntprint.inf, a definição de arquivo de driver principal Unidrv é mostrada no exemplo a seguir:
[Microsoft.NTx86]
"{D20EA372-DD35-4950-9ED8-A6335AFE79F0}" =
{D20EA372-DD35-4950-9ED8-A6335AFE79F0},
{D20EA372-DD35-4950-9ED8-A6335AFE79F0}
[{D20EA372-DD35-4950-9ED8-A6335AFE79F0}]
CopyFiles=UNIDRV,PJLMON.DLL,@TTFSUB.GPD,@LOCALE.GPD,@MSXPSINC.GPD
[UNIDRV]
; Unidrv files and pjlmon sections follow...
Com essa definição, um arquivo INF de driver de impressão pode se referir a arquivos de driver principais usando a palavra-chave CoreDriverSections, conforme mostrado no exemplo anterior.
É importante notar que um driver principal deve manter a compatibilidade com versões anteriores. Como mais de um driver pode usar o driver principal, ele deve continuar a trabalhar com drivers existentes que dependem dele quando é atualizado. O driver principal deverá ser enviado como parte do pacote de drivers.
O driver essencial é definido com uma seção Modelo, que inclui uma descrição do dispositivo, sendo este o GUID do driver essencial. Por exemplo:
; Model section
[Company.NTx86]
"{GUID1}" = {GUID1}, {GUID1}
; Install section - must list all files in the core printer driver
[{GUID1}]
DriverVer = MM/DD/YYYY,1.1.1.1
CopyFiles=MANUFACTURER_CORE_FILESET
; Core Driver Section, can use print-specific INF keywords here
[MANUFACTURER_CORE]
CopyFiles=MANUFACTURER_CORE_FILESET
[MANUFACTURER_CORE_FILESET]
File1.dll
File2.dll
File3.dll
[ControlFlags]
AlwaysExcludeFromSelect = {GUID1}
O driver principal deve incluir informações de versão na seção de instalação, usando a palavra-chave DriverVer. A seção de instalação também deve listar todos os arquivos que o driver principal requer. Use a nova palavra-chave AlwaysExcludeFromSelect para garantir que o driver principal não seja exibido para o utilizador na interface.