[Spice-devel] [PATCH v7 00/10] Add support for UsbDk backend

Dmitry Fleytman dmitry at daynix.com
Thu Feb 11 16:04:44 UTC 2016


Changes since v6:
- patches changed and reordered according to Jonathon recommentations (Jonathon, thanks for the great review!)
- rebased to the latest master

Changes since v5:
- fixed build without USB redirection
- cosmetic changes and beautifications
- rebased to the latest master

Changes since v4:
- minor fixes as suggested by Christophe

Changes since v3:
-fix commit author
-fix "usbdk standalone fix" commit description
-fix too long lines in usbdk_api.c file

Changes since v2:
-use Christophe's split
-fix usbdk standalone mode (usb redirection widget gray out when usbclerk not installed)
-use match_all constant at rule parsing
-cosmetic fixes

Changes since v1:
-opaque usbdk wrapper
-use_usbclerk instead of use_usbdk
-use_usbclerk is DeviceManager member, not global variable
-all v1 suggestions were applied

UsbDk (USB Development Kit) is a set of software components meant to provide
Windows user mode applications with direct and exclusive access to USB devices.

Some distinctive UsbDk properties are:

1. UsbDk supports all types of devices and interfaces - bulk, isochronous,
   composite, HID etc.
2. Device capture process is totally dynamic, i.e. no inf files and
   self-signing needed, any device can be captured.
3. UsbDk co-exists with original device driver, when the device is not
   captured original driver is loaded by the system automatically.
4. If user mode client terminates unexpectedly for any reason system reverts
   to original device driver immediately.
5. Being USB filter driver UsbDk doesn't require WHQL-ing
   as per Microsoft requirements.

UsbDk supports all Windows OS versions staring from Windows XP,
i.e. XP/Vista/7/8/8.1/2003/2008/2008R2/2012/2012R2.
Both 32 and 64 bit architectures are supported.

UsbDk is fully open source and distributed under Apache 2.0 license.

UsbDk project is hosted at spice-space.org, source code repository available at:
http://cgit.freedesktop.org/spice/win32/usbdk

Latest source tarball is at: \
http://www.spice-space.org/download/windows/usbdk/spice-usbdk-win-1.0-4-sources.zip

UsbDk releases come with precompiled and signed by Red Hat binaries:
1. 32 bit: http://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.4_x86.msi
2. 64 bit: http://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.4_x64.msi

UsbDk documentation:
1. Short presentation: http://www.spice-space.org/docs/usbdk/UsbDk_at_a_Glance.pdf
2. SDM: http://www.spice-space.org/docs/usbdk/UsbDk_Software_Development_Manual.pdf
3. UsbDk architecture specificatin (part of source tree):
   http://cgit.freedesktop.org/spice/win32/usbdk/tree/ARCHITECTURE

UsbDk is maintained by Dmitry Fleytman (dfleytma at redhat.com) and
Kirill Moizik (kmoizik at redhat.com) we'll be glad to answer your questions sent
to us directly or via this mailing list.

This set of patches add UsbDk backend support to spice-gtk.

Christophe Fergeau (3):
  Simplify spice_usb_device_equal_libdev()
  Simplify spice_usb_device_manager_device_to_libdev()
  Add SpiceUsbDeviceManager parameter to device comparison functions

Dmitry Fleytman (7):
  win-usbredir: Introduce UsbDk wrapper
  win-usbredir: Only match USB devices by VID:PID when WinUsb used
  usbdk: Load hide rules for auto-redirected devices
  win-usbredir: Move installer interaction logic to separate functions
  win-usbredir: Do not use UsbClerk for non-WinUsb backends
  win-usbredir: Use UsbDk backend when available
  usb-dev-manager: Fix cbinfo leak in case of abnormal return

 src/Makefile.am          |   2 +
 src/usb-device-manager.c | 363 +++++++++++++++++++++++++++++++----------------
 src/usbdk_api.c          | 187 ++++++++++++++++++++++++
 src/usbdk_api.h          |  34 +++++
 4 files changed, 465 insertions(+), 121 deletions(-)
 create mode 100644 src/usbdk_api.c
 create mode 100644 src/usbdk_api.h

-- 
2.5.0



More information about the Spice-devel mailing list