Enhanced Driver Configuration
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.
GPD and PPD files can be used to provide enhanced driver configuration information for a v4 print driver.
A print driver based on the v4 driver model can then retrieve these GPD and PPD files from the device using Bidi. This allows devices using a print class driver to support a richer feature set without requiring more downloads from Windows Update.
This functionality is supported by default for drivers that support WS-Print v1.1. However, TCP/IP devices and WS-Print v1.0 devices may also support this functionality by implementing the Bidi extension files that specify the following Bidi schema elements.
Schema path: schema section for reading the GPD/PPD files
Section Name: DriverConfigFiles
Schema Path: \Printer.Configuration.DriverConfigFiles
Description: This new section for the Bidi Schema will contain schema values to query the device for driver configuration data, including the GPD and PPD description files.
Extension for Reading the GPD File
Schema Name: GPDFile
Schema Path: \Printer.Configuration.DriverConfigFiles:GPDFile
Node Type: Value
Data Type: BIDI_STRING
Description: The full GPD file for the device. The GPD file contains all the specific device configuration information that is available and up to date according to the current settings of the device.
Extension for Reading the PPD File
Schema Name: PPDFile
Schema Path: \Printer.Configuration.DriverConfigFiles:PPDFile
Node Type: Value
Data Type: BIDI_STRING
Description: The full PPD file for the device. The PPD file contains all the specific device configuration information that is available and up to date according to the current settings of the device.
For USB devices, whether you're using a GPD or a PPD file, the Bidi extension XML file must specify the drvPrinterEvent attribute and set its value to "true". This ensures that the element is updated after Bidi cache refreshes.
The following XML fragment demonstrates the correct syntax for using the drvPrinterEvent attribute:
<?xml version='1.0'?>
...
<Property name='DeviceInfo'>
<Const name="Category" type="BIDI_STRING" value="DeviceCategory"/>
<Value name="QueueProperty" type="BIDI_STRING" accessType="Get" queryKey="Configuration" refreshInterval="60" drvPrinterEvent="true"/>
</Property>
...