/Nefarius.Drivers.WinUSB

WinUSB .NET wrapper library

Primary LanguageC#OtherNOASSERTION

Nefarius.Drivers.WinUSB

This is a fork of the fantastic MadWizard.WinUSBNet project by Thomas Bleeker and contributors.

Build status

Managed wrapper for the WinUSB APIs on Microsoft Windows.

Changes of this fork

  • Replaced P/Invoke code with source generators
  • Changed namespace to Nefarius.Drivers.WinUSB to avoid conflicts with the origin library
  • Removed device notification listener as my other lib Nefarius.Utilities.DeviceManagement provides a drop-in replacement without depending on WinForms or WPF
  • Added USBDevice::GetSingleDeviceByPath to allow opening a WinUSB device via device path (symbolic link)

TO-DOs

  • Migrate all buffers to Spans where possible
  • Migrate the old asynchronous APIs to async/await and Tasks

Features

Taken verbatim from the source repository.

  • MIT licensed with C# source code available (free for both personal and commercial use)
  • CLS compliant library (usable from all .NET languages such as C#, VB.NET and C++.NET)
  • Synchronous and asynchronous data transfers
  • Support for 32-bit and 64-bit Windows versions
  • Support for multiple interfaces and endpoints
  • Intellisense documentation

Related documentation