<div class="content"><p> </p><p><b>RpcAsyncWritePrinter</b> adds data to the file
representing the <span><a href="a98de8d9-8e9e-4cd7-92f7-f9269206a41e#gt_4c0e7da9-88a8-4430-abd7-27e7250b8180" data-linktype="relative-path">spool file</a></span> for a
specified printer, if the spooling option is turned on; or it sends data to the
<span><a href="a98de8d9-8e9e-4cd7-92f7-f9269206a41e#gt_4712ded2-d927-4930-9450-29499f98cef4" data-linktype="relative-path">device</a></span>
directly, if the printer is configured for direct printing.</p><p>The counterpart of this method in the Print System Remote
Protocol is <b>RpcWritePrinter</b>. All parameters not defined below are
specified in <span><a href="../ms-rprn/d42db7d5-f141-4466-8f47-0a4be14e2fc1" data-linktype="relative-path">[MS-RPRN]</a></span>
section <span><a href="../ms-rprn/6dd263aa-c8b5-4774-8d21-1daa0d0d9920" data-linktype="relative-path">3.1.4.9.3</a></span>.</p><dl>
<dd>
<div><pre> DWORD RpcAsyncWritePrinter(
   [in] PRINTER_HANDLE hPrinter,
   [in, size_is(cbBuf)] unsigned char* pBuf,
   [in] DWORD cbBuf,
   [out] DWORD* pcWritten
 );
</pre></div>
</dd></dl><p><b>hPrinter: </b>A handle to a printer object or <span><a href="a98de8d9-8e9e-4cd7-92f7-f9269206a41e#gt_ac027425-6043-4ad3-be27-56a381b75d38" data-linktype="relative-path">port</a></span>
object that was opened by using either <b>RpcAsyncOpenPrinter</b> (section <span><a href="feddac6a-bd88-4989-95fb-715bd6ca796a" data-linktype="relative-path">3.1.4.1.1</a></span>)
or <b>RpcAsyncAddPrinter</b> (section <span><a href="1e5e5498-e646-4fdf-8181-98862a3d6ec8" data-linktype="relative-path">3.1.4.1.2</a></span>).</p><p><b>Return Values: </b>This method returns zero to indicate
successful completion or a nonzero Win32 error code (<span><a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a></span>
section <span><a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a></span>)
to indicate failure. The client MUST treat any nonzero return value as a fatal
error.</p><p><b>Exceptions Thrown:</b> This method MUST NOT throw any
exceptions other than those that are thrown by the underlying <span><a href="a98de8d9-8e9e-4cd7-92f7-f9269206a41e#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span>
protocol <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>.</p><p>This method MUST adhere to the parameter validation,
processing, and response requirements that are specified in [MS-RPRN] section
3.1.4.9.3.</p></div>