Fwd: [Spice-devel] UsbDk project as Windows USB redirection engine for Spice Client

Xiaofan Chen <[email protected]> Thu, 26 Feb 2015 22:03:59 +0800
Newsgroups gmane.comp.lib.libusb.devel.windows,gmane.comp.lib.libusb.devel.general
Message-ID <CAGjSPUC1_1452cgFCnMT67ziyWYCrJ2MxhFcPPeGRrk9xa7Ejw@mail.gmail.com>
Hi list,

This is interesting.

This seems to be similar to the idea of libusb-win32 filter
driver (which does not work for quite some device now
and is also poorly supported by libusb Windows back end).

Regards,
Xiaofan


---------- Forwarded message ----------
From: Dmitry Fleytman <[email protected]>
Date: Thu, Feb 26, 2015 at 9:41 PM
Subject: [Spice-devel] UsbDk project as Windows USB redirection engine
for Spice Client
To: [email protected]
Cc: Yan Vugenfirer <[email protected]>, Kirill Moizik
<[email protected]>, Kirill Moizik <[email protected]>


Hi All,

We are happy to announce the USB Development Kit (UsbDk) project.

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

This goal is achieved by by detaching given USB device from Windows PNP
manager and device drivers stack and providing user mode with API for
USB-specific operations on the device.

Initial intention of the kit is USB device redirection support for
spice remote desktop application however it may be used for any other
purpose directly via native UsbDk API or using libusb (we are providing libusb
Windows backend extensions for UsbDk).

Some distinctive UsbDk properties are:

1. Device capture process is totally dynamic, i.e. no inf files and
   no self-signing needed, any device can be captured.
2. UsbDk co-exists with original device driver, when the device is not
   captured original driver is loaded by the system automatically.
3. If user mode client terminates unexpectedly for any reason system reverts
   to original device driver immediately.
4. UsbDk supports all types of devices and interfaces - bulk, isochronous,
   composite, HID etc.
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 source code repository is 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-2-sources.zip

Precompiled and signed by Red Hat binaries are available at:
1. 32 bit: http://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.2_x86.msi
2. 64 bit: http://www.spice-space.org/download/windows/usbdk/UsbDk_1.0.2_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

USB Development Kit software consists of Windows USB filter driver (UsbDk.sys),
API DLL (UsbDkHelper.dll), simple command line application (UsbDkController.dll)
for API usage demonstration and verification.

Additionally we've created patches for libusb that allow usage of UsbDk
as backend on Windows operating systems and submitting those patches to
libusb-devel mailing list.

Having UsbDk patches applied to libusb it is fairly easy to use UsbDk as USB
devices redirection engine for Spice-GTK. We've created a set of patches to
allow run-time selection of redirection engine (WinUsb/UsbDk) and will be
submitting those to this list soon.

UsbDk is maintained by Dmitry Fleytman ([email protected]) and
Kirill Moizik ([email protected]), we will be glad to answer your
questions sent
to us directly or via this mailing list.

Enjoy it and best regards,
Dmitry

_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel

------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/