Returns a stream's current status.
This function can be called for both blocking and non-blocking streams.
DWORD dwStatus;
DWORD dwPipeNum, dwSize, dwBytesTransferred, cmd = MENU_RW_READ_PIPE;
DWORD dwBufferSize = 0x20000;
dwSize,
TRUE, 0, TRANSFER_TIMEOUT, &stream);
if (dwStatus)
{
ERR("ReadWritePipesMenu: WDU_StreamOpen() failed. "
"error 0x%lx (\"%s\")\n", dwStatus,
Stat2Str(dwStatus));
goto End_transfer;
}
if (dwStatus)
{
ERR("ReadWritePipesMenu: WDU_StreamStart() failed. error "
"0x%lx (\"%s\")\n", dwStatus,
Stat2Str(dwStatus));
goto End_transfer;
}
if (cmd == MENU_RW_READ_PIPE)
{
&dwBytesTransferred);
}
else
{
&dwBytesTransferred);
}
if (dwStatus)
{
BOOL fIsRunning;
DWORD dwLastError;
DWORD dwBytesInBuffer;
&dwLastError, &dwBytesInBuffer);
if (!dwStatus)
dwStatus = dwLastError;
}
const char *DLLCALLCONV Stat2Str(_In_ DWORD dwStatus)
Retrieves the status string that corresponds to a status code.
DWORD DLLCALLCONV WDU_StreamClose(_In_ WDU_STREAM_HANDLE hStream)
Closes an open stream.
DWORD DLLCALLCONV WDU_StreamGetStatus(_In_ WDU_STREAM_HANDLE hStream, _Outptr_ BOOL *pfIsRunning, _Outptr_ DWORD *pdwLastError, _Outptr_ DWORD *pdwBytesInBuffer)
Returns a stream's current status.
DWORD DLLCALLCONV WDU_StreamWrite(_In_ HANDLE hStream, _In_ const PVOID pBuffer, _In_ DWORD bytes, _Outptr_ DWORD *pdwBytesWritten)
Writes data from the application to a write stream.
DWORD DLLCALLCONV WDU_StreamRead(_In_ HANDLE hStream, _Outptr_ PVOID pBuffer, _In_ DWORD bytes, _Outptr_ DWORD *pdwBytesRead)
Reads data from a read stream to the application.
DWORD DLLCALLCONV WDU_StreamStart(_In_ WDU_STREAM_HANDLE hStream)
Starts a stream, i.e starts transfers between the stream and the device.
DWORD DLLCALLCONV WDU_StreamOpen(_In_ WDU_DEVICE_HANDLE hDevice, _In_ DWORD dwPipeNum, _In_ DWORD dwBufferSize, _In_ DWORD dwRxSize, _In_ BOOL fBlocking, _In_ DWORD dwOptions, _In_ DWORD dwRxTxTimeout, _Outptr_ WDU_STREAM_HANDLE *phStream)
Opens a new data stream for the specified pipe.