[out] Array of bytes read from the device.
LowLevelReadNoPoll
Reads raw bytes directly from a device without going through the formatted I/O read buffer.
Syntax
Section titled “Syntax”virtual HRESULT LowLevelReadNoPoll(BYTE* pBuf, long cbDesired, long* pcbActual, long lTimeout = CUR_TIMEOUT) override;
virtual HRESULT LowLevelReadNoPoll(SAFEARRAY** pBuf, long cbDesired, long lTimeout = CUR_TIMEOUT) override;Parameters
Section titled “Parameters”pBuf
cbDesired
[in] Number of bytes to read from the device.
pcbActual
[out] Actual number of bytes read from the device.
lTimeout
[in] I/O timeout value in milliseconds.
Return value
Section titled “Return value”Returns S_OK if successful, otherwise a failure HRESULT.
Remarks
Section titled “Remarks”This function behaves identically to the LowLevelRead function except that the device is not polled for errors after the data is read.
Example
Section titled “Example”The following example demonstrates use of the LowLevelReadNoPoll function.
STDMETHODIMP Acme4321::IAcme4321_QueryData(SAFEARRAY** ppsaData){ HRESULT hr = S_OK;
// Read 1000 bytes hr = io.LowLevel.LowLevelReadNoPoll(ppsaData, 1000);
return hr;}