17 switch ( pDriverContainer->
Level )
23 pDriverInfo = (
PBYTE)pdi8w;
38 if ( pDriverInfo ==
NULL )
41 pDriverInfo = (
PBYTE)pdi6w;
60 if ( pDriverInfo ==
NULL )
63 pDriverInfo = (
PBYTE)pdi4w;
77 if ( pDriverInfo ==
NULL )
80 pDriverInfo = (
PBYTE)pdi3w;
98 if ( pDriverInfo ==
NULL )
101 pDriverInfo = (
PBYTE)pdi2w;
125 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
144 switch ( pDriverContainer->
Level )
150 pDriverInfo = (
PBYTE)pdi8w;
165 if ( pDriverInfo ==
NULL )
168 pDriverInfo = (
PBYTE)pdi6w;
187 if ( pDriverInfo ==
NULL )
190 pDriverInfo = (
PBYTE)pdi4w;
204 if ( pDriverInfo ==
NULL )
207 pDriverInfo = (
PBYTE)pdi3w;
225 if ( pDriverInfo ==
NULL )
228 pDriverInfo = (
PBYTE)pdi2w;
252 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
273 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
292 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
307 PBYTE pPrinterDriversEnumAligned;
312 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
316 pPrinterDriversEnumAligned =
AlignRpcPtr(pDrivers, &cbBuf);
339 PBYTE pDriverAligned;
341 TRACE(
"_RpcGetPrinterDriver(%p, %lu, %lu, %p, %lu, %p)\n", hPrinter, pEnvironment,
Level,
pDriver, cbBuf,
pcbNeeded);
346 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
376 DWORD dwClientMajorVersion,
377 DWORD dwClientMinorVersion,
378 PDWORD pdwServerMajorVersion,
379 PDWORD pdwServerMinorVersion,
383 PBYTE pDriverAligned;
385 FIXME(
"_Rpc(Y)GetPrinterDriver2(%p, %lu, %lu, %p, %lu, %p, %lu, %lu, %p, %p)\n", hPrinter, pEnvironment,
Level,
pDriver, cbBuf,
pcbNeeded, dwClientMajorVersion, dwClientMinorVersion, pdwServerMajorVersion, pdwServerMinorVersion);
392 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
399 if (
GetPrinterDriverExW(hPrinter, pEnvironment,
Level, pDriverAligned, cbBuf,
pcbNeeded, dwClientMajorVersion, dwClientMinorVersion, pdwServerMajorVersion, pdwServerMinorVersion))
420 PBYTE pDriverAligned;
422 FIXME(
"_RpcGetPrinterDriver2(%p, %lu, %lu, %p, %lu, %p, %lu, %lu, %p, %p)\n", hPrinter, pEnvironment,
Level,
pDriver, cbBuf,
pcbNeeded, dwClientMajorVersion, dwClientMinorVersion, pdwServerMaxVersion, pdwServerMinVersion);
427 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
433 if (
GetPrinterDriverExW(hPrinter, pEnvironment,
Level, pDriverAligned, cbBuf,
pcbNeeded, dwClientMajorVersion, dwClientMinorVersion, pdwServerMaxVersion, pdwServerMinVersion))
458 ERR(
"RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
BOOL WINAPI GetPrinterDriverDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
WINSPOOL_DRIVER_INFO_2 * Level2
struct _DRIVER_INFO_2W * PDRIVER_INFO_2W
BOOL WINAPI DllFreeSplMem(PVOID pMem)
BOOL WINAPI GetPrinterDriverExW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion)
BOOL WINAPI AddPrinterDriverExW(PWSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags)
DWORD WINAPI GetLastError(VOID)
FILETIME ftMinInboxDriverVerDate
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
DWORD _RpcGetPrinterDriver2(WINSPOOL_PRINTER_HANDLE hPrinter, WCHAR *pEnvironment, DWORD Level, BYTE *pDriver, DWORD cbBuf, DWORD *pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, DWORD *pdwServerMaxVersion, DWORD *pdwServerMinVersion)
BOOL WINAPI DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName)
DWORD _RpcAddPrinterDriver(WINSPOOL_HANDLE pName, WINSPOOL_DRIVER_CONTAINER *pDriverContainer)
WINSPOOL_DRIVER_INFO_8 * Level8
BOOL WINAPI AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo)
WINSPOOL_DRIVER_INFO_6 * Level6
BOOL WINAPI YGetPrinterDriver2(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriver, DWORD cbBuf, LPDWORD pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion, BOOL bRPC)
RPC_STATUS WINAPI RpcRevertToSelf(void)
DWORDLONG dwlDriverVersion
BOOL WINAPI DeletePrinterDriverExW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag)
BOOL WINAPI MarshallDownStructure(PVOID pStructure, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
DWORD _RpcEnumPrinterDrivers(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, DWORD Level, BYTE *pDrivers, DWORD cbBuf, DWORD *pcbNeeded, DWORD *pcReturned)
struct _DRIVER_INFO_4W * PDRIVER_INFO_4W
DWORD _RpcDeletePrinterDriver(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, WCHAR *pDriverName)
PVOID WINAPI AlignRpcPtr(PVOID pBuffer, PDWORD pcbBuffer)
_In_ DWORD _Out_ PDWORD pcbNeeded
WINSPOOL_DRIVER_INFO_4 * Level4
struct _DRIVER_INFO_6W * PDRIVER_INFO_6W
LPWSTR pszzCoreDriverDependencies
PDWORD WINAPI UndoAlignRpcPtr(PVOID pDestinationBuffer, PVOID pSourceBuffer, DWORD cbBuffer, PDWORD pcbNeeded)
DWORD _RpcDeletePrinterDriverEx(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, WCHAR *pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum)
RPC_STATUS WINAPI RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
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)
PVOID WINAPI DllAllocSplMem(DWORD dwBytes)
#define ERROR_INVALID_LEVEL
WINSPOOL_DRIVER_INFO_3 * Level3
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 MarshallDownStructuresArray(PVOID pStructuresArray, DWORD cElements, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
struct _DRIVER_INFO_3W * PDRIVER_INFO_3W
union _WINSPOOL_DRIVER_CONTAINER::@3361 DriverInfo
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
static const MARSHALLING * pPrinterDriverMarshalling[]