Manifesto del driver V4
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. 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 Piattaforma di stampa moderna e 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}