GetCorePrinterDrivers function

Retrieves GUID, version, and date of the specified core printer drivers and the path to their packages.


HRESULT GetCorePrinterDrivers(
  _In_  LPCTSTR              pszServer,
  _In_  LPCTSTR              pszEnvironment,
  _In_  LPCTSTR              pszzCoreDriverDependencies,
  _In_  DWORD                cCorePrinterDrivers,
  _Out_ PCORE_PRINTER_DRIVER pCorePrinterDrivers


pszServer [in]

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

pszEnvironment [in]

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

pszzCoreDriverDependencies [in]

A pointer to a null-terminated multi-string that specifies the GUIDs of the core printer drivers.

cCorePrinterDrivers [in]

The number of strings in pszzCoreDriverDependencies.

pCorePrinterDrivers [out]

A pointer to an array of one or more CORE_PRINTER_DRIVER structures.

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.


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.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]


Winspool.h (include Windows.h)





Unicode and ANSI names

GetCorePrinterDriversW (Unicode) and GetCorePrinterDriversA (ANSI)

See also

Print Spooler API Functions