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 GetPrinterDriverExW(HANDLE hPrinter, LPWSTR pEnvironment, DWORD Level, LPBYTE pDriverInfo, DWORD cbBuf, LPDWORD pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, PDWORD pdwServerMajorVersion, PDWORD pdwServerMinorVersion)
BOOL WINAPI AddPrinterDriverW(PWSTR pName, DWORD Level, PBYTE pDriverInfo)
BOOL WINAPI DeletePrinterDriverW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName)
BOOL WINAPI GetPrinterDriverDirectoryW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverDirectory, DWORD cbBuf, PDWORD pcbNeeded)
BOOL WINAPI GetPrinterDriverW(HANDLE hPrinter, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded)
BOOL WINAPI AddPrinterDriverExW(PWSTR pName, DWORD Level, PBYTE pDriverInfo, DWORD dwFileCopyFlags)
BOOL WINAPI EnumPrinterDriversW(PWSTR pName, PWSTR pEnvironment, DWORD Level, PBYTE pDriverInfo, DWORD cbBuf, PDWORD pcbNeeded, PDWORD pcReturned)
BOOL WINAPI DeletePrinterDriverExW(PWSTR pName, PWSTR pEnvironment, PWSTR pDriverName, DWORD dwDeleteFlag, DWORD dwVersionFlag)
DWORD _RpcGetPrinterDriver2(WINSPOOL_PRINTER_HANDLE hPrinter, WCHAR *pEnvironment, DWORD Level, BYTE *pDriver, DWORD cbBuf, DWORD *pcbNeeded, DWORD dwClientMajorVersion, DWORD dwClientMinorVersion, DWORD *pdwServerMaxVersion, DWORD *pdwServerMinVersion)
DWORD _RpcAddPrinterDriverEx(WINSPOOL_HANDLE pName, WINSPOOL_DRIVER_CONTAINER *pDriverContainer, DWORD dwFileCopyFlags)
DWORD _RpcDeletePrinterDriverEx(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, WCHAR *pDriverName, DWORD dwDeleteFlag, DWORD dwVersionNum)
DWORD _RpcDeletePrinterDriver(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, WCHAR *pDriverName)
DWORD _RpcEnumPrinterDrivers(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, DWORD Level, BYTE *pDrivers, DWORD cbBuf, DWORD *pcbNeeded, DWORD *pcReturned)
DWORD _RpcGetPrinterDriver(WINSPOOL_PRINTER_HANDLE hPrinter, WCHAR *pEnvironment, DWORD Level, BYTE *pDriver, DWORD cbBuf, DWORD *pcbNeeded)
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)
DWORD _RpcGetPrinterDriverDirectory(WINSPOOL_HANDLE pName, WCHAR *pEnvironment, DWORD Level, BYTE *pDriverDirectory, DWORD cbBuf, DWORD *pcbNeeded)
DWORD _RpcAddPrinterDriver(WINSPOOL_HANDLE pName, WINSPOOL_DRIVER_CONTAINER *pDriverContainer)
BOOL WINAPI MarshallDownStructure(PVOID pStructure, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
BOOL WINAPI MarshallDownStructuresArray(PVOID pStructuresArray, DWORD cElements, const MARSHALLING_INFO *pInfo, DWORD cbStructureSize, BOOL bSomeBoolean)
static const MARSHALLING * pPrinterDriverMarshalling[]
RPC_STATUS WINAPI RpcRevertToSelf(void)
RPC_STATUS WINAPI RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
DWORDLONG dwlDriverVersion
DWORDLONG dwlMinInboxDriverVerVersion
LPWSTR pszzCoreDriverDependencies
FILETIME ftMinInboxDriverVerDate
WINSPOOL_DRIVER_INFO_2 * Level2
WINSPOOL_DRIVER_INFO_6 * Level6
WINSPOOL_DRIVER_INFO_3 * Level3
union _WINSPOOL_DRIVER_CONTAINER::@3438 DriverInfo
WINSPOOL_DRIVER_INFO_8 * Level8
WINSPOOL_DRIVER_INFO_4 * Level4
BOOL WINAPI DllFreeSplMem(PVOID pMem)
PVOID WINAPI AlignRpcPtr(PVOID pBuffer, PDWORD pcbBuffer)
PVOID WINAPI DllAllocSplMem(DWORD dwBytes)
PDWORD WINAPI UndoAlignRpcPtr(PVOID pDestinationBuffer, PVOID pSourceBuffer, DWORD cbBuffer, PDWORD pcbNeeded)
DWORD WINAPI GetLastError(void)
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
_In_ DWORD _Out_ PDWORD pcbNeeded
#define ERROR_INVALID_LEVEL
struct _DRIVER_INFO_6W * PDRIVER_INFO_6W
struct _DRIVER_INFO_3W * PDRIVER_INFO_3W
struct _DRIVER_INFO_4W * PDRIVER_INFO_4W
struct _DRIVER_INFO_2W * PDRIVER_INFO_2W
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level