UploadPrinterDriverPackage function

Uploads a printer driver to the print server's driver store so that it can be installed by calling InstallPrinterDriverFromPackage.

Syntax

HRESULT UploadPrinterDriverPackage(
  _In_    LPCTSTR pszServer,
  _In_    LPCTSTR pszInfPath,
  _In_    LPCTSTR pszEnvironment,
  _In_    DWORD   dwFlags,
  _In_    HWND    hwnd,
  _Out_   LPTSTR  pszDestInfPath,
  _Inout_ PULONG  pcchDestInfPath
);

Parameters

pszServer [in]

A pointer to a constant, null-terminated string that specifies the name of the print server. Use NULL if the server is the local computer.

pszInfPath [in]

A pointer to a constant ,null-terminated string that specifies the source path to the driver's .inf file.

pszEnvironment [in]

A pointer to a constant, null-terminated string that specifies the server's processor architecture (for example, Windows NT x86). This can be NULL.

dwFlags [in]

This can be any of the following values:

Value Meaning
UPDP_SILENT_UPLOAD
The UI will not be shown during the upload.
UPDP_UPLOAD_ALWAYS
The files will be uploaded even if the package is already in the server's driver store.
UPDP_CHECK_DRIVERSTORE
The server's driver store will be checked before upload to see if the package is already there. This setting is ignored if UPDP_UPLOAD_ALWAYS is set.

hwnd [in]

A handle to the copying user interface.

pszDestInfPath [out]

A pointer to the destination path, in the driver store, to which the driver's .inf file was copied.

pcchDestInfPath [in, out]

On input, specifies the size, in characters, of the pszDestInfPath buffer. On output, receives the size, in characters, of the path string, including the terminating null character.

Return value

If the operation succeeds, the return value is S_OK, otherwise the HRESULT will contain an error code.

For more information about COM error codes, see Error Handling.

Remarks

Note

This is a blocking or synchronous function and might not return immediately. How quickly this function returns depends on run-time factors such as network status, print server configuration, and printer driver implementation factors that are difficult to predict when writing an application. Calling this function from a thread that manages interaction with the user interface could make the application appear to be unresponsive.

The driver store is typically either %windir%\inf or %windir%\System32\DriverStore\FileRepository.

Only one package at a time can be uploaded. If a package is dependent on others, they must be uploaded separately.

Only signed driver packages can be uploaded.

Requirements

Requirement Value
Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only]
Header
Winspool.h (include Windows.h)
Library
Winspool.lib
DLL
Spoolss.dll
Unicode and ANSI names
UploadPrinterDriverPackageW (Unicode) and UploadPrinterDriverPackageA (ANSI)

See also

Printing

Print Spooler API Functions