LibUsbDotNet Changelog

What's new in LibUsbDotNet 2.2.8

Feb 8, 2011
  • Fixed issue with DataReceived event.
  • When disabling the DataRecevied event, the property would return before the action had been fully carried out.
  • Fixed memory leak in device list function.
  • An allocated GCHandle was not freed in the device listing functions resulting in a application memory leak.

New in LibUsbDotNet 2.2.7 (Aug 25, 2010)

  • Fixed libusb-1.0 support.
  • This was broken when ISO endpoint support was added.
  • HasLibUsbDriver()()() property
  • This property will always return true.
  • Fixed 32bit applications not running on 64bit operating systems. (Windows)
  • If LibUsbDotNet is compiled as Win32 instead of Any CPU it would not work on 64bit operating systems with libusb-win32.
  • Updated InfWizard with embedded libusb-win32 v1.2.1 driver resource package.
  • Updated default UsbEndpointBase.MaxReadWrite changed back to 65536. This is the limit at which libusbdotnet begins splitting transfers.

New in LibUsbDotNet 2.2.4 (Mar 16, 2010)

  • Fixed Bug ID: 2969931 - Linux xbuild issue.
  • The xbuild utility failed to build the LibUsbDotNet.sln. This was caused by an invalid resource in the InfWizard application and a casting issue for function that take a Predicate as a parameter.
  • Fixed Bug ID: 2956665 - UsbDeviceFinder fails to find VID and PIDs > 0x7FFF.
  • USB devices that have VID or PIDs greater than 0x7FFF are not found by the UsbDeviceFinder class.
  • Added UsbDevice.Exit()()() method.
  • This was added to support the Libusb-1.0 windows backend port. If the usb device is using Libusb-1.0, this method must be called before the application exits.
  • Added Asynchronous transfer functions to UsbEndpointBase.
  • For more details see the NewAsyncTransfer()()() and SubmitAsyncTransfer()()() functions in the UsbEndpointBase class.
  • Added Low-level .NET MonoLibUsb API for Libusb-1.0.
  • The low-level MonoLibUsb API (Libusb-1.0) is supported on many platforms including windows via the Libusb-1.0 windows-backend port.
  • Unlike the LibUsbDotNet API, MonoLibUsb has full support for all Libusb-1.0 functions.
  • Added UsbRegistry.ForceSetupApi option.
  • This option forces LibUsbDotNet to gather extra device information via the windows setup api for devices using drivers that do not support the setupapi.
  • Added UsbDevice.ForceLibUsbWinBack option.
  • This option forces LibUsbDotNet to use only the Libusb-1.0 windows backend driver.

New in LibUsbDotNet 2.2.3 (Mar 16, 2010)

  • Removed - GetConfiguration call in UsbDevice.Open method.
  • The UsbDevice.Open()()() method requests the usb devices current configuration upon opening. This causes problems in some situations.
  • Added IUsbDevice.ResetDevice()()() method.
  • Fixed Bug ID: 2937372 - Read Failed:WaitHandle.WaitOne missing member exception.
  • If .NET 3.5 is not installed, a System.Threading.WaitHandle.WaitOne missing member exception is thrown. LibUsbDotNet should not require the 3.5 runtime. It should work with 2.0 and greater.
  • Fixed Bug ID: 2935627 - Stack overflow when reading an ep that does not exists.
  • If an attempt is made to open and transmit to a non-existent endpoint a stack overflow occurs. Expected behavior is to throw an exception.
  • Fixed Bug ID: 2935456 - UsbDevice.KernelType property not set correcty.
  • [Windows Only] If the UsbDevice.KernelType is accessed when no device are connected it does not update properly when a device is connected.
  • v2.2.2 (01/19/2010)

New in LibUsbDotNet 2.2.2 (Mar 16, 2010)

  • Fixed Bug ID: 2934547 - DeviceNotifier not working.
  • On Linux like OSes the DeviceNotifier never fires events. On Windows, a DllNotFound exception is thrown.
  • Fixed Bug ID: 2933530 - Composite WinUSB not found.
  • WinUSB interfaces that are part of a composite device do not appear in the WinUsbRegistry.DeviceList.

New in LibUsbDotNet 2.2.1 (Mar 16, 2010)

  • Fixed Bug ID: 2930836 - [OSX PPC] GetDescriptor request fails.
  • On big-endian platforms, the descriptor type and index bytes are reversed.
  • Fixed Bug ID: 2927179 - Wrong versioning. LibUsbDotNet 2.2.0 all AssemblyInfo.cs contains [assembly:AssemblyVersion("2.1.0.13")]
  • Updated Benchmark application: Removed all calls to Control.Invoke.
  • The benchmark application now uses a timer control to periodically update the display instead of "Invoking" an update everytime data is transferred. This provides a more accurate benchmark reading as well as a work-a-round for Mono .NET runtimes on platforms that do not properly implement the Control.Invoke method.
  • Removed LINUX compiler option.
  • The LINUX compiler option is no longer used. LibUsbDotNet (v2.2.1 and above) is fully platform independent.

New in LibUsbDotNet 2.2.0 (Mar 16, 2010)

  • Added Linux support.
  • LibUsbDotNet supports linux via the linux libusb v1.x driver.
  • Updated UsbDevice.OpenEndpointReader and UsbDevice.OpenEndpointWriter members to first lookup the endpoint descriptor for the current configuration.
  • If an attempt is made to open an endpoint on a unconfigured device (GetConfiguration = 0) an exception is thrown.
  • If an attempt is made to open a non-existent or invalid endpoint an exception is thrown.
  • Added endpoint descriptor information to UsbEndpointBase class.
  • A New property, 'EndpointInfo' is available from the UsbEndpointBase class.
  • Removed Depricated UsbGlobals class.
  • The UsbGlobals class has been rendered obsolete and will be removed in future release. Update your code you use the UsbDevice class instead.

New in LibUsbDotNet 2.1.0 (Mar 16, 2010)

  • Fixed Bug ID: 2886021 - Problem with several instances of the same device (WinUsb)
  • When connecting 2 (or more) identical USB devices, the library has problems opening each device instance.
  • Fixed Bug ID: 2873320 Bug ID: 2874172 - Error getting Key "SymbolicName"
  • Some devices having no SymbolicName. In this case, the main application or .NET framework crashes.
  • Fixed Bug ID: 2853283 - Infwizard exception thrown on load
  • The InfWizard throws an exception when loaded.
  • Added support for the genuine libusb-win32 kernel driver.
  • If the LibUsbDotNet native kernel driver is not detected it falls back to the original libusb-win32 kernel driver. Using the native driver is recommended.
  • Added static open method to the LibUsbDevice class.
  • Opens a libUsb device from a user suppiled device filename.
  • public static bool Open(string deviceFilename, out LibUsbDevice usbDevice)
  • Added static open method to the WinUsbDevice class.
  • Opens a WinUSB device from a user suppiled device path (symbolic link).
  • public static bool Open(string devicePath, out WinUsbDevice usbDevice)
  • Removed DeviceInterfaceGuid property from WinUsbDevice class.
  • A DeviceInterfaceGuid is not required for a WinUsbDevice.
  • Removed UsbRegistryInfo property from UsbDevice classes.
  • A UsbRegistry instance is not required for the UsbDevice classes.
  • Removed device and endpoint level locking features.
  • The device and endpoint level locking features had specfic requirements pertaining to the usb symbolic name that could not always be met.

New in LibUsbDotNet 2.0.3 (Mar 16, 2010)

  • Fixed Bug ID: 2845680 - LibUsbDotNet-libusb-win32 v2.1.12.1 GET_INTERFACE request fails in XP SP3
  • The GET_INTERFACE request in the libusb kernel driver fails on Windows XP SP3 but works under windows Vista.
  • Fixed Bug ID: 2845679 - InfWizard Spawn driver function problems.
  • The InfWizard spawn driver function fails to locate WinUSB support drivers from the DDK install directory.
  • Added UsbException on non-existent endpoint.
  • If an an attempt is made to open an endpoint that does not exists, a UsbException is thrown.
  • Updated LibUsbDotNet-libusb-win32 kernel driver.
  • Applied LibUsbDotNet kernel driver patches to libusb-win32 v0.1.12.2. LibUsbDotNet-libusb-win32 v2.1.12.2 kernel created.
  • Updated Test_Bulk application.
  • Removed all references to benchmark device. The Test_Bulk apllication is more universal and easier to tailor to specific devices.
  • Updated documentation.

New in LibUsbDotNet 2.0.2 (Mar 16, 2010)

  • Fixed Bug ID: 2833695 - USB rev. code treated as hex instead of bcd.
  • The USBSymbolicName class is converting the bcd revision number to a hex number.
  • Fixed Bug ID: 2833701 - InfWizard never populates the "Driver Information" property.
  • On the final wizard page of the InfWizard the "Driver Information" property under the "Info" category is never populated.
  • Added InfWizard remove device options form.
  • Added InfWizard disclaimers.
  • Added Benchmark PIC device firmware for MCP 2.5 USB stack.
  • Updated documentation.

New in LibUsbDotNet 2.0.1 (Mar 16, 2010)

  • Fixed Bug ID: 2816121 - UsbGlobals.OpenDevice(UsbDeviceFinder) Null reference exception
  • Calling UsbGlobals.OpenDevice(UsbDeviceFinder) generates an exception if the device is not found.
  • Fixed Bug ID: 2818621 - DeviceNotifier Invalid Marshal fieldName Exception
  • Field passed in is not a marshaled member of the type 'LibUsbDotNet.DeviceNotify.Internal.DevBroadcastPort'. Parameter name: fieldName.
  • Added 3 example projects.
  • Updated documentation.

New in LibUsbDotNet 2.0.0 (Mar 16, 2010)

  • Added Support for Microsofts generic user-mode usb driver, WinUsb.
  • Added Added kernel level support for libusb-win32.
  • Added Added a new and improved InfWizard.
  • Added Added advanced USB locking strategies for process/thread level usb device sharing.
  • Added Added Additional read/write functions added to the endpoint reader/writer classes.
  • Updated Updated documentation with SandCastle (SHFB). Documentation is now available in html and Microsoft Help .chm format.
  • Updated Updated LibUsbDotNet type and member names; they now adhere to strict naming conventions.
  • Added Added additional members and types for more easily locating and opening usb devices by:
  • VendorID
  • ProductID
  • Revision Code
  • Serial Number
  • Device Interface GUID

New in LibUsbDotNet 1.0.1 (Mar 16, 2010)

  • Updated Ported to C#2.0! Many API changes. See documentation.
  • Added Added Test_DeviceNotify sample project.
  • Fixed Fixed mising data issue with the DataReceived event.
  • Updated Rebuilt libusb core components with WINDDK 2003 (SP1).
  • Added Added Itanium 64bit support.
  • Fixed Fixed x64 installation error.

New in LibUsbDotNet 0.1.4 (Mar 16, 2010)

  • Removed Debug runtimes removed from the distributions to avoid confusion.
  • Added New Class Added. The DeviceNotify class is used for receiving device insertion/removal events. See documentation for full details.

New in LibUsbDotNet 0.1.3 (Mar 16, 2010)

  • Added Added lock routines to internal read/write functions to increase multi-threading stability.
  • Removed Removed dependencies on msvcmrt.lib.
  • Updated Project defaults changed to compiled with /clr:pure syntax.
  • Added Added 64bit support.
  • Fixed Fixed function ClibUsb.Open(InfoDevice). It will now open different devices with the same vendor and product id.
  • Added Added remove functions to the CLibUsb.ActiveEndPoints property (CEndPonts class)