Condividi tramite


Manifesto del driver V4

Importante

Ti consigliamo di usare il driver di classe IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi per stampanti.

Per altre informazioni, vedere la Guida alla progettazione dell'app di supporto per la stampa.

Il manifesto del driver di stampa v4 è un file di testo che contiene tutte le direttive di installazione specifiche della stampante. Un manifesto del driver di stampa v4 viene usato con un file INF del driver di stampa v4, come parte della configurazione per un driver di stampa v4 specifico della stampante.

Le direttive in un manifesto sono organizzate in sezioni:

Sezione DriverConfig

La tabella seguente illustra le direttive usate nella sezione DriverConfig.

Direttiva Restrizioni Utilizzo
RequiredFiles

Include file da ntprint.inf o ntprint4.inf.

La direttiva RequiredFiles supporta il valore seguente in Windows 10:

PWGRRenderFilter.dll: aggiunge il filtro di rendering Raster di Microsoft PWG all'elenco dei file dipendenti del driver.

Il filtro di rendering raster pwg richiede che il driver usi un file PrintDeviceCapabilities per la configurazione.
Unidrv.dll, pscript5.dll e mxdwdrv.dll devono essere omessi da questo elenco. Verranno risolti automaticamente. Esempi:

RequiredFiles=
UNIRES.DLL,
STDNAMES. GPD
V3HOSTINGFILTER.DLL
RequiredClass

Fa sì che questo driver includa tutti i file di un driver di classe definito usando il nome driver/descrittivo del dispositivo e il relativo GUID come chiave. Questo è il meccanismo per collegare un driver printclass a un driver specifico del modello.
La direttiva RequiredClass non può essere usata da un driver di classe. Quando si usa RequiredClass, è consigliabile evitare conflitti tra il driver della stampante e il driver della classe di stampa a cui si sta collegando.

Sebbene i file con nomi simili non vengano sovrascritti tra loro, può essere difficile durante la risoluzione dei problemi, distinguere tra il file del pacchetto driver di classe e il file dal driver della stampante v4.
Esempio:

RequiredClass=
"Driver di classe Fabrikam PCL5e",(9343720D-B67E-4451-B93F-6F721C439771)
DriverFile

Punta al file binario di rendering. Mxdwdrv è il valore predefinito, ma i driver di classe possono in alternativa specificare unidrv.dll o pscript5.dll. Questa operazione è funzionalmente identica alla stessa direttiva in un INF v3.
Può essere impostato solo in un driver di classe. Le opzioni valide sono unidrv.dll o pscript5.dll. I driver di stampa V4 ereditano da RequiredClass o mxdwdrv.dll DriverFile=unidrv.dll
Datafile

In questo modo viene definito l'oggetto Criteri di gruppo primario o PPD per questo driver. Questa operazione è funzionalmente identica alla stessa direttiva in un INF v3.

In Windows 10, i driver di stampa v4 possono continuare a specificare un OGGETTO Criteri di gruppo o un file di dati PPD, ma possono anche descrivere un DataFile nel formato PrintDeviceCapabilities.
Obbligatorio. Esempi:

DataFile=FAPDL.gpd
DataFile=FAPDL.xml
DataFileType

DataFileType deve essere usato quando si descrive un file PrintDeviceCapabilities come DataFile e può essere usato anche con un oggetto DataFile basato su GPD o PPD.
Obbligatorio per il file PrintDeviceCapabilities. Esempio:

DataFileType=
"application/vnd.ms-PrintDeviceCapabilities+xml"
Flag

Viene usato per specificare gli attributi facoltativi associati al driver.

NotShareable: questo flag specifica che il driver non è condivisibile. Questa opzione è appropriata per i driver virtuali, ad esempio Microsoft XPS Document Writer.

SoftResetOnJobCancellation: questo flag specifica che il dispositivo richiede una reimpostazione temporanea USB (IOCTL_USBPRINT_SOFT_RESET) all'annullamento del processo di stampa. ArchiveEnabled Il driver v4 usa questo flag per richiedere XPS ottimizzati per l'archivio come file di spooling.
Nessuno. Esempi:

Flag=
NotShareable,
SoftResetOnJobCancellation
Flag=
ArchiveEnabled,NotShareable
PrinterDriverID

Si tratta di un ID univoco che descrive il driver di stampa. Se due driver specificano lo stesso PrinterDriverID, devono essere compatibili per la condivisione e il supporto delle stesse estensioni della stampante.
Obbligatorio. PrinterDriverID=
{guid}
PropertyBag

Specifica un contenitore delle proprietà del driver per questo driver. Si tratta di un file compilato generato da DriverPropertyBagTool.exe o Visual Studio.
Nessuno. PropertyBag=
FAProperty.dpb
ResourceFile

Definisce il nome della DLL della risorsa stringa del driver.

In Windows 10 i driver possono specificare un oggetto ResourceFile usando il formato resx.
Nessuno. Esempi:

ResourceFile=
FARC.dll
ConstraintScript

Definisce il nome del file di vincolo JavaScript del driver.
Nessuno. ConstraintScript=
FAConst.js
DriverCategory

Definisce la categoria del dispositivo tra una delle diverse opzioni. Le opzioni valide sono le seguenti:
PrintFax.Fax PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual
Obbligatorio. DriverCategory=
PrintFax.Printer

Per altre informazioni sulle altre categorie di driver, vedere Voci di file INF della stampante.
PrinterExtensionUrl

Specifica un URL per l'utente per ottenere una copia dell'app di estensione della stampante. Utilizzato nella condivisione della stampante.
Nessuno. PrinterExtensionUrl=
"https://www.fabrikam.com/files/setup.exe";
DevModeMap

Specifica il file di mapping Devmode. Si tratta di un file XML usato con la conversione PrintTicket in DEVMODE nel codice JavaScript.
Nessuno. DevModeMap=
fadmmap.xml
EventFile

Specifica il file XML dell'evento driver.
Nessuno. EventFile=
faevents.xml
QueueProperties

Specifica il formato di un contenitore delle proprietà della coda. Si tratta di un file XML e non deve essere compilato.
Nessuno. QueueProperties=
faQueueProps.xml
BidiUSBStatusInterface

Specifica un elenco di ID hardware che corrispondono a una o più interfacce di dispositivo da usare per le comunicazioni USB Bidi.
Nessuno, ma deve essere supportato solo se lo stato viene eseguito su un'interfaccia USB che non è l'interfaccia di stampa. BidiUSBStatusInterface=
"USB\vid_1234&pid_1234",
"USB\vid_1234&pid_4567"
UserPropertyBagScope

Questa direttiva specifica l'ambito del contenitore delle proprietà utente come Queue o Manufacturer.
Se questa direttiva viene omessa, Queue è il valore predefinito. Le opzioni valide per questa direttiva sono le seguenti:

Coda: si tratta della configurazione predefinita e corrisponde al comportamento di Windows 8. Produttore: tutte le code che usano la stessa stringa Manufacturer in INF usano lo stesso contenitore delle proprietà utente.
Nessuno. UserPropertyBagScope=
Produttore
RetrievePrintDeviceCapabilitiesFromDevice

I driver v4 possono specificare che devono recuperare un file PrintDeviceCapabilities dalle stampanti WS-Print v2.0, purché impostino un file PrintDeviceCapabilities come DataFile del driver e DataFileType indica anche che DataFile è di tipo MIME "application/vnd.ms-PrintDeviceCapabilities+xml".

Opzioni valide:

True: consente di sostituire il file DataFile locale del driver con il file PrintDeviceCapabilities dal dispositivo.

False: il file DataFile locale del driver non verrà sostituito con il file PrintDeviceCapabilities dal dispositivo.

Se non specificato, il valore predefinito di questa direttiva è false.
Nessuno. Esempio:

RetrievePrintDeviceCapabilitiesFromDevice=
true

Sezione BidiFiles

La sezione BidiFiles viene usata per definire i file di estensione Bidi. È identico al formato Windows 7 per TCP e WSD. Le parole chiave USB sono nuove.

La tabella seguente illustra le direttive usate nella sezione BidiFiles.

Direttiva Restrizioni Utilizzo
BidiSPMFile
Definisce il file di estensione Bidi per una stampante basata su TCP/IP.
Nessuno. BidiSPMFile=FaBidiSPM.xml
BidiWSDFile
Definisce il file di estensione Bidi per una stampante basata su WSD.
Nessuno. BidiWSDFile=FABidiWSD.xml
BidiUSBFile
Definisce l'estensione Bidi per USB.
Nessuno. BidiUSBFile=FABidiUSB.xml
BidiUSBJSFile
Definisce l'estensione JavaScript per USB.
Nessuno. BidiUSBJSFile=FABidiUSBJS.js

Sezione DriverRender

La tabella seguente illustra le direttive usate nella sezione DriverRender.

Direttiva Restrizioni Utilizzo
PageOutputQuality. [OptionName]
Modifica la compressione dell'immagine in base al valore nel processo PrintTicket per PageOutputQuality
OptionName deve essere un nome specificato nello spazio dei nomi PrintSchema standard. PageOutputQuality.Draft=
MxdcImageType.JPEGHigh

PageOutputQuality.Normal=
MxdcImageType.JPEGMedium

PageOutputQuality.High=
MxdcImageType.PNG
XpsFormat
Modifica il formato XPS generato dal sistema di stampa per questo driver. È possibile specificare più valori e l'ordine rappresenta la preferenza del driver.
Non disponibile per l'uso nei driver di classe che usano il rendering Unidrv/PScript. XpsFormat=XPS

XpsFormat=OpenXPS

XPSFormat=OpenXPS,XPS

XPSFormat=XPS,OpenXPS
OutputFormat
La direttiva OutputFormat descrive un singolo PDL generato da questo driver usando un tipo MIME.
Queste informazioni vengono usate durante l'operazione CreateJob o CreateJob2 per le stampanti WSD.
Nessuno. I tipi di utilizzo validi includono:

OutputFormat=
"application/oxps"

OutputFormat=
"application/vnd.ms-xpsdocument"

OutputFormat=
"image/pwg-raster"

OutputFormat=
"application/vnd.ms-3mfdocument"

È anche possibile specificare qui qualsiasi altro tipo MIME definito valido.

La parola chiave MxdcImageType per la direttiva PageOutputQuality ha i valori consentiti seguenti:

Valore MxdcImageType
MxdcImageType.JPEGHigh
JPEG ad alta compressione (file più piccoli)
MxdcImageType.JPEGMedium
Compressione media JPEG
MxdcImageType.JPEGLow
Jpeg a compressione bassa
MxdcImageType.PNG
Tipo di file PNG (file più grandi)

Sezione FileSalva

Questa sezione supporta lo scenario di salvataggio file. Quando un driver di stampa v4 viene installato sul nuovo tipo di porta PORTPROMPT, questa sezione specifica le estensioni di file da visualizzare nella finestra File comune e specifica anche le stringhe di risorse localizzabili che supportano le estensioni e la finestra di dialogo stessa.

Direttiva Restrizioni Utilizzo
<FileExtensionName>
Questa direttiva descrive l'oggetto FileExtension da utilizzare per il salvataggio di un file da questo driver tramite la porta PORTPROMPT. Il valore è un id risorsa del file ResourceFile del driver. Solo per XPS e OXPS, è possibile specificare un id risorsa pari a 0 e lo spooler di stampa userà le relative risorse interne.
Nessuno. <FileExtensionName>=
<resourceID>
Xps=1234
SaveAsTitle
Questa direttiva descrive il titolo da utilizzare nella finestra di dialogo Salva file. Il valore è un id risorsa del file ResourceFile del driver.
Nessuno. SaveAsTitle=
<resourceID>
SaveAsTitle=4321

Sezione PrinterExtensions

La sezione PrinterExtensions specifica un'estensione della stampante e le modalità di chiamata supportate. Per entrambe queste voci, l'app verrà registrata automaticamente con il sistema di stampa. Inoltre, l'app viene configurata con due parametri diversi, PrinterDriverID e ReasonID, in tale ordine. Di conseguenza, ogni voce deve usare un GUID PrinterExtensionID diverso.

La tabella seguente illustra le direttive utilizzate nella sezione PrinterExtensions.

Direttiva Restrizioni Utilizzo
DriverEvent
Manutenzione delle app in modalità DriverEvent.
Nessuno. DriverEvent=
app.exe,{extensionID GUID}
PrintPreferences
Manutenzione delle app in modalità PrintPreferences.
Nessuno. PrintPreferences=
app.exe, {extensionID GUID}

Di seguito è riportato un esempio di manifesto del driver di stampa 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}

Voci del file INF della stampante