public static async Task <IHidReport> ReadReportAsync(this IHidDevice device, CancellationToken token) { if (device == null) { throw new ArgumentNullException($"{nameof(device)} is null"); } return(new HidReport(await device.ReadRawDataAsync(token).ConfigureAwait(false), device.DeviceInfo.Capabilities.InputReportByteLength)); }