Udostępnij przez


Manifest sterownika w wersji 4

Important

Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.

Aby uzyskać więcej informacji, zobacz Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).

Manifest sterownika wydruku w wersji 4 jest plikiem tekstowym zawierającym wszystkie dyrektywy konfiguracji specyficzne dla drukarki. Manifest sterownika wydruku w wersji 4 jest używany z plikiem INF sterownika wydruku w wersji 4 w ramach konfiguracji sterownika wydruku specyficznego dla drukarki w wersji 4.

Dyrektywy w manifeście są zorganizowane w sekcje:

Sekcja DriverConfig

W poniższej tabeli przedstawiono dyrektywy, które są używane w sekcji DriverConfig.

Directive Restrictions Usage
RequiredFiles

Zawiera pliki z ntprint.inf lub ntprint4.inf.

Dyrektywa RequiredFiles obsługuje następującą wartość w systemie Windows 10:

PWGRRenderFilter.dll: dodaje filtr renderowania Raster programu Microsoft PWG do listy plików zależnych sterownika.

Filtr renderowania filtru renderowania Raster programu PWG wymaga, aby sterownik używał pliku PrintDeviceCapabilities do konfiguracji.
Unidrv.dll, pscript5.dlli mxdwdrv.dll należy pominąć z tej listy. Zostaną one rozwiązane automatycznie. Examples:

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

Powoduje, że ten sterownik dołącza wszystkie pliki ze zdefiniowanego sterownika klasy przy użyciu sterownika/przyjaznej nazwy urządzenia i jego identyfikatora GUID jako klucza. Jest to mechanizm łączenia sterownika printclass z konkretnym sterownikiem modelu.
Dyrektywy RequiredClass nie można używać przez sterownik klasy. W przypadku korzystania z klasy RequiredClass należy unikać kolizji nazw plików między sterownikiem drukarki a sterownikiem klasy wydruku, z którym łączysz.

Mimo że pliki o podobnych nazwach nie zastępują się nawzajem, może to być trudne podczas rozwiązywania problemów, aby odróżnić plik pakietu sterowników klasy od sterownika drukarki w wersji 4.
Example:

RequiredClass=
"Sterownik klasy Fabrikam PCL5e",(9343720D-B67E-4451-B93F-6F721C439771)
DriverFile

Wskazuje to na renderowanie danych binarnych. Mxdwdrv jest wartością domyślną, ale sterowniki klas mogą również określać unidrv.dll lub pscript5.dll. Jest to funkcjonalnie identyczne z tą samą dyrektywą w inf w wersji 3.
Można ustawić tylko w sterowniku klasy. Prawidłowe opcje to unidrv.dll lub pscript5.dll. Sterowniki wydruku w wersji 4 dziedziczą z klasy RequiredClass lub domyślnie mxdwdrv.dll DriverFile =unidrv.dll
Datafile

Definiuje podstawowy identyfikator GPD lub PPD dla tego sterownika. Jest to funkcjonalnie identyczne z tą samą dyrektywą w inf w wersji 3.

W systemie Windows 10 sterowniki wydruku w wersji 4 mogą nadal określać gpD lub PPD DataFile, jednak mogą również opisywać plik DataFile, który znajduje się w formacie PrintDeviceCapabilities.
Required. Examples:

DataFile=FAPDL.gpd
DataFile =FAPDL.xml
DataFileType

Parametr DataFileType należy użyć podczas opisywania pliku PrintDeviceCapabilities jako pliku DataFile, a także może być używany z plikiem DataFile opartym na gpD lub PPD.
Wymagany dla pliku PrintDeviceCapabilities. Example:

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

Służy do określania opcjonalnych atrybutów skojarzonych ze sterownikiem.

NotShareable: ta flaga określa, że sterownik nie jest współużytkowalny. Jest to odpowiednie dla sterowników wirtualnych, takich jak składnik zapisywania dokumentów microsoft XPS.

SoftResetOnJobCancellation: ta flaga określa, że urządzenie wymaga miękkiego resetowania USB (IOCTL_USBPRINT_SOFT_RESET) podczas anulowania zadania drukowania. ArchiveEnabled Sterownik w wersji 4 używa tej flagi do żądania zarchiwizowanego pliku XPS jako pliku buforu.
None. Examples:

Flagi=
NotShareable,
SoftResetOnJobCancellation
Flagi=
ArchiveEnabled,NotShareable
PrinterDriverID

Jest to unikatowy identyfikator opisujący sterownik wydruku. Jeśli dwa sterowniki określają ten sam identyfikator PrinterDriverID, muszą być zgodne z udostępnianiem i obsługiwać te same rozszerzenia drukarki.
Required. PrinterDriverID=
{guid}
WłaściwośćBag

Określa torbę właściwości sterownika dla tego sterownika. Jest to skompilowany plik wygenerowany przez program DriverPropertyBagTool.exe lub Visual Studio.
None. PropertyBag =
FAProperty.dpb
Plik zasobu

Definiuje nazwę biblioteki DLL zasobu ciągu sterownika.

W systemie Windows 10 sterowniki mogą określać plik ResourceFile przy użyciu formatu resx.
None. Examples:

ResourceFile =
FARC.dll
ConstraintScript

Definiuje nazwę pliku ograniczenia JavaScript sterownika.
None. ConstraintScript=
FAConst.js
DriverCategory

Definiuje kategorię urządzenia między jedną z kilku opcji. Prawidłowe opcje są następujące:
PrintFax.Faks PrintFax.Printer PrintFax.Printer.3D PrintFax.Printer.File PrintFax.Printer.Service PrintFax.Printer.Virtual
Required. DriverCategory=
PrintFax.Printer

Aby uzyskać więcej informacji na temat innych kategorii sterowników, zobacz Wpisy pliku INF drukarki.
PrinterExtensionUrl

Określa adres URL użytkownika, aby uzyskać kopię aplikacji rozszerzenia drukarki. Używane w udostępnianiu drukarek.
None. PrinterExtensionUrl=
"https://www.fabrikam.com/files/setup.exe";
DevModeMap

Określa plik mapowania metodyki Devmode. Jest to plik XML używany z funkcją PrintTicket do konwersji DEVMODE w kodzie JavaScript.
None. DevModeMap=
fadmmap.xml
EventFile

Określa plik XML zdarzenia sterownika.
None. EventFile =
faevents.xml
QueueProperties

Określa format torby właściwości kolejki. Jest to plik XML i nie można go skompilować.
None. QueueProperties=
faQueueProps.xml
BidiUSBStatusInterface

Określa listę identyfikatorów sprzętu, które pasują do co najmniej jednego interfejsu urządzenia, które mają być używane na potrzeby komunikacji USB Bidi.
Brak, ale powinien być obsługiwany tylko wtedy, gdy stan odbywa się za pośrednictwem interfejsu USB, który nie jest interfejsem wydruku. BidiUSBStatusInterface=
"USB\vid_1234&pid_1234",
"USB\vid_1234&pid_4567"
UserPropertyBagScope

Ta dyrektywa określa zakres torby właściwości użytkownika jako Kolejka lub Producent.
Jeśli ta dyrektywa zostanie pominięta, kolejka jest wartością domyślną. Prawidłowe opcje tej dyrektywy są następujące:

Kolejka: jest to konfiguracja domyślna i jest zgodna z zachowaniem systemu Windows 8. Producent: wszystkie kolejki używające tego samego ciągu Manufacturer w inf używają tej samej torby właściwości użytkownika.
None. UserPropertyBagScope=
Manufacturer
RetrievePrintDeviceCapabilitiesFromDevice

Sterowniki v4 mogą określać, że muszą pobrać plik PrintDeviceCapabilities z drukarek WS-Print w wersji 2.0, o ile ustawiają plik PrintDeviceCapabilities jako plik DataFile sterownika i DataFileType również wskazuje, że plik DataFile jest typu MIME "application/vnd.ms-PrintDeviceCapabilities+xml".

Prawidłowe opcje:

Prawda: umożliwia zastąpienie lokalnego pliku DataFile sterownika plikiem PrintDeviceCapabilities z urządzenia.

Fałsz: lokalny plik DataFile sterownika nie zostanie zastąpiony plikiem PrintDeviceCapabilities z urządzenia.

Jeśli nie zostanie określona, domyślna wartość tej dyrektywy to false.
None. Example:

RetrievePrintDeviceCapabilitiesFromDevice=
true

Sekcja BidiFiles

Sekcja BidiFiles służy do definiowania plików rozszerzeń Bidi. Jest identyczny z formatem systemu Windows 7 dla protokołów TCP i WSD. Słowa kluczowe USB są nowe.

W poniższej tabeli przedstawiono dyrektywy, które są używane w sekcji BidiFiles.

Directive Restrictions Usage
BidiSPMFile
Definiuje plik rozszerzenia Bidi dla drukarki opartej na protokole TCP/IP.
None. BidiSPMFile=FaBidiSPM.xml
BidiWSDFile
Definiuje plik rozszerzenia Bidi dla drukarki opartej na usłudze WSD.
None. BidiWSDFile=FABidiWSD.xml
BidiUSBFile
Definiuje rozszerzenie Bidi dla portu USB.
None. BidiUSBFile=FABidiUSB.xml
BidiUSBJSFile
Definiuje to rozszerzenie Języka JavaScript dla portu USB.
None. BidiUSBJSFile=FABidiUSBJS.js

Sekcja DriverRender

W poniższej tabeli przedstawiono dyrektywy, które są używane w sekcji DriverRender.

Directive Restrictions Usage
PageOutputQuality. [OptionName]
Zmienia kompresję obrazu na podstawie wartości w zadaniu PrintTicket dla pageOutputQuality
OptionName musi być nazwą określoną w standardowej przestrzeni nazw PrintSchema. PageOutputQuality.Draft=
MxdcImageType.JPEGHigh

PageOutputQuality.Normal=
MxdcImageType.JPEGMedium

PageOutputQuality.High=
MxdcImageType.PNG
XpsFormat
Zmienia format XPS wygenerowany przez system wydruku dla tego sterownika. Można określić wiele wartości, a kolejność reprezentuje preferencję sterownika.
Nie jest dostępny do użycia w sterownikach klas korzystających z renderowania Unidrv/PScript. XpsFormat=XPS

XpsFormat=OpenXPS

XPSFormat=OpenXPS,XPS

XPSFormat=XPS,OpenXPS
OutputFormat
Dyrektywa OutputFormat opisuje pojedynczy kod PDL generowany przez ten sterownik przy użyciu typu MIME.
Te informacje są używane podczas operacji CreateJob lub CreateJob2 dla drukarek WSD.
None. Prawidłowe typy użycia to:

OutputFormat=
"application/oxps"

OutputFormat=
"application/vnd.ms-xpsdocument"

OutputFormat=
"image/pwg-raster"

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

W tym miejscu można również określić inny prawidłowy zdefiniowany typ MIME.

Słowo kluczowe MxdcImageType dla dyrektywy PageOutputQuality ma następujące dozwolone wartości:

Wartość MxdcImageType
MxdcImageType.JPEGHigh
Wysoka kompresja JPEG (mniejsze pliki)
MxdcImageType.JPEGMedium
Średnia kompresja JPEG
MxdcImageType.JPEGLow
Niska kompresja JPEG
MxdcImageType.PNG
Typ pliku PNG (największe pliki)

Sekcja FileSave

Ta sekcja obsługuje scenariusz zapisywania plików. Gdy sterownik wydruku w wersji 4 jest zainstalowany względem nowego typu portu PORTPROMPT, w tej sekcji określono rozszerzenia plików, które mają być wyświetlane w oknie Wspólny plik , a także określa zlokalizowane ciągi zasobów, które obsługują rozszerzenia i okno dialogowe.

Directive Restrictions Usage
<FileExtensionName>
W tej dyrektywie opisano rozszerzenie FileExtension do użycia podczas zapisywania pliku z tego sterownika przy użyciu portu PORTPROMPT. Wartość jest identyfikatorem resourceID z pliku ResourceFile sterownika. Tylko w przypadku plików XPS i OXPS można określić identyfikator zasobu o wartości 0, a bufor wydruku będzie używać jego zasobów wewnętrznych.
None. <FileExtensionName>=
<resourceID>
Xps=1234
SaveAsTitle
Ta dyrektywa opisuje tytuł, który ma być używany w oknie dialogowym Zapisywanie pliku. Wartość jest identyfikatorem resourceID z pliku ResourceFile sterownika.
None. SaveAsTitle=
<resourceID>
SaveAsTitle=4321

Sekcja PrinterExtensions

Sekcja PrinterExtensions określa rozszerzenie drukarki i obsługiwane tryby wywołania. W przypadku obu tych wpisów aplikacja zostanie automatycznie zarejestrowana w systemie wydruku. Ponadto aplikacja jest skonfigurowana przy użyciu dwóch różnych parametrów: PrinterDriverID i ReasonID w tej kolejności. W związku z tym każdy wpis musi używać innego identyfikatora GUID PrinterExtensionID.

W poniższej tabeli przedstawiono dyrektywy, które są używane w sekcji PrinterExtensions.

Directive Restrictions Usage
DriverEvent
Obsługa aplikacji w trybie DriverEvent.
None. DriverEvent=
app.exe,{extensionID GUID}
PrintPreferences
Obsługa aplikacji w trybie PrintPreferences.
None. PrintPreferences=
app.exe, {extensionID GUID}

Poniżej przedstawiono przykład manifestu sterownika wydruku w wersji 4.

[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}

Wpisy pliku INF drukarki