A printer interface DLL's DrvUpgradePrinter function is used for updating a printer's registry settings when a new version of the driver is added to a system.
Caller-supplied value indicating the type of structure pointed to by pDriverUpgradeInfo, as indicated in the following table.
Level Value Structure pointed to by pDriverUpgradeInfo
- pDriverUpgradeInfo [in, optional]
Caller-supplied pointer to a structure whose type is identified by dwLevel.
If the operation succeeds, the function should return TRUE; otherwise, it should call SetLastError to set an error code and return FALSE.
A printer interface DLL can optionally provide a DrvUpgradePrinter function. If it does, the spooler calls it for every printer when the printer driver is copied onto the system. This occurs when a system is upgraded from one operating system release to the next, or when an application updates a printer driver by calling the Win32 AddPrinterDriver function.
Often, a new driver version requires registry settings that are different from those of the old version. The DrvUpgradePrinter function's purpose is to update the registry so it is compatible with the driver. For more information about storing printer information in the registry, see DrvPrinterEvent.
For Windows 2000 and later, when the spooler calls DrvUpgradePrinter, it supplies a DRIVER_UPGRADE_INFO_2 structure pointer for pDriverUpgradeInfo. If the function returns FALSE, the spooler calls the function again, this time specifying a DRIVER_UPGRADE_INFO_1 structure pointer. If this call returns FALSE, the spooler writes an entry in the event log.
For Windows NT 4.0 and previous, when the spooler calls DrvUpgradePrinter, it supplies a DRIVER_UPGRADE_INFO_1 structure pointer for pDriverUpgradeInfo. If the function returns FALSE, the spooler writes an entry in the event log.