V4 Driver INF
Important
The modern print platform is Windows' preferred means of communicating with printers. We recommend that you use Microsoft's IPP inbox class driver, along with Print Support Apps (PSA), to customize the print experience in Windows 10 and 11 for printer device development.
For more information, see Modern print platform and the Print support app design guide.
The v4 print driver setup model continues to use INF files, but also employs a new manifest file to capture the printer specific setup directives.
Important
Starting with the WDK for Windows 11, version 22H2, WDF redistributable co-installers are no longer supported. To learn how to work around this change, see WDF redistributable co-installers don't work in the WDK known issues article.
Sample INF
Notice that the sample v4 print driver INF file presented in this topic does not contain any printer-specific directives. The printer-specific instructions are contained in the v4 manifest file, which is always named ending with "–manifest.ini". Each driver within a driver package may specify its own v4 manifest file.
The following sample INF file assumes that a fictional company, Fabrikam, has manufactured print devices that will be installed to run with the v4 print driver.
[Version]
Signature="$Windows NT$"
Provider="Fabrikam"
Class=Printer
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
CatalogFile=prnfa999.CAT
DriverVer=09/12/2010,6.2.8060.4
ClassVer=4.0 ;This causes v4 setup to take place
PnpLockdown=1
[Manufacturer]
"Fabrikam"=Fabrikam,NTamd64
[Fabrikam.NTamd64] ;Add your models here
"Fabrikam Laser 9000" = Laser9000,Fabrik9000_sdfjkals ;HWID example
"Fabrikam Laser 9100" = Laser9000,Fabrik9100_sjkasj ;HWID example
"Fabrikam Laser 9000 series" = Laser9000,{E0691E8C-F7CC-456E-A7B5-D1FC19BA2279} ;PrinterDriverID
[Laser9000]
CopyFiles=Laser9000_FILES
[Laser9000_FILES]
faPDL.gpd
faPDL-pipelineconfig.xml
faPDL-manifest.ini
faPDL.dll
[SourceDisksNames.amd64]
1 = %Location%,,,
2 = %Location%,,,amd64
[SourceDisksNames.x86]
1 = %Location%,,,
2 = %Location%,,,x86
[DestinationDirs]
DefaultDestDir=66000
[SourceDisksFiles]
faPDL.gpd=1
faPDL-pipelineconfig.xml=1
faPDL-manifest.ini = 1
faPDL.dll =2
[Strings]
Location="Fabrikam DVD"
INF Directives
The following table shows the list of printer-specific directives that are permitted in v4 print drivers and print class drivers.
Directive | Description | Restrictions | Usage |
---|---|---|---|
ClassVer | Used to indicate that a printer class driver is v4. | V4 print drivers must specify ClassVer=4.0. V3 print drivers may specify ClassVer=3.0, but it is optional. No other values are supported at this time. | ClassVer=4.0 |
The DestinationDirs Keyword
The v4 driver INF requires that DestinationDir is specified for all files in the package. The supported DestinationDir values are listed in the following table.
DestinationDir ID | Description |
---|---|
66000 | [This Destination ID has been overloaded for the v4 driver] V4: This must be set as the DefaultDestDir for a v4 print driver. Specifies that the files should be run from the Driver Store. V3: This specifies that files should be installed to the \3 directory. |
23 | V4: This must be set as the DestinationDir for any color profiles. V3: Color profiles should be installed using the printer-specific DirID 66003. |
INF Restrictions
V4 print drivers must not define other printer-specific directives or keywords called out in the following list.
INF file keyword | Usage type |
---|---|
AddInterface | Directive |
AddReg | Directive |
AddService | Directive |
BitReg | Directive |
ClassInstall32 | Section type |
ClassInstall32.Service | Section type |
ConfigFile | v3 print Directive |
CoreDriverDependencies | v3 Print Directive |
CoreDriverSections | v3 Print Directive |
DataFile | v3 Print Directive |
DDInstall.CoInstallers | Section type |
DDInstall.FactDef | Section type |
DDInstall.HW | Section type |
DDInstall.Interfaces | Section type |
DDInstall.LogConfigOverride | Section type |
DDInstall.Services | Section type |
DDInstall.WMI | Section type |
DefaultInstall | Section type |
DefaultInstall.Services | Section type |
DelFiles | Directive |
DelReg | Directive |
DelService | Directive |
DontReflectOffline | Directive |
DriverFile | v3 print Directive |
DriverIsolation | v3 print Directive |
FeatureScore | Directive |
HelpFile | v3 Print Directive |
Include | Directive |
Ini2Reg | Directive |
InterfaceInstall32 | Section type |
LayoutFile | Directive |
LogConfig | Directive |
Needs | Directive |
PackageAware | v3 Print Directive |
RenFiles | Directive |
UpdateIniFields | Directive |
UpdateInis | Directive |
NTPrint References
NTPrint references are made in the manifest file. The INF file does not require any information about the NTPrint references in its DDInstall, CopyFiles, or SourceDisksFiles sections.
Configuration Module References
All print drivers use the same configuration module binary (PrintConfig.dll); there is no mechanism for a driver to select the configuration module.
Related topics
For information about how to create an INF file for a basic v4 printer driver, see Building a basic v4 Printer Driver.