3.1.4.3.1 RpcAsyncXcvData (Opnum 33)

RpcAsyncXcvData provides the means by which a port monitor client component can communicate with its server-side counterpart, the actual port monitor hosted by the server.

The counterpart of this method in the Print System Remote Protocol is RpcXcvData. All parameters not defined below are specified in [MS-RPRN] section 3.1.4.6.5.

 DWORD RpcAsyncXcvData(
   [in] PRINTER_HANDLE hXcv,
   [in, string] const wchar_t* pszDataName,
   [in, size_is(cbInputData)] unsigned char* pInputData,
   [in] DWORD cbInputData,
   [out, size_is(cbOutputData)] unsigned char* pOutputData,
   [in] DWORD cbOutputData,
   [out] DWORD* pcbOutputNeeded,
   [in, out] DWORD* pdwStatus
 );

hXcv: A handle to a port object that has been opened by using RpcAsyncOpenPrinter (section 3.1.4.1.1).

Return Values: This method returns zero to indicate successful completion or a nonzero Win32 error code ([MS-ERREF] section 2.2) to indicate failure. Aside from the specific nonzero return values documented in section 3.1.4, the client MUST treat any nonzero return value as a fatal error.

Exceptions Thrown: This method MUST NOT throw any exceptions other than those that are thrown by the underlying RPC protocol [MS-RPCE].

This method MUST adhere to the parameter validation, processing, and response requirements that are specified in [MS-RPRN] section 3.1.4.6.5.