Usb Drivers Development Kit for Windows
Find a file
Sameeh Jubran 5dda7555c5 Installer: Abort installation if the driver fails to start
Currently, in some cases, attempting to start the driver can fail
and cause Usb devices to become non functional. An example of such
case is attemteting to install an unsigned version of UsbDk on Windows
where the driver signature enforcement is enabled. The reason why this
happens is not making sure the driver can start on the system prior to
attaching it to all of the devices.

This patch solves this issue by checking that the driver can start on the
system prior to step 2 in the list below.

UsbDk's installation process:
1) Create and register UsbDk's service
2) Add UsbDk to the registry
3) Reset all Usb host conrollers on the system
4) PNP manager attaches and starts the driver for each Usb device's stack

Signed-off-by: Sameeh Jubran <sameeh@daynix.com>
Signed-off-by: Dmitry Fleytman <dfleytma@redhat.com>
2017-05-29 16:45:38 +03:00
Documentation Documentation: Update tracing documentation 2017-05-29 10:28:06 +03:00
Tools tools: Add BAT file for recording of binary trace 2017-05-29 10:27:24 +03:00
UsbDk Build: Introduce debug configurations without test signing 2017-04-06 13:24:06 +03:00
UsbDk Package Build: Introduce debug configurations without test signing 2017-04-06 13:24:06 +03:00
UsbDkController Installer: Abort installation if the driver fails to start 2017-05-29 16:45:38 +03:00
UsbDkHelper Installer: Abort installation if the driver fails to start 2017-05-29 16:45:38 +03:00
UsbDkInstHelper Installer: Abort installation if the driver fails to start 2017-05-29 16:45:38 +03:00
.editorconfig UsbDk: Introduce .editorconfig file 2014-06-22 09:31:22 +03:00
.gitignore Build: Introduce debug configurations without test signing 2017-04-06 13:24:06 +03:00
ARCHITECTURE ARCHITECTURE: Extend hider API description 2015-02-26 15:49:46 +02:00
buildAll.bat build: Build TMF files after building all binaries 2017-05-29 10:27:07 +03:00
LICENSE UsbDk: Add license-related files and headers 2014-05-20 11:56:20 +03:00
MAINTAINERS Global: Introduce MAINTAINERS file 2015-02-17 09:49:14 +02:00
README.md Documentation: Update for VS 2015 and Windows 10 2017-04-03 15:06:48 +03:00
UsbDk.sln Build: Introduce debug configurations without test signing 2017-04-06 13:24:06 +03:00

UsbDk

UsbDk (USB Development Kit) is a open-source library for Windows meant to provide user mode applications with direct and exclusive access to USB devices by detaching those from Windows PNP manager and device drivers and providing user mode with API for USB-specific operations on the device.

The library is intended to be as generic as possible, support all types of USB devices, bulk and isochronous transfers, composite devices etc.

Library supports all Windows OS versions starting from Windows XP/2003.

Documentation

  • See ARCHITECTURE document in the source tree root.
  • See Documentation folder in the source tree root.
  • See UsbDkHelper\UsbDkHelper.h UsbDkHelper\UsbDkHelperHider.h for API documentation

Building

Tools required:

  • Visual Studio 2015/Visual Studio 2015 Express update 3 or newer
  • WDK 10
  • Windows 10 SDK
  • Wix Toolset V3.8 (for building MSI installer)
  • WDK 7.1 (for Windows XP/2003/Vista/2008 builds)

Compilation

Just open UsbDk.sln from the source tree root in Visual Studio 2015 and compile desired configuration.

Installing and running

Use UsbDkController.exe to install/uninstall and verify basic operation. Run UsbDkController.exe without parameters for command line options.

Known issues

  • Installation on 64-bit versions of Windows 7 fails if security update 3033929 is not installed. Reason: UsbDk driver is signed by SHA-256 certificate. Without this update Windows 7 does not recognize the signature properly and fails to load the driver.