public async Task <ReadResult> ReadAsync(uint bufferLength) { return(await Task.Run(() => { var bytes = new byte[bufferLength]; var isSuccess = WinUsbApiCalls.WinUsb_ReadPipe(_SafeFileHandle, ReadEndpoint.PipeId, bytes, bufferLength, out var bytesRead, IntPtr.Zero); WindowsDeviceBase.HandleError(isSuccess, "Couldn't read data"); Tracer?.Trace(false, bytes); return new ReadResult(bytes, bytesRead); })); }
public override async Task <byte[]> ReadAsync() { return(await Task.Run(() => { var bytes = new byte[ReadBufferSize]; //TODO: Allow for different interfaces and pipes... var isSuccess = WinUsbApiCalls.WinUsb_ReadPipe(_DefaultUsbInterface.Handle, _DefaultUsbInterface.ReadPipe.WINUSB_PIPE_INFORMATION.PipeId, bytes, ReadBufferSize, out var bytesRead, IntPtr.Zero); HandleError(isSuccess, "Couldn't read data"); Tracer?.Trace(false, bytes); return bytes; })); }