59 if (Level < 2 || Level == 5 || Level == 7 || Level > 8)
267 TRACE(
"AddPrinterDriverExW(%S, %lu, %p, %lu)\n",
pName,
Level, pDriverInfo, dwFileCopyFlags);
282 pdi->cchColorProfiles = 0;
291 pdi->cchCoreDependencies = 0;
318 pdi->cchPreviousNames = 0;
335 pdi->cchDependentFiles = 0;
374 ERR(
"_RpcAddPrinterDriverEx failed with exception code %lu!\n", dwErrorCode);
394 TRACE(
"DeletePrinterDriverA(%s, %s, %s)\n",
pName, pEnvironment, pDriverName);
405 TRACE(
"DeletePrinterDriverExA(%s, %s, %s, %lu, %lu)\n",
pName, pEnvironment, pDriverName, dwDeleteFlag, dwVersionFlag);
428 TRACE(
"DeletePrinterDriverExW(%S, %S, %S, %lu, %lu)\n",
pName, pEnvironment, pDriverName, dwDeleteFlag, dwVersionFlag);
430 if ( !pDriverName || !*pDriverName )
436 if ( !pEnvironment || !*pEnvironment )
449 ERR(
"_RpcDeletePrinterDriverEx failed with exception code %lu!\n", dwErrorCode);
461 TRACE(
"DeletePrinterDriverW(%S, %S, %S)\n",
pName, pEnvironment, pDriverName);
471 PWSTR pwstrNameW, pwstrEnvironmentW;
475 FIXME(
"EnumPrinterDriversA(%s, %s, %lu, %p, %lu, %p, %p)\n",
pName, pEnvironment,
Level, pDriverInfo, cbBuf,
pcbNeeded, pcReturned);
486 for (
i = 0;
i < *pcReturned;
i++ )
637 FIXME(
"EnumPrinterDriversW(%S, %S, %lu, %p, %lu, %p, %p)\n",
pName, pEnvironment,
Level, pDriverInfo, cbBuf,
pcbNeeded, pcReturned);
640 if (Level < 1 || Level == 7 || Level > 8)
646 if ( !pEnvironment || !*pEnvironment )
651 if (cbBuf && pDriverInfo)
662 ERR(
"_RpcEnumPrinterDrivers failed with exception code %lu!\n", dwErrorCode);
674 SetLastError(dwErrorCode);
FIXME(
"EnumPrinterDriversW Exit Err %d\n",dwErrorCode);
693 TRACE(
"GetPrinterDriverA(%p, %s, %lu, %p, %lu, %p)\n", hPrinter, pEnvironment,
Level, pDriverInfo, cbBuf,
pcbNeeded);
696 if (Level < 1 || Level == 7 || Level > 8)
709 if (!pwszEnvironment)
712 ERR(
"HeapAlloc failed!\n");
878 TRACE(
"GetPrinterDriverW(%p, %S, %lu, %p, %lu, %p)\n", hPrinter, pEnvironment,
Level, pDriverInfo, cbBuf,
pcbNeeded);
894 if ( !pEnvironment || !*pEnvironment )
899 if (cbBuf && pDriverInfo)
910 ERR(
"_RpcGetPrinterDriver failed with exception code %lu!\n", dwErrorCode);
935 TRACE(
"GetPrinterDriverDirectoryA(%s, %s, %d, %p, %d, %p)\n",
debugstr_a(
pName),
debugstr_a(pEnvironment),
Level, pDriverDirectory, cbBuf,
pcbNeeded);
965 ret = needed <= cbBuf;
986 TRACE(
"GetPrinterDriverDirectoryW(%S, %S, %lu, %p, %lu, %p)\n",
pName, pEnvironment,
Level, pDriverDirectory, cbBuf,
pcbNeeded);
994 if ( !pEnvironment || !*pEnvironment )
1007 ERR(
"_RpcGetPrinterDriverDirectory failed with exception code %lu!\n", dwErrorCode);
#define ERROR_INVALID_PARAMETER
#define WideCharToMultiByte
BOOL WINAPI GetPrinterDriverDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
ACPI_SIZE strlen(const char *String)
struct _DRIVER_INFO_2W * PDRIVER_INFO_2W
#define ERROR_INVALID_HANDLE
BOOL WINAPI AddPrinterDriverExW(PWSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags)
#define ERROR_NOT_ENOUGH_MEMORY
DWORDLONG dwlDriverVersion
DWORD WINAPI GetLastError(VOID)
struct _DRIVER_INFO_1W * PDRIVER_INFO_1W
FILETIME ftMinInboxDriverVerDate
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
BOOL WINAPI DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName)
const WCHAR wszCurrentEnvironment[]
static int multi_sz_lenW(const WCHAR *str)
#define APD_COPY_NEW_FILES
BOOL WINAPI DeletePrinterDriverExA(PSTR pName, PSTR pEnvironment, PSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag)
WINSPOOL_DRIVER_INFO_8 * Level8
BOOL WINAPI AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
BOOL WINAPI AddPrinterDriverA(PSTR pName, DWORD Level, PBYTE pDriverInfo)
DWORD dwPrinterDriverAttributes
wstring AsciiToUnicode(const char *AsciiString)
DWORD UnicodeToAnsiZZInPlace(PWSTR pwszzField)
DWORDLONG dwlDriverVersion
static const WCHAR nameW[]
#define RpcExceptionCode()
DWORD dwPrinterDriverAttributes
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define EXCEPTION_EXECUTE_HANDLER
BOOL WINAPI AddPrinterDriverExA(PSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags)
BOOL WINAPI DeletePrinterDriverA(PSTR pName, PSTR pEnvironment, PSTR pDriverName)
DWORDLONG dwlDriverVersion
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
DWORD UnicodeToAnsiInPlace(PWSTR pwszField)
BOOL WINAPI DeletePrinterDriverExW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag)
FILETIME ftMinInboxDriverVerDate
LPSTR pszzCoreDriverDependencies
struct _DRIVER_INFO_8W * PDRIVER_INFO_8W
DWORDLONG dwlMinInboxDriverVerVersion
DWORD _RpcEnumPrinterDrivers(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, DWORD Level, BYTE *pDrivers, DWORD cbBuf, DWORD *pcbNeeded, DWORD *pcReturned)
static const WCHAR Cleanup[]
BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded)
BOOL WINAPI MarshallUpStructure(DWORD cbSize, PVOID pStructure, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
struct _DRIVER_INFO_4W * PDRIVER_INFO_4W
int WINAPI lstrlenA(LPCSTR lpString)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
_In_ DWORD _Out_ PDWORD pcbNeeded
struct _DRIVER_INFO_6W * PDRIVER_INFO_6W
LPWSTR pszzCoreDriverDependencies
static int multi_sz_lenA(const char *str)
DWORD _RpcDeletePrinterDriverEx(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, WCHAR *pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum)
BOOL WINAPI GetPrinterDriverDirectoryA(PSTR pName, PSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
#define MultiByteToWideChar
DWORD _RpcGetPrinterDriverDirectory(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, DWORD Level, BYTE *pDriverDirectory, DWORD cbBuf, DWORD *pcbNeeded)
BOOL WINAPI EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
#define ERROR_INVALID_LEVEL
DWORD _RpcAddPrinterDriverEx(WINSPOOL_HANDLE pName, WINSPOOL_DRIVER_CONTAINER *pDriverContainer, DWORD dwFileCopyFlags)
BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded)
DWORD _RpcGetPrinterDriver(WINSPOOL_PRINTER_HANDLE hPrinter, WCHAR *pEnvironment, DWORD Level, BYTE *pDriver, DWORD cbBuf, DWORD *pcbNeeded)
DWORDLONG dwlMinInboxDriverVerVersion
BOOL WINAPI EnumPrinterDriversA(PSTR pName, PSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
struct _SPOOLER_HANDLE * PSPOOLER_HANDLE
#define HeapFree(x, y, z)
struct _DRIVER_INFO_3W * PDRIVER_INFO_3W
union _WINSPOOL_DRIVER_CONTAINER::@3361 DriverInfo
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
BOOL WINAPI MarshallUpStructuresArray(DWORD cbSize, PVOID pStructuresArray, DWORD cElements, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
static const MARSHALLING * pPrinterDriverMarshalling[]