共用方式為


2.2.2.4.8 _DRIVER_INFO_8

The _DRIVER_INFO_8 structure specifies printer driver information.<110> It is a custom-marshaled form of the RPC_DRIVER_INFO_8 (section 2.2.1.5.6).


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Fixed_Portion (variable)

...

Variable_Data (variable)

...

Fixed_Portion (variable): An array of one or more groups of fixed-size fields, which are defined as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

cVersion

NameOffset

EnvironmentOffset

DriverPathOffset

DataFileOffset

ConfigFileOffset

HelpFileOffset

DependentFilesOffset

MonitorNameOffset

DefaultDataTypeOffset

szzPreviousNamesOffset

ftDriverDate.dwLowDateTime

ftDriverDate.dwHighDateTime

PaddingForAlignment

dwlDriverVersion

...

MfgNameOffset

OEMUrlOffset

HardwareIDOffset

ProviderOffset

PrintProcessorOffset

VendorSetupOffset

szzColorProfilesOffset

InfPathOffset

dwPrinterDriverAttributes

szzCoreDependenciesOffset

ftMinInboxDriverVerDate

...

dwlMinInboxDriverVerVersion

...

cVersion (4 bytes): A DWORD that has an implementation-specific value that identifies the driver version and the operating system version for which the printer driver was written, as specified in section 2.2.1.3.1.

NameOffset (4 bytes): A 32-bit unsigned integer that specifies the number of bytes from the start of the structure to the NameArray member.

EnvironmentOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the EnvironmentArray member.

DriverPathOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the DriverPathArray member.

DataFileOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the DataFileArray member.

ConfigFileOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the ConfigFileArray member.

HelpFileOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the HelpFileArray member.

DependentFilesOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the DependentFilesArray member.

MonitorNameOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the MonitorNameArray member.

DefaultDataTypeOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the DefaultDataTypeArray member.

szzPreviousNamesOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the szzPreviousNamesArray member.

ftDriverDate.dwLowDateTime (4 bytes): A FILETIME value ([MS-DTYP] section 2.3.3) that specifies the date this package was published, see field DWORD dwLowDateTime.

ftDriverDate.dwHighDateTime (4 bytes): A FILETIME value ([MS-DTYP] section 2.3.3) that specifies the date this package was published, see field DWORD dwHighDateTime.

PaddingForAlignment (4 bytes): 4 bytes of padding to align the dwlDriverVersion field on an 8-byte boundary. The contents of this field MUST be ignored.

dwlDriverVersion (8 bytes): A 64-bit value that specifies the version of the core printer driver that can be used to match the driver version in the driver installation control file.<111>

MfgNameOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the MfgNameArray member.

OEMUrlOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the OEMUrlArray member.

HardwareIDOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the HardwareIDArray member.

ProviderOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the start of the ProviderArray member.

PrintProcessorOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the PrintProcessorArray member.

VendorSetupOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the VendorSetupArray member.

szzColorProfilesOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the szzColorProfilesArray member.

InfPathOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the InfPathArray member.

dwPrinterDriverAttributes (4 bytes): 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 table in section 2.2.1.5.6

szzCoreDependenciesOffset (4 bytes): An unsigned integer that specifies the number of bytes from the start of the structure to the szzCoreDependenciesArray.

ftMinInboxDriverVerDate (8 bytes): 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.<112>

dwlMinInboxDriverVerVersion (8 bytes): 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, as specified in section 2.2.1.5.6.<113>

Variable_Data (variable): An array of zero or more groups of optional, variable-size fields, which are defined as follows.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

InfPathArray (variable)

...

szzColorProfilesArray (variable)

...

VendorSetupArray (variable)

...

PrintProcessorArray (variable)

...

ProviderArray (variable)

...

HardwareIDArray (variable)

...

OEMUrlArray (variable)

...

MfgNameArray (variable)

...

szzPreviousNamesArray (variable)

...

DefaultDataTypeArray (variable)

...

MonitorNameArray (variable)

...

DependentFilesArray (variable)

...

HelpFileArray (variable)

...

ConfigFileArray (variable)

...

DataFileArray (variable)

...

DriverPathArray (variable)

...

EnvironmentArray (variable)

...

NameArray (variable)

...

szzCoreDependenciesArray (variable)

...

InfPathArray (variable): See pInfPath specified in section 2.2.1.5.6.

szzColorProfilesArray (variable): A string that specifies the color profiles of the driver. The location of this buffer is determined by the value of the szzColorProfilesOffset member.

VendorSetupArray (variable): A string that specifies the vendor setup DLL for the driver. The location of this buffer is determined by the value of the VendorSetupOffset member.

PrintProcessorArray (variable): A string that specifies the print processor associated with the driver. The location of this buffer is determined by the value of the PrintProcessorOffset member.

ProviderArray (variable): A string that specifies the publisher of the printer driver. The location of this buffer is determined by the value of the ProviderOffset member.

HardwareIDArray (variable): A string that specifies the hardware identifier for the printer driver. The location of this buffer is determined by the value of the HardwareIDOffset member.

OEMUrlArray (variable): A string that specifies the URL for the manufacturer of the printer driver. The location of this buffer is determined by the value of the OEMUrlOffset member.

MfgNameArray (variable): A string that specifies the manufacturer’s name. The location of this buffer is determined by the value of the MfgNameOffset member.

szzPreviousNamesArray (variable): A multisz that specifies any previous printer drivers that are compatible with this driver. The location of this buffer is determined by the value of the szzPreviousNamesOffset member.

DefaultDataTypeArray (variable): A string that specifies the default data type of print jobs created by the driver. The location of this buffer is determined by the value of the DefaultDataTypeOffset member.

MonitorNameArray (variable): A string that specifies a language monitor. The location of this buffer is determined by the value of the MonitorNameOffset member.

DependentFilesArray (variable): A multisz that specifies the names of the files that the printer driver is dependent on. The location of this buffer is determined by the value of the DependentFilesOffset member.

HelpFileArray (variable): A string that specifies a file name or a full path and file name for the printer driver help file. The location of this buffer is determined by the value of the HelpFileOffset member.

ConfigFileArray (variable): A string that specifies a file name or a full path and file name for the printer driver configuration module. The location of this buffer is determined by the value of the ConfigFileOffset member.

DataFileArray (variable): A string that specifies a file name or a full path and file name for the file that contains printer driver data. The location of this buffer is determined by the value of the DataFileOffset member.

DriverPathArray (variable): A string that specifies a file name or full path and file name for the file that contains the printer driver. The location of this buffer is determined by the value of the DependentFilesOffset member.

EnvironmentArray (variable): A string that specifies the environment that the printer driver supports. The location of this buffer is determined by the value of the EnvironmentOffset member.

NameArray (variable): This member MUST contain a string that specifies the print processor  name. The location of this buffer is determined by the value of the NameOffset member. For rules governing print processor names, see section 2.2.4.11.

szzCoreDependenciesArray (variable): A string that specifies the core dependencies of the driver. The location of this buffer is determined by the value of the szzCoreDependenciesOffset member.