V4-Treibermanifest
Wichtig
Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Modern Print-Plattform und der Anleitung zum Design der Print-Support-App.
Das Manifest des v4-Druckertreibers ist eine Textdatei, die alle druckerspezifischen Setup-Direktiven enthält. Ein v4-Druckertreiber-Manifest wird zusammen mit einer v4-Druckertreiber-INF-Datei als Teil der Einrichtung für einen druckerspezifischen v4-Druckertreiber verwendet.
Die Direktiven in einem Manifest sind in Abschnitte unterteilt:
DriverConfig-Abschnitt
Die folgende Tabelle zeigt die Direktiven, die im Abschnitt DriverConfig verwendet werden.
Anweisung | Beschränkungen | Verbrauch |
---|---|---|
RequiredFiles Enthält Dateien aus ntprint.inf oder ntprint4.inf. Die RequiredFiles-Direktive unterstützt in Windows 10 den folgenden Wert: PWGRRenderFilter.dll: Fügt den Microsoft PWG Raster Rendering Filter zur Liste der abhängigen Dateien des Treibers hinzu. Der PWG Raster-Renderfilter erfordert, dass der Treiber eine PrintDeviceCapabilities-Datei zur Konfiguration verwendet. |
Unidrv.dll, pscript5.dll und mxdwdrv.dll sollten in dieser Liste ausgelassen werden. Sie werden automatisch behoben. | Beispiele: RequiredFiles= UNIRES.DLL, STDNAMES.GPD, V3HOSTINGFILTER.DLL |
RequiredClass Bewirkt, dass dieser Treiber alle Dateien eines definierten Klassentreibers einbezieht, wobei der Treiber-/ Friendly-Name des Geräts und seine GUID als Schlüssel verwendet werden. Dies ist der Mechanismus zur Verknüpfung eines Druckklassentreibers mit einem modellspezifischen Treiber. |
Die RequiredClass-Direktive kann nicht von einem Klassentreiber verwendet werden. Wenn Sie RequiredClass verwenden, sollten Sie Dateinamenkollisionen zwischen dem Druckertreiber und dem Print Class-Treiber, mit dem Sie verknüpft sind, vermeiden. Obwohl sich Dateien mit ähnlichen Namen gegenseitig nicht überschreiben, kann es bei der Fehlersuche schwierig sein, zwischen der Klassentreiber-Paketdatei und der Datei des v4-Druckertreibers zu unterscheiden. |
Beispiel: RequiredClass= "Fabrikam PCL5e Class Driver",(9343720D-B67E-4451-B93F-6F721C439771) |
DriverFile Dies verweist auf das binäre Rendern. Mxdwdrv ist der Standard, aber Klassentreiber können alternativ unidrv.dll oder pscript5.dll angeben. Dies ist funktional identisch mit der gleichen Direktive in einer v3 INF. |
Kann nur in einem Klassentreiber eingerichtet werden. Gültige Auswahlmöglichkeiten sind unidrv.dll oder pscript5.dll. V4-Druckertreiber übernehmen entweder eine RequiredClass oder verwenden standardmäßig die mxdwdrv.dll | DriverFile=unidrv.dll |
DataFile Dies definiert die primäre GPD oder PPD für diesen Treiber. Dies ist funktional identisch mit der gleichen Direktive in einer v3 INF. In Windows 10 können v4-Druckertreiber weiterhin eine GPD- oder PPD-Datendatei angeben, sie können jedoch auch eine Datendatei im PrintDeviceCapabilities-Format beschreiben. |
Erforderlich. | Beispiele: DataFile=FAPDL.gpd DataFile=FAPDL.xml |
DataFileType Der DataFileType muss verwendet werden, wenn eine PrintDeviceCapabilities-Datei als DataFile beschrieben wird, und kann auch mit einer GPD- oder PPD-basierten DataFile verwendet werden. |
Erforderlich für die PrintDeviceCapabilities-Datei. | Beispiel: DataFileType= „application/vnd.ms-PrintDeviceCapabilities+xml“ |
Flags Dies wird verwendet, um optionale Attribute für den Treiber anzugeben. NotShareable: Dieses Flag gibt an, dass der Treiber nicht freigegeben werden kann. Dies ist für virtuelle Treiber wie den Microsoft XPS Document Writer geeignet. SoftResetOnJobCancellation: Dieses Flag gibt an, dass das Gerät beim Abbruch eines Druckauftrags einen USB-Softreset (IOCTL_USBPRINT_SOFT_RESET) benötigt. ArchiveEnabled: Der v4-Treiber verwendet dieses Flag, um archivoptimiertes XPS als Spooldatei anzufordern. |
Keine. | Beispiele: Flags= NotShareable, SoftResetOnJobCancellation Flags= ArchiveEnabled,NotShareable |
PrinterDriverID Das ist eine eindeutige ID, die den Druckertreiber beschreibt. Wenn zwei Treiber die gleiche PrinterDriverID angeben, müssen sie für die gemeinsame Nutzung kompatibel sein und die gleichen Drucker-Erweiterungen unterstützen. |
Erforderlich. | PrinterDriverID= {guid} |
PropertyBag Gibt eine Eigenschaftstasche des Treibers für diesen Treiber an. Dies ist eine kompilierte Datei, die von DriverPropertyBagTool.exe oder Visual Studio erzeugt wird. |
Keine. | PropertyBag= FAProperty.dpb |
ResourceFile Legt den Namen der String Resource DLL des Treibers fest. In Windows 10 können die Treiber eine Ressourcendatei im .resx-Format angeben. |
Keine. | Beispiele: ResourceFile= FARC.dll |
ConstraintScript Legt den Namen der JavaScript-Einschränkungsdatei des Treibers fest. |
Keine. | ConstraintScript= FAConst.js |
DriverCategory Legt die Kategorie des Geräts zwischen einer von mehreren Optionen fest. Gültige Optionen sind die folgenden: PrintFax.Fax PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual |
Erforderlich. | DriverCategory= PrintFax.Printer Für weitere Informationen über andere Treiberkategorien siehe Einträge in der INF-Datei des Druckers. |
PrinterExtensionUrl Gibt eine URL an, über die der Benutzer eine Kopie der Drucker-Erweiterungs-App erhalten kann. Wird bei der gemeinsamen Nutzung von Druckern verwendet. |
Keine. | PrinterExtensionUrl= "https://www.fabrikam.com/files/setup.exe"; |
DevModeMap Gibt die Devmode-Zuordnungsdatei an. Dies ist eine XML-Datei, die bei der Umwandlung von PrintTicket in DEVMODE im JavaScript-Code verwendet wird. |
Keine. | DevModeMap= fadmmap.xml |
EventFile Gibt die XML-Datei des Treiberereignisses an. |
Keine. | EventFile= faevents.xml |
QueueProperties Gibt das Format einer Eigenschaftstasche für die Warteschlange an. Dies ist eine XML-Datei und darf NICHT kompiliert werden. |
Keine. | QueueProperties= faQueueProps.xml |
BidiUSBStatusInterface Gibt eine Liste von Hardware-IDs an, die mit einer oder mehreren Geräteschnittstellen übereinstimmen, die für die USB Bidi-Kommunikation verwendet werden sollen. |
Keine, sollte aber nur unterstützt werden, wenn der Status über eine USB-Schnittstelle erfolgt, die nicht die Druckschnittstelle ist. | BidiUSBStatusInterface= "USB\vid_1234&pid_1234", "USB\vid_1234&pid_4567" |
UserPropertyBagScope Diese Direktive legt den Geltungsbereich der Eigenschaftstasche des Benutzers entweder als Warteschlange oder als Hersteller fest. Wenn diese Direktive weggelassen wird, ist Warteschlange der Standardwert. Die folgenden Optionen sind für diese Direktive gültig: Warteschlange: Dies ist die Standardkonfiguration, die dem Verhalten von Windows 8 entspricht. Hersteller: Alle Warteschlangen, die dieselbe Herstellerzeichenfolge in der INF verwenden, benutzen dieselbe Eigenschaftstasche des Benutzers. |
Keine. | UserPropertyBagScope= Hersteller |
RetrievePrintDeviceCapabilitiesFromDevice v4-Treiber können angeben, dass sie eine PrintDeviceCapabilities-Datei von WS-Print v2.0-Druckern abrufen müssen, sofern sie eine PrintDeviceCapabilities-Datei als DataFile des Treibers festlegen und der DataFileType auch angibt, dass die DataFile vom MIME-Typ „application/vnd.ms-PrintDeviceCapabilities+xml“ ist. Gültige Optionen: True: Erlaubt, dass die lokale DataFile des Treibers durch die PrintDeviceCapabilities-Datei des Geräts ersetzt wird. False: Die lokale DataFile des Treibers wird nicht durch die PrintDeviceCapabilities-Datei des Geräts ersetzt. Wenn nicht angegeben, ist der Standardwert dieser Direktive false. |
Keine. | Beispiel: RetrievePrintDeviceCapabilitiesFromDevice= true |
BidiFiles-Abschnitt
Der Abschnitt BidiFiles wird verwendet, um Bidi-Erweiterungsdateien zu definieren. Er ist identisch mit dem Windows 7-Format für TCP und WSD. Die USB-Schlüsselwörter sind neu.
Die folgende Tabelle zeigt die Direktiven, die im Abschnitt BidiFiles verwendet werden.
Anweisung | Beschränkungen | Verbrauch |
---|---|---|
BidiSPMFile Dies definiert die Bidi-Erweiterungsdatei für einen TCP/IP-basierten Drucker. |
Keine. | BidiSPMFile=FaBidiSPM.xml |
BidiWSDFile Dies definiert die Bidi-Erweiterungsdatei für einen WSD-basierten Drucker. |
Keine. | BidiWSDFile=FABidiWSD.xml |
BidiUSBFile Dies definiert die Bidi-Erweiterung für USB. |
Keine. | BidiUSBFile=FABidiUSB.xml |
BidiUSBJSFile Dies definiert die JavaScript-Erweiterung für USB. |
Keine. | BidiUSBJSFile=FABidiUSBJS.js |
DriverRender-Abschnitt
Die folgende Tabelle zeigt die Direktiven, die im Abschnitt DriverRender verwendet werden.
Anweisung | Beschränkungen | Verbrauch |
---|---|---|
PageOutputQuality.[OptionName] Ändert die Bildkomprimierung basierend auf dem Wert im Job PrintTicket für PageOutputQuality |
OptionName muss ein Name sein, der im Standard Namespace von PrintSchema angegeben ist. | PageOutputQuality.Draft= MxdcImageType.JPEGHigh PageOutputQuality.Normal= MxdcImageType.JPEGMedium PageOutputQuality.High= MxdcImageType.PNG |
XpsFormat Ändert das vom Drucksystem erzeugte XPS-Format für diesen Treiber. Es können mehrere Werte angegeben werden, wobei die Reihenfolge die Präferenz des Treibers darstellt. |
Nicht verfügbar für die Verwendung in Klassentreibern, die Unidrv/PScript-Rendern verwenden. | XpsFormat=XPS XpsFormat=OpenXPS XPSFormat=OpenXPS,XPS XPSFormat=XPS,OpenXPS |
OutputFormat Die OutputFormat-Direktive beschreibt eine einzelne PDL, die von diesem Treiber unter Verwendung eines MIME-Typs erzeugt wird. Diese Informationen werden während des Vorgangs CreateJob oder CreateJob2 für WSD-Drucker verwendet. |
Keine. | Gültige Verwendungsarten sind unter anderem: OutputFormat= "application/oxps" OutputFormat= "application/vnd.ms-xpsdocument" OutputFormat= "image/pwg-raster" OutputFormat= "application/vnd.ms-3mfdocument" Jeder andere gültige definierte MIME-Typ kann hier ebenfalls angegeben werden. |
Das Schlüsselwort MxdcImageType für die Direktive PageOutputQuality hat die folgenden zulässigen Werte:
MxdcImageType Wert |
---|
MxdcImageType.JPEGHigh Hochkomprimiertes JPEG (kleinere Dateien) |
MxdcImageType.JPEGMedium Mittlere Kompression JPEG |
MxdcImageType.JPEGLow Niedrige Kompression JPEG |
MxdcImageType.PNG PNG-Dateityp (größte Dateien) |
FileSave-Abschnitt
Dieser Abschnitt unterstützt das Szenario des Speicherns von Dateien. Wenn ein v4-Druckertreiber mit dem neuen Porttyp PORTPROMPT installiert wird, legt dieser Abschnitt die Dateierweiterungen fest, die im Fenster Common File angezeigt werden sollen, und gibt außerdem die lokalisierbaren Ressourcenstrings an, die die Erweiterungen und das Dialogfeld selbst unterstützen.
Anweisung | Beschränkungen | Verbrauch |
---|---|---|
<FileExtensionName> Diese Direktive beschreibt die FileExtension, die beim Speichern einer Datei von diesem Treiber über den PORTPROMPT-Port verwendet werden soll. Der Wert ist eine ResourceID aus der ResourceFile des Treibers. Nur für XPS und OXPS kann eine resourceID von 0 angegeben werden, für die der Druckspooler seine internen Ressourcen verwendet. |
Keine. | <FileExtensionName>= <resourceID> Xps=1234 |
SaveAsTitle Diese Direktive beschreibt den Titel, der im Dialogfeld Datei speichern verwendet werden soll. Der Wert ist eine ResourceID aus der ResourceFile des Treibers. |
Keine. | SaveAsTitle= <resourceID> SaveAsTitle=4321 |
PrinterExtensions-Abschnitt
Der Abschnitt PrinterExtensions gibt eine Drucker-Erweiterung und die von ihr unterstützten Aufrufmodi an. Bei diesen beiden Einträgen wird die App automatisch im Drucksystem registriert. Darüber hinaus wird die App mit zwei verschiedenen Parametern konfiguriert, der PrinterDriverID und der ReasonID, in dieser Reihenfolge. Folglich muss jeder Eintrag eine andere PrinterExtensionID GUID verwenden.
Die folgende Tabelle zeigt die Direktiven, die im Abschnitt PrinterExtensions verwendet werden.
Anweisung | Beschränkungen | Verbrauch |
---|---|---|
DriverEvent App, die den DriverEvent-Modus bedient. |
Keine. | DriverEvent= app.exe,{extensionID GUID} |
PrintPreferences App, die den Modus PrintPreferences bedient. |
Keine. | PrintPreferences= app.exe, {extensionID GUID} |
Im Folgenden finden Sie ein Beispiel für ein v4-Druckertreibermanifest.
[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}