public async Task WriteAsync(byte[] data) { await Task.Run(() => { var isSuccess = WinUsbApiCalls.WinUsb_WritePipe(_SafeFileHandle, WriteEndpoint.PipeId, data, (uint)data.Length, out var bytesWritten, IntPtr.Zero); WindowsDeviceBase.HandleError(isSuccess, "Couldn't write data"); Tracer?.Trace(true, data); }); }
public override async Task WriteAsync(byte[] data) { await Task.Run(() => { if (data.Length > WriteBufferSize) { throw new Exception($"Data is longer than {WriteBufferSize} bytes which is the device's max buffer size."); } //TODO: Allow for different interfaces and pipes... var isSuccess = WinUsbApiCalls.WinUsb_WritePipe(_DefaultUsbInterface.Handle, _DefaultUsbInterface.WritePipe.WINUSB_PIPE_INFORMATION.PipeId, data, (uint)data.Length, out var bytesWritten, IntPtr.Zero); HandleError(isSuccess, "Couldn't write data"); Tracer?.Trace(true, data); }); }