xref: /reactos/win32ss/printing/base/spoolsv/xcv.c (revision cdf90707)
1 /*
2  * PROJECT:     ReactOS Print Spooler Service
3  * LICENSE:     GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4  * PURPOSE:     Xcv* functions
5  * COPYRIGHT:   Copyright 2015 Colin Finck (colin@reactos.org)
6  */
7 
8 #include "precomp.h"
9 
10 DWORD
11 _RpcXcvData(WINSPOOL_PRINTER_HANDLE hXcv, const WCHAR* pszDataName, BYTE* pInputData, DWORD cbInputData, BYTE* pOutputData, DWORD cbOutputData, DWORD* pcbOutputNeeded, DWORD* pdwStatus)
12 {
13     DWORD dwErrorCode;
14 
15     FIXME("RpcXcvData( %p, %S,,,)\n",hXcv, pszDataName);
16 
17     dwErrorCode = RpcImpersonateClient(NULL);
18     if (dwErrorCode != ERROR_SUCCESS)
19     {
20         ERR("RpcImpersonateClient failed with error %lu!\n", dwErrorCode);
21         return dwErrorCode;
22     }
23 
24     if (!XcvDataW(hXcv, pszDataName, pInputData, cbInputData, pOutputData, cbOutputData, pcbOutputNeeded, pdwStatus))
25         dwErrorCode = GetLastError();
26 
27     RpcRevertToSelf();
28     return dwErrorCode;
29 }
30