usbdk at a glanceusbdk_at_a_glance author dmitry fleytman created date 4/19/2017 7:55:53 am
TRANSCRIPT
![Page 1: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/1.jpg)
UsbDk at a Glance
![Page 2: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/2.jpg)
Meet UsbDk
UsbDk stands for “USB Development Kit”Universal engine for exclusive access to USB devices on Windows OSesFull user mode API for all device operationsDesigned to support all types of USB devicesGeneric API to allow wide range of use-casesDesigned with HCK certifications in mindHiding engine for total detachment of USB devices from OS software stack
![Page 3: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/3.jpg)
Feature setTotally dynamic device captureNo INF files and no self-signing neededAny device can be captured
Totally dynamic device detachmentAny device or class of devices may be hiddenPrevents Windows from showing "New Hardware” pop-ups for devices without in-box driversGreat for security solutions
Co-existence with original device driverWhen the device is not captured original driver is loaded by the system automaticallyIf user mode client terminates unexpectedly for any reason system reverts to original device driver immediately
Supports for all types of devices and interfacesBulk, isochronous, composite, HID, etc.
Being USB filter driver doesn't require WHQL-ingas per Microsoft requirements
![Page 4: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/4.jpg)
Advantages over WinUSB
Full feature parityFull support for isochronous devicesFull support for composite devicesNo INF files and no signing neededOpen source and community supported
![Page 5: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/5.jpg)
Supported Windows Versions
7
VistaXP
8 8.1
2008
2008R2 2012 2012
R2
2003
10
2016
![Page 6: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/6.jpg)
UsbDk is open sourceHosted by:http://www.spice-space.org
Mailing list:spice-devel(http://lists.freedesktop.org/mailman/listinfo/spice-devel)
Maintained by:Dmitry Fleytman <[email protected]>Dmitry Fleytman <[email protected]>
License:Apache 2.0
Git repository:http://cgit.freedesktop.org/spice/win32/usbdk/
![Page 7: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/7.jpg)
Build environment
Visual Studio 2015
Windows Driver Kit (WDK) 10 for Windows 7/2008R2 and later platforms
Software Development Kit (SDK) 10 for Windows 7/2008R2 and later platforms
Windows 7 DDK (WDK 7.1) for Windows XP, 2003, Vista, 2008
WiX toolset 3.8 for MSI packages creation
![Page 8: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/8.jpg)
UsbDk components
UsbDk.sys
UsbDkHelper.dll
UsbDkController.exe
Kernel mode
User mode
![Page 9: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/9.jpg)
UsbDkHelper.dll API
Driver installation
Enumerate USB devices
Driver un-installation
Capture USB device
Pipe transfer
Control transfer
Configure device
Reset device
Inst
allAc
quire
Ope
rate
Hide USB device
![Page 10: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/10.jpg)
UsbDk.sys structure
USB device filterUSB hub filter
Control interface
Generic USB device driver
UsbDkHelper.dll
PNP Manager
![Page 11: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/11.jpg)
Technical Info
See ARCHITECTURE document at source tree roothttp://cgit.freedesktop.org/spice/win32/usbdk/tree/ARCHITECTURE
Software Development Manualavailable on www.spice-space.org
![Page 12: UsbDk at a GlanceUsbDk_at_a_Glance Author Dmitry Fleytman Created Date 4/19/2017 7:55:53 AM](https://reader036.vdocument.in/reader036/viewer/2022071002/5fbf4b44b653245ac91cf2be/html5/thumbnails/12.jpg)
Thank you!