UsbDk at a Glance 

Yan Vugenfirer
Yan VugenfirerCEO at Daynix Computing LTD
UsbDk at a Glance
Meet UsbDk
UsbDk stands for “USB Development Kit”
Universal engine for exclusive access to USB devices
on Windows OSes
Full user mode API for all device operations
Designed to support all types of USB devices
Generic API to allow wide range of use-cases
Designed with HCK certifications in mind
Hiding engine for total detachment of USB devices
from OS software stack
Feature set
Totally dynamic device capture

No INF files and no self-signing needed

Any device can be captured
Totally dynamic device detachment

Any device or class of devices may be hidden

Prevents Windows from showing "New Hardware” pop-ups for devices without in-box drivers

Great for security solutions
Co-existence with original device driver

When the device is not captured original driver is loaded by the system automatically

If user mode client terminates unexpectedly for any reason system reverts to original device driver immediately
Supports for all types of devices and interfaces

Bulk, isochronous, composite, HID, etc.
Being USB filter driver doesn't require WHQL-ing

as per Microsoft requirements
Advantages over WinUSB
Full feature parity
Full support for isochronous devices
Full support for composite devices
No INF files and no signing needed
Open source and community supported
Supported Windows
Versions
7
VistaXP
8 8.1
2008
2008

R2
2012
2012

R2
2003
UsbDk is open source
Hosted by:

http://www.spice-space.org
Mailing list:

spice-devel (http://lists.freedesktop.org/mailman/
listinfo/spice-devel)
Maintained by:

Dmitry Fleytman <dfleytma@redhat.com>

Dmitry Fleytman <dmitry@daynix.com>
License:

Apache 2.0
Git repository:

http://cgit.freedesktop.org/spice/win32/usbdk/
Build environment
Visual Studio 2013 Update 4
Windows Driver Kit (WDK) 8.1 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
UsbDk components
UsbDk.sys
UsbDkHelper.dll
UsbDkController.exe
Kernel mode
User mode
UsbDkHelper.dll API
Driver installation
Enumerate
USB devices
Driver un-installation
Capture USB
device
Pipe
transfer
Control
transfer
Configure
device
Reset
device
InstallAcquireOperate
Hide USB
device
UsbDk.sys structure
USB device
filter
USB hub filter
Control
interface
Generic USB
device driver
UsbDkHelper.dll
PNP Manager
Technical Info
See ARCHITECTURE document at source tree root

http://cgit.freedesktop.org/spice/win32/usbdk/tree/ARCHITECTURE
Software Development Manual

available on www.spice-space.org
Thank you!
1 of 12

Recommended

Linux systems - Getting started with setting up and embedded platform by
Linux systems - Getting started with setting up and embedded platformLinux systems - Getting started with setting up and embedded platform
Linux systems - Getting started with setting up and embedded platformEmertxe Information Technologies Pvt Ltd
12.8K views99 slides
AIDL - Android Interface Definition Language by
AIDL  - Android Interface Definition LanguageAIDL  - Android Interface Definition Language
AIDL - Android Interface Definition LanguageArvind Devaraj
6.1K views16 slides
Android Architecture by
Android ArchitectureAndroid Architecture
Android Architecturedeepakshare
17.7K views6 slides
Android architecture by
Android architectureAndroid architecture
Android architectureSaurabh Kukreja
6.4K views24 slides
شرح مبسط وبسيط لمفهوم ال VLAN by
شرح مبسط وبسيط لمفهوم ال VLANشرح مبسط وبسيط لمفهوم ال VLAN
شرح مبسط وبسيط لمفهوم ال VLANAliMohammad155
1.2K views12 slides
Introduction to Firmware by
Introduction to FirmwareIntroduction to Firmware
Introduction to FirmwareCaroline Murphy
6.4K views22 slides

More Related Content

What's hot

Linux OS presentation by
Linux OS presentationLinux OS presentation
Linux OS presentationSahilGothoskar
1.4K views16 slides
Virtualization by
Virtualization Virtualization
Virtualization Ydel Capales
1.4K views39 slides
Embedded Operating System - Linux by
Embedded Operating System - LinuxEmbedded Operating System - Linux
Embedded Operating System - LinuxEmertxe Information Technologies Pvt Ltd
936 views235 slides
Android Architecture.pptx by
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptxpriya Nithya
395 views9 slides
Binder: Android IPC by
Binder: Android IPCBinder: Android IPC
Binder: Android IPCShaul Rosenzwieg
2.8K views39 slides
Vi editor by
Vi editorVi editor
Vi editorRamakrishna kapa
4.5K views11 slides

What's hot(20)

Virtualization by Ydel Capales
Virtualization Virtualization
Virtualization
Ydel Capales1.4K views
Android Architecture.pptx by priya Nithya
Android Architecture.pptxAndroid Architecture.pptx
Android Architecture.pptx
priya Nithya395 views
Dotnet Frameworks Version History by voltaincx
Dotnet Frameworks Version HistoryDotnet Frameworks Version History
Dotnet Frameworks Version History
voltaincx14.2K views
Nakov - .NET Framework Overview - English by Svetlin Nakov
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
Svetlin Nakov3.9K views
Terminal Commands (Linux - ubuntu) (part-1) by raj upadhyay
Terminal Commands  (Linux - ubuntu) (part-1)Terminal Commands  (Linux - ubuntu) (part-1)
Terminal Commands (Linux - ubuntu) (part-1)
raj upadhyay2.5K views
Windows Architecture Explained by Stacksol by Stacksol
Windows Architecture Explained by StacksolWindows Architecture Explained by Stacksol
Windows Architecture Explained by Stacksol
Stacksol37.1K views
Windows Kernel- by Parth Desai
Windows Kernel-Windows Kernel-
Windows Kernel-
Parth Desai1.9K views
Android : Architecture & Components by Akash Bisariya
Android : Architecture & ComponentsAndroid : Architecture & Components
Android : Architecture & Components
Akash Bisariya1.5K views
What is Kernel, basic idea of kernel by Neel Parikh
What is Kernel, basic idea of kernelWhat is Kernel, basic idea of kernel
What is Kernel, basic idea of kernel
Neel Parikh5.8K views
Windows Communication Foundation (WCF) by Peter R. Egli
Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF)
Peter R. Egli10.3K views

Similar to UsbDk at a Glance 

Introduction to everything around Android by
Introduction to everything around AndroidIntroduction to everything around Android
Introduction to everything around AndroidBipin Jethwani
413 views112 slides
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8) by
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)Intergen
1K views28 slides
usb-lock-rp-en by
usb-lock-rp-enusb-lock-rp-en
usb-lock-rp-enJavier Arrospide
247 views3 slides
Window IoT Mod 1.pdf by
Window IoT Mod 1.pdfWindow IoT Mod 1.pdf
Window IoT Mod 1.pdfOshofisanOlusholaShe
4 views35 slides
Yerevan Cloud Camp & Hackathon - Internet of Things & Microsoft by
Yerevan Cloud Camp & Hackathon - Internet of Things & MicrosoftYerevan Cloud Camp & Hackathon - Internet of Things & Microsoft
Yerevan Cloud Camp & Hackathon - Internet of Things & MicrosoftMicrosoft
606 views26 slides
Android Part-1 - Hello Android by
Android Part-1 - Hello AndroidAndroid Part-1 - Hello Android
Android Part-1 - Hello AndroidBipin Jethwani
316 views75 slides

Similar to UsbDk at a Glance (20)

Introduction to everything around Android by Bipin Jethwani
Introduction to everything around AndroidIntroduction to everything around Android
Introduction to everything around Android
Bipin Jethwani413 views
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8) by Intergen
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)
Windows Accelerate IT Pro Bootcamp: Windows ToGo (Module 3 of 8)
Intergen1K views
Yerevan Cloud Camp & Hackathon - Internet of Things & Microsoft by Microsoft
Yerevan Cloud Camp & Hackathon - Internet of Things & MicrosoftYerevan Cloud Camp & Hackathon - Internet of Things & Microsoft
Yerevan Cloud Camp & Hackathon - Internet of Things & Microsoft
Microsoft606 views
Android Part-1 - Hello Android by Bipin Jethwani
Android Part-1 - Hello AndroidAndroid Part-1 - Hello Android
Android Part-1 - Hello Android
Bipin Jethwani316 views
Quarter 2_W2_D5_CSS.pptx by KurtGardy
Quarter 2_W2_D5_CSS.pptxQuarter 2_W2_D5_CSS.pptx
Quarter 2_W2_D5_CSS.pptx
KurtGardy4 views
Making a Headless Android Device (Oslo Embedded Meetup 2018) by Patricia Aas
Making a Headless Android Device (Oslo Embedded Meetup 2018)Making a Headless Android Device (Oslo Embedded Meetup 2018)
Making a Headless Android Device (Oslo Embedded Meetup 2018)
Patricia Aas2.7K views
SanDisk SecureAccess Encryption - Forensic Processing & USB Flashing by Brent Muir
SanDisk SecureAccess Encryption - Forensic Processing & USB FlashingSanDisk SecureAccess Encryption - Forensic Processing & USB Flashing
SanDisk SecureAccess Encryption - Forensic Processing & USB Flashing
Brent Muir23.6K views
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP by Javier Arrospide
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUPREMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP
Javier Arrospide473 views
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP by Network_security
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUPREMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP
REMOVABLE STORAGE CENTRALIZED CONTROL FOR WINDOWS LAN, WAN, OR WORKGROUP
Network_security139 views
Quarter 2_W2_D5_CSS.pptx by KurtGardy
Quarter 2_W2_D5_CSS.pptxQuarter 2_W2_D5_CSS.pptx
Quarter 2_W2_D5_CSS.pptx
KurtGardy3 views
Ch1 hello, android by Jehad2012
Ch1 hello, androidCh1 hello, android
Ch1 hello, android
Jehad2012658 views
Key vocabulary 10 &amp; 11 g by CDI Aljeer
Key vocabulary 10 &amp; 11 gKey vocabulary 10 &amp; 11 g
Key vocabulary 10 &amp; 11 g
CDI Aljeer 145 views
Key vocabulary 10 &amp; 11 g by CDI Aljeer
Key vocabulary 10 &amp; 11 gKey vocabulary 10 &amp; 11 g
Key vocabulary 10 &amp; 11 g
CDI Aljeer 2.4K views
Device drivers and their applications by AliddekiBryan
Device drivers and their applicationsDevice drivers and their applications
Device drivers and their applications
AliddekiBryan31 views
Making a Headless Android Device by Patricia Aas
Making a Headless Android DeviceMaking a Headless Android Device
Making a Headless Android Device
Patricia Aas5.7K views
Windows Embedded in the Real World by ukdpe
Windows Embedded in the Real WorldWindows Embedded in the Real World
Windows Embedded in the Real World
ukdpe510 views

More from Yan Vugenfirer

HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko... by
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...Yan Vugenfirer
88 views41 slides
Receive side scaling (RSS) with eBPF in QEMU and virtio-net by
Receive side scaling (RSS) with eBPF in QEMU and virtio-netReceive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-netYan Vugenfirer
678 views34 slides
Implementing SR-IOv failover for Windows guests during live migration by
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migrationYan Vugenfirer
296 views37 slides
Qemu device prototyping by
Qemu device prototypingQemu device prototyping
Qemu device prototypingYan Vugenfirer
280 views41 slides
Windows network teaming by
Windows network teamingWindows network teaming
Windows network teamingYan Vugenfirer
117 views14 slides
Rebuild presentation - IoT Israel MeetUp by
Rebuild presentation - IoT Israel MeetUpRebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUpYan Vugenfirer
963 views60 slides

More from Yan Vugenfirer(14)

HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko... by Yan Vugenfirer
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...
HCK-CI: Enabling CI for Windows Guest Paravirtualized Drivers - Kostiantyn Ko...
Yan Vugenfirer88 views
Receive side scaling (RSS) with eBPF in QEMU and virtio-net by Yan Vugenfirer
Receive side scaling (RSS) with eBPF in QEMU and virtio-netReceive side scaling (RSS) with eBPF in QEMU and virtio-net
Receive side scaling (RSS) with eBPF in QEMU and virtio-net
Yan Vugenfirer678 views
Implementing SR-IOv failover for Windows guests during live migration by Yan Vugenfirer
Implementing SR-IOv failover for Windows guests during live migrationImplementing SR-IOv failover for Windows guests during live migration
Implementing SR-IOv failover for Windows guests during live migration
Yan Vugenfirer296 views
Rebuild presentation - IoT Israel MeetUp by Yan Vugenfirer
Rebuild presentation - IoT Israel MeetUpRebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUp
Yan Vugenfirer963 views
Rebuild presentation during Docker's Birthday party by Yan Vugenfirer
Rebuild presentation during Docker's Birthday partyRebuild presentation during Docker's Birthday party
Rebuild presentation during Docker's Birthday party
Yan Vugenfirer646 views
Contributing to open source using Git by Yan Vugenfirer
Contributing to open source using GitContributing to open source using Git
Contributing to open source using Git
Yan Vugenfirer385 views
Microsoft Hardware Certification Kit (HCK) setup by Yan Vugenfirer
Microsoft Hardware Certification Kit (HCK) setupMicrosoft Hardware Certification Kit (HCK) setup
Microsoft Hardware Certification Kit (HCK) setup
Yan Vugenfirer6.4K views
Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ... by Yan Vugenfirer
Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ...Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ...
Building “old” Windows drivers (XP, Vista, 2003 and 2008) with Visual Studio ...
Yan Vugenfirer6.3K views
Advanced NDISTest options by Yan Vugenfirer
Advanced NDISTest optionsAdvanced NDISTest options
Advanced NDISTest options
Yan Vugenfirer1.6K views
QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan... by Yan Vugenfirer
QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan...QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan...
QEMU Development and Testing Automation Using MS HCK - Anton Nayshtut and Yan...
Yan Vugenfirer5.2K views
Windows guest debugging presentation from KVM Forum 2012 by Yan Vugenfirer
Windows guest debugging presentation from KVM Forum 2012Windows guest debugging presentation from KVM Forum 2012
Windows guest debugging presentation from KVM Forum 2012
Yan Vugenfirer15.6K views

Recently uploaded

NTGapps NTG LowCode Platform by
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform Mustafa Kuğu
437 views30 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
137 views13 slides
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...ShapeBlue
108 views12 slides
MVP and prioritization.pdf by
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
39 views8 slides
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...ShapeBlue
183 views18 slides
The Role of Patterns in the Era of Large Language Models by
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language ModelsYunyao Li
91 views65 slides

Recently uploaded(20)

NTGapps NTG LowCode Platform by Mustafa Kuğu
NTGapps NTG LowCode Platform NTGapps NTG LowCode Platform
NTGapps NTG LowCode Platform
Mustafa Kuğu437 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue183 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li91 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue171 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue196 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue141 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue129 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue224 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec... by BookNet Canada
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
Transcript: Redefining the book supply chain: A glimpse into the future - Tec...
BookNet Canada41 views
The Power of Generative AI in Accelerating No Code Adoption.pdf by Saeed Al Dhaheri
The Power of Generative AI in Accelerating No Code Adoption.pdfThe Power of Generative AI in Accelerating No Code Adoption.pdf
The Power of Generative AI in Accelerating No Code Adoption.pdf
Saeed Al Dhaheri39 views
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De... by Moses Kemibaro
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Moses Kemibaro35 views

UsbDk at a Glance 

  • 1. UsbDk at a Glance
  • 2. Meet UsbDk UsbDk stands for “USB Development Kit” Universal engine for exclusive access to USB devices on Windows OSes Full user mode API for all device operations Designed to support all types of USB devices Generic API to allow wide range of use-cases Designed with HCK certifications in mind Hiding engine for total detachment of USB devices from OS software stack
  • 3. Feature set Totally dynamic device capture
 No INF files and no self-signing needed
 Any device can be captured Totally dynamic device detachment
 Any device or class of devices may be hidden
 Prevents Windows from showing "New Hardware” pop-ups for devices without in-box drivers
 Great for security solutions Co-existence with original device driver
 When the device is not captured original driver is loaded by the system automatically
 If user mode client terminates unexpectedly for any reason system reverts to original device driver immediately Supports for all types of devices and interfaces
 Bulk, isochronous, composite, HID, etc. Being USB filter driver doesn't require WHQL-ing
 as per Microsoft requirements
  • 4. Advantages over WinUSB Full feature parity Full support for isochronous devices Full support for composite devices No INF files and no signing needed Open source and community supported
  • 6. UsbDk is open source Hosted by:
 http://www.spice-space.org Mailing list:
 spice-devel (http://lists.freedesktop.org/mailman/ listinfo/spice-devel) Maintained by:
 Dmitry Fleytman <dfleytma@redhat.com>
 Dmitry Fleytman <dmitry@daynix.com> License:
 Apache 2.0 Git repository:
 http://cgit.freedesktop.org/spice/win32/usbdk/
  • 7. Build environment Visual Studio 2013 Update 4 Windows Driver Kit (WDK) 8.1 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
  • 9. UsbDkHelper.dll API Driver installation Enumerate USB devices Driver un-installation Capture USB device Pipe transfer Control transfer Configure device Reset device InstallAcquireOperate Hide USB device
  • 10. UsbDk.sys structure USB device filter USB hub filter Control interface Generic USB device driver UsbDkHelper.dll PNP Manager
  • 11. Technical Info See ARCHITECTURE document at source tree root
 http://cgit.freedesktop.org/spice/win32/usbdk/tree/ARCHITECTURE Software Development Manual
 available on www.spice-space.org