Manifesto do driver V4
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 manifesto do driver de impressão v4 é um arquivo de texto que contém todas as diretivas de instalação específicas da impressora. Um manifesto de driver de impressão v4 é usado com um arquivo INF de driver de impressão v4, como parte da configuração de um driver de impressão v4 específico da impressora.
As diretivas em um manifesto são organizadas em seções:
Seção DriverConfig
A tabela a seguir mostra as diretivas usadas na seção DriverConfig.
Diretiva | Restrições | Uso |
---|---|---|
RequiredFiles Inclui arquivos de ntprint.inf ou ntprint4.inf. A diretiva RequiredFiles dá suporte ao seguinte valor no Windows 10: PWGRRenderFilter.dll: Adiciona o filtro de renderização do Microsoft PWG Raster à lista de arquivos dependentes do driver. O filtro de renderização do filtro de renderização de raster PWG requer que o driver use um arquivo PrintDeviceCapabilities para configuração. |
Unidrv.dll, pscript5.dll e mxdwdrv.dll devem ser omitidos desta lista. Eles serão resolvidos automaticamente. | Exemplos: RequiredFiles= UNIRES.DLL, STDNAMES.GPD, V3HOSTINGFILTER.DLL |
RequiredClass Faz com que esse driver inclua todos os arquivos de um driver de classe definido usando o driver/nome amigável do dispositivo e seu GUID como chave. Esse é o mecanismo para vincular um driver printclass a um driver específico do modelo. |
A diretiva RequiredClass não pode ser usada por um driver de classe. Ao usar RequiredClass, você deve evitar colisões de nome de arquivo entre o driver da impressora e o driver da Classe de Impressão ao qual você está vinculando. Embora arquivos com nomes semelhantes não substituam uns aos outros, pode ser difícil durante a solução de problemas distinguir entre o arquivo de pacote de driver de classe e o arquivo do driver de impressora v4. |
Exemplo: RequiredClass= "Driver de classe Fabrikam PCL5e", (9343720D-B67E-4451-B93F-6F721C439771) |
DriverFile Isso aponta para o binário de renderização. Mxdwdrv é o padrão, mas os drivers de classe podem, alternativamente, especificar unidrv.dll ou pscript5.dll. Isso é funcionalmente idêntico à mesma diretiva em um INF v3. |
Só pode ser definido em um driver de classe. As opções válidas são unidrv.dll ou pscript5.dll. Os drivers de impressão V4 herdam de uma RequiredClass ou usam como padrão mxdwdrv.dll | DriverFile=unidrv.dll |
DataFile Isso define o GPD ou PPD primário para esse driver. Isso é funcionalmente idêntico à mesma diretiva em um INF v3. No Windows 10, os drivers de impressão v4 podem continuar a especificar um GPD ou PPD DataFile, no entanto, eles também podem descrever um DataFile que está no formato PrintDeviceCapabilities. |
Obrigatória. | Exemplos: DataFile=FAPDL.gpd DataFile=FAPDL.xml |
DataFileType O DataFileType deve ser usado ao descrever um arquivo PrintDeviceCapabilities como o DataFile e também pode ser usado com um DataFile baseado em GPD ou PPD. |
Necessário para o arquivo PrintDeviceCapabilities. | Exemplo: DataFileType= "application/vnd.ms-PrintDeviceCapabilities+xml" |
Sinalizadores Isso é usado para especificar atributos opcionais associados ao driver. NotShareable: esse sinalizador especifica que o driver não é compartilhável. Isso é apropriado para drivers virtuais, como o Microsoft XPS Document Writer. SoftResetOnJobCancellation: esse sinalizador especifica que o dispositivo requer uma redefinição de software USB (IOCTL_USBPRINT_SOFT_RESET) no cancelamento do trabalho de impressão. ArchiveEnabled O driver v4 usa esse sinalizador para solicitar XPS otimizado para arquivo morto como um arquivo de spool. |
Nenhum. | Exemplos: Flags= NotShareable, SoftResetOnJobCancellation Flags= ArchiveEnabled,NotShareable |
PrinterDriverID Essa é uma ID exclusiva que descreve o driver de impressão. Se dois drivers especificarem o mesmo PrinterDriverID, eles deverão ser compatíveis para compartilhamento e dar suporte às mesmas extensões de impressora. |
Obrigatória. | PrinterDriverID= {guid} |
PropertyBag Especifica um recipiente de propriedades do driver para esse driver. Este é um arquivo compilado gerado pelo DriverPropertyBagTool.exe ou Visual Studio. |
Nenhum. | PropertyBag= FAProperty.dpb |
ResourceFile Define o nome da DLL do recurso de cadeia de caracteres do driver. No Windows 10, os drivers podem especificar um ResourceFile usando o formato .resx. |
Nenhum. | Exemplos: ResourceFile= FARC.dll |
ConstraintScript Define o nome do arquivo de restrição JavaScript do driver. |
Nenhum. | ConstraintScript= FAConst.js |
DriverCategory Define a categoria do dispositivo entre uma das várias opções. As opções válidas são: PrintFax.Fax PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual |
Obrigatória. | DriverCategory= PrintFax.Printer Para obter mais informações sobre outras categorias de driver, consulte Entradas de arquivo INF da impressora. |
PrinterExtensionUrl Especifica uma URL para o usuário obter uma cópia do aplicativo de extensão de impressora. Usado no compartilhamento de impressoras. |
Nenhum. | PrinterExtensionUrl= "https://www.fabrikam.com/files/setup.exe"; |
DevModeMap Especifica o arquivo de mapeamento Devmode. Esse é um arquivo XML que é usado com a conversão PrintTicket para DEVMODE no código JavaScript. |
Nenhum. | DevModeMap= fadmmap.xml |
EventFile Especifica o arquivo XML do Evento do Driver. |
Nenhum. | EventFile= faevents.xml |
QueueProperties Especifica o formato de um recipiente de propriedades da fila. Este é um arquivo XML e NÃO deve ser compilado. |
Nenhum. | QueueProperties= faQueueProps.xml |
BidiUSBStatusInterface Especifica uma lista de IDs de hardware que correspondem a uma ou mais interfaces de dispositivo a serem usadas para comunicações USB Bidi. |
Nenhum, mas só deve ter suporte se o status for feito em uma interface USB que não seja a interface de impressão. | BidiUSBStatusInterface= "USB\vid_1234&pid_1234", "USB\vid_1234&pid_4567" |
UserPropertyBagScope Essa diretiva especifica o escopo do recipiente de propriedades do usuário como Queue ou Manufacturer. Se essa diretiva for omitida, Queue será o valor padrão. As opções válidas para esta diretiva são as seguintes: Fila: essa é a configuração padrão e corresponde ao comportamento do Windows 8. Fabricante: todas as filas que usam a mesma cadeia de caracteres Manufacturer no INF usam o mesmo recipiente de propriedades do usuário. |
Nenhum. | UserPropertyBagScope= Fabricante |
RecuperarPrintDeviceCapabilitiesFromDevice Os drivers v4 podem especificar que eles devem recuperar um arquivo PrintDeviceCapabilities de impressoras WS-Print v2.0, desde que definam um arquivo PrintDeviceCapabilities como o DataFile do driver e o DataFileType também indique que o DataFile é do tipo MIME "application/vnd.ms-PrintDeviceCapabilities+xml". Opções válidas: True: permite que o DataFile local do driver seja substituído pelo arquivo PrintDeviceCapabilities do dispositivo. False: o DataFile local do driver não será substituído pelo arquivo PrintDeviceCapabilities do dispositivo. Se não for especificado, o valor padrão dessa diretiva será false. |
Nenhum. | Exemplo: RetrievePrintDeviceCapabilitiesFromDevice= true |
Seção BidiFiles
A seção BidiFiles é usada para definir arquivos de extensão Bidi. É idêntico ao formato do Windows 7 para TCP e WSD. As palavras-chave USB são novas.
A tabela a seguir mostra as diretivas usadas na seção BidiFiles.
Diretiva | Restrições | Uso |
---|---|---|
BidiSPMFile Isso define o arquivo de extensão Bidi para uma impressora baseada em TCP/IP. |
Nenhum. | BidiSPMFile=FaBidiSPM.xml |
BidiWSDFile Isso define o arquivo de extensão Bidi para uma impressora baseada em WSD. |
Nenhum. | BidiWSDFile=FABidiWSD.xml |
BidiUSBFile Isso define a extensão Bidi para USB. |
Nenhum. | BidiUSBFile=FABidiUSB.xml |
BidiUSBJSFile Isso define a extensão JavaScript para USB. |
Nenhum. | BidiUSBJSFile=FABidiUSBJS.js |
Seção DriverRender
A tabela a seguir mostra as diretivas usadas na seção DriverRender.
Diretiva | Restrições | Uso |
---|---|---|
PageOutputQuality.[OptionName] Altera a compactação da imagem com base no valor no trabalho PrintTicket para PageOutputQuality |
OptionName deve ser um nome especificado no namespace PrintSchema padrão. | PageOutputQuality.Draft= MxdcImageType.JPEGHigh PageOutputQuality.Normal= MxdcImageType.JPEGMedium PageOutputQuality.High= MxdcImageType.PNG |
XpsFormat Altera o formato XPS gerado pelo sistema de impressão para este driver. Vários valores podem ser especificados e a ordem representa a preferência do driver. |
Não disponível para uso em drivers de classe que usam renderização Unidrv/PScript. | XpsFormat=XPS XpsFormat=OpenXPS XPSFormat=OpenXPS,XPS XPSFormat=XPS,OpenXPS |
OutputFormat A diretiva OutputFormat descreve um único PDL gerado por esse driver usando um tipo MIME. Essas informações são usadas durante a operação CreateJob ou CreateJob2 para impressoras WSD. |
Nenhum. | Os tipos de uso válidos incluem: OutputFormat= "application/oxps" OutputFormat= "application/vnd.ms-xpsdocument" OutputFormat= "image/pwg-raster" OutputFormat= "application/vnd.ms-3mfdocument" Qualquer outro tipo MIME definido válido também pode ser especificado aqui. |
A palavra-chave MxdcImageType para a diretiva PageOutputQuality tem os seguintes valores permitidos:
Valor MxdcImageType |
---|
MxdcImageType.JPEGHigh JPEG de alta compressão (arquivos menores) |
MxdcImageType.JPEGMedium JPEG de compactação média |
MxdcImageType.JPEGLow JPEG de compactação de linha |
MxdcImageType.PNG Tipo de arquivo PNG (arquivos maiores) |
Seção FileSave
Esta seção dá suporte ao cenário de salvamento de arquivo. Quando um driver de impressão v4 é instalado no novo tipo de porta PORTPROMPT, esta seção especifica as extensões de arquivo a serem mostradas na janela Arquivo Comum e também especifica as cadeias de caracteres de recursos localizáveis que dão suporte às extensões e à própria caixa de diálogo.
Diretiva | Restrições | Uso |
---|---|---|
<FileExtensionName> Esta diretiva descreve o FileExtension a ser usado ao salvar um arquivo desse driver usando a porta PORTPROMPT. O valor é um resourceID do ResourceFile do driver. Somente para XPS e OXPS, um resourceID de 0 pode ser especificado e o spooler de impressão usará seus recursos internos para eles. |
Nenhum. | <FileExtensionName>= <resourceID> Xps=1234 |
SaveAsTitle Esta diretiva descreve o título a ser usado na caixa de diálogo Salvar arquivo. O valor é um resourceID do ResourceFile do driver. |
Nenhum. | SaveAsTitle= <resourceID> SaveAsTitle=4321 |
Seção PrinterExtensions
A seção PrinterExtensions especifica uma extensão de impressora e os modos de invocação aos quais ela dá suporte. Para ambas as entradas, o aplicativo será registrado automaticamente no sistema de impressão. Além disso, o aplicativo é configurado com dois parâmetros diferentes, o PrinterDriverID e o ReasonID, nessa ordem. Como resultado, cada entrada deve usar um GUID PrinterExtensionID diferente.
A tabela a seguir mostra as diretivas usadas na seção PrinterExtensions.
Diretiva | Restrições | Uso |
---|---|---|
DriverEvent Aplicativo que atende ao modo DriverEvent. |
Nenhum. | DriverEvent= app.exe,{extensionID GUID} |
PrintPreferences Aplicativo que atende ao modo PrintPreferences. |
Nenhum. | PrintPreferences= app.exe,{extensionID GUID} |
Veja a seguir um exemplo de um manifesto do driver de impressão v4.
[DriverConfig]
DataFile=FAPDL.xml
RequiredFiles=UNIRES.DLL,STDNAMES.GPD,STDDTYPE.GDL,STDSCHEM.GDL,STDSCHMX.GDL,XPSSVCS.DLL,MSXPSINC.GPD,PWGRRenderFilter.DLL
ResourceFile=FARC.dll
PropertyBag=FAProperty.dpb
PrinterDriverID={GUID}
DriverCategory=PrintFax.Printer
ConstraintScript=faconst.js
EventFile=faevents.xml
PrinterExtensionUrl="https://www.fabrikam.com/download.asp?uiapp=120"
UserPropertyBagScope=Manufacturer
DataFileType="application/vnd.ms-PrintDeviceCapabilities+xml"
RetrievePrintDeviceCapabilitiesFromDevice=true
[BidiFiles]
BidiSPMFile=FABidiSPM.xml
BidiWSDFile=FABidiWSD.xml
BidiUSBFile=FaBidiUSB.xml
BidiUSBJSFile=FABidiUSBJS.js
[DriverRender]
PageOutputQuality.Draft=MxdcImageType.JPEGHigh
PageOutputQuality.Normal=MxdcImageType.JPEGMedium
PageOutputQuality.High=MxdcImageType.PNG
OutputFormat="image/pwg-raster"
[PrinterExtensions]
DriverEvent=FAapp.exe,{GUID}
PrintPreferences=FAapp.exe,{GUID2}