[in] Data to send to the device.
WriteAsync
Sends data to a device asynchronously.
Syntax
Section titled “Syntax”virtual HRESULT WriteAsync(BYTE* pBuf, long cbDesired, ULONG* plJobId) abstract;
virtual HRESULT WriteAsync(SAFEARRAY** pBuf, long cbDesired, ULONG* plJobId) abstract;Parameters
Section titled “Parameters”pBuf
cbDesired
[in] Number of bytes to send to the device.
plJobId
[in] Asynchronous job identifier for the operation.
Return value
Section titled “Return value”Returns S_OK if successful, otherwise a failure HRESULT.
Remarks
Section titled “Remarks”The WriteAsync function asynchronously writes data to the device. Unlike the buffered I/O functions, such as Printf, Write and WriteNumber, etc., the WriteAsync function sends raw bytes directly to the device, rather than going through formatted I/O write buffer.
The WriteAsync function returns immediately. An I/O Completion event will be posted when the transfer is actually completed. The plJobId can be used with an I/O Completion event to identify which asynchronous write operation completed.
Example
Section titled “Example”The following example demonstrates use of the WriteAsync function.
STDMETHODIMP Acme4321::IAcme4321_Write(SAFEARRAY** ppsaData){ HRESULT hr = S_OK;
// Start asynchronous write operation long lJobId; hr = io.LowLevel.WriteAsync(ppsaData, 1000, &lJobId);
return hr;}