AddPrintProvidor function
Important
On July 6, 2021, KB5005010 introduced an optional registry-based configuration option to restrict access to this API to admin users only. This option was off be default.
On August 10, 2021, KB5005652 changes this configuration's default value to require admin rights to install new printer drivers.
The AddPrintProvidor function installs a local print provider and links the configuration, data, and provider files.
Syntax
BOOL AddPrintProvidor(
_In_ LPTSTR pName,
_In_ DWORD Level,
_In_ LPBYTE pProviderInfo
);
Parameters
-
pName [in]
-
A pointer to a null-terminated string that specifies the name of the server on which the provider should be installed. For systems that only support local installation of providers, this parameter should be NULL.
-
Level [in]
-
The level of the structure to which pProviderInfo points. It can be one of the following.
Value Meaning - 1
Function uses a PROVIDOR_INFO_1 structure. - 2
Function uses a PROVIDOR_INFO_2 structure. -
pProviderInfo [in]
-
A pointer to a print provider structure, as indicated by Level.
Return value
If the function succeeds, the return value is a nonzero value.
If the function fails, the return value is zero.
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.
Before an application calls the AddPrintProvidor function, all files required by the provider must be copied to the SYSTEM32 directory.
A provider added by AddPrintProvidor may be removed by calling DeletePrintProvidor.
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
Minimum supported server |
Windows 2000 Server [desktop apps only] |
Header |
|
Library |
|
DLL |
|
Unicode and ANSI names |
AddPrintProvidorW (Unicode) and AddPrintProvidorA (ANSI) |