2.2.1.5.6 RPC_DRIVER_INFO_8

The RPC_DRIVER_INFO_8 structure specifies extended printer driver information.<26>

 typedef struct _RPC_DRIVER_INFO_8 {
   DWORD cVersion;
   [string] wchar_t* pName;
   [string] wchar_t* pEnvironment;
   [string] wchar_t* pDriverPath;
   [string] wchar_t* pDataFile;
   [string] wchar_t* pConfigFile;
   [string] wchar_t* pHelpFile;
   [string] wchar_t* pMonitorName;
   [string] wchar_t* pDefaultDataType;
   DWORD cchDependentFiles;
   [size_is(cchDependentFiles), unique] 
     wchar_t* pDependentFiles;
   DWORD cchPreviousNames;
   [size_is(cchPreviousNames), unique] 
     wchar_t* pszzPreviousNames;
   FILETIME ftDriverDate;
   DWORDLONG dwlDriverVersion;
   [string] wchar_t* pMfgName;
   [string] wchar_t* pOEMUrl;
   [string] wchar_t* pHardwareID;
   [string] wchar_t* pProvider;
   [string] wchar_t* pPrintProcessor;
   [string] wchar_t* pVendorSetup;
   DWORD cchColorProfiles;
   [size_is(cchColorProfiles), unique] 
     wchar_t* pszzColorProfiles;
   [string] wchar_t* pInfPath;
   DWORD dwPrinterDriverAttributes;
   DWORD cchCoreDependencies;
   [size_is(cchCoreDependencies), unique] 
     wchar_t* pszzCoreDriverDependencies;
   FILETIME ftMinInboxDriverVerDate;
   DWORDLONG dwlMinInboxDriverVerVersion;
 } RPC_DRIVER_INFO_8;

pPrintProcessor: A pointer to a string that specifies the print processor for this printer. For rules governing print processor names, see section 2.2.4.11.

pVendorSetup: An optional pointer to a string that specifies the name of the vendor setup file used for hardware vendor-provided custom setup.

cchColorProfiles: The number of characters in the multisz structure pointed to by the pszzColorProfiles member.

pszzColorProfiles: An optional pointer to a multisz structure that contains the names of all color profile files for this driver.

pInfPath: An optional pointer to a string that specifies the path to the installation configuration file in the driver store that identifies the printer driver for installation.<27>

When used as an input parameter in a call to RpcAddPrinterDriverEx (section 3.1.4.4.8), this pointer MUST be NULL. When used as output in the custom-marshaled form of this structure (_DRIVER_INFO_8 section 2.2.2.4.8), the server SHOULD set this value for package-aware drivers.

dwPrinterDriverAttributes: A bit field that specifies attributes of the printer driver.

When used as an input parameter in a call to RpcAddPrinterDriverEx, this value MUST be zero. When used as output in the custom-marshaled form of this structure (_DRIVER_INFO_8), this bit field is defined as one or more of the bit flags described in the following table.

Name/value

Description

PRINTER_DRIVER_PACKAGE_AWARE

0x00000001

The printer driver is part of a driver package.<28>

PRINTER_DRIVER_XPS

0x00000002

The printer driver supports the Microsoft XML Paper Specification (XPS) format described in [MSFT-XMLPAPER].<29>

PRINTER_DRIVER_SANDBOX_ENABLED

0x00000004

The printer driver is compatible with printer driver isolation.<30>

PRINTER_DRIVER_CLASS

0x00000008

The printer driver is a class printer driver.<31>

PRINTER_DRIVER_DERIVED

0x00000010

The printer driver is a derived printer driver.<32>

PRINTER_DRIVER_NOT_SHAREABLE

0x00000020

Printers using the printer driver cannot be shared.<33>

PRINTER_DRIVER_CATEGORY_FAX

0x00000040

The printer driver is intended for use with fax printers.<34>

PRINTER_DRIVER_CATEGORY_FILE

00x00000080

The printer driver is intended for use with file printers.<35>

PRINTER_DRIVER_CATEGORY_VIRTUAL

0x00000100

The printer driver is intended for use with virtual printers.<36>

PRINTER_DRIVER_CATEGORY_SERVICE

0x00000200

The printer driver is intended for use with service printers.<37>

PRINTER_DRIVER_SOFT_RESET_REQUIRED

0x00000400

Printers using this printer driver SHOULD use an implementation-specific mechanism to reset the printer when a print job is canceled.<38>

PRINTER_DRIVER_CATEGORY_3D

0x00001000

The printer driver is intended for use with 3D printers.<39>

cchCoreDependencies: The number of characters in the multisz structure pointed to by the pszzCoreDriverDependencies member.

pszzCoreDriverDependencies: An optional pointer to a multisz structure that contains the names of the core dependencies as specified by the installation configuration file. These names specify the core sections of the installation configuration file that are required by the printer driver.<40>

ftMinInboxDriverVerDate: A FILETIME value ([MS-DTYP] section 2.3.3) that specifies the minimum date version that is required in order for any core printer driver to be used as a dependency as listed in the multisz structure pointed to by the pszzCoreDriverDependencies member. The value of this member MUST be specified in the same format as the ftDriverDate member.<41>

dwlMinInboxDriverVerVersion: The minimum file version that is required for any core printer driver to be used as a dependency as listed in the multisz structure pointed to by the pszzCoreDriverDependencies member. The value of this member MUST be specified in the same format as the dwlDriverVersion member.<42>

All members not defined in this section are specified in sections 2.2.1.3.1 and 2.2.1.3.