Universal USB Development Kit for Windows 10, 8.1, 8 and 7
FeaturesSupported PlatformsDemoPrices
Try connecting the USB with the computer powered on Also if by chance your computer has a USB 3.0 port as well as USB 2.0 ports and you are connecting to a USB 3.0 try a USB 2.0 port When the computer see a connection and decides it is a generic USB device it is NOT seeing the SD card all it is seeing is a USB device connected. Generic USB redirection is supported for USB 2.0 and earlier devices. Generic USB redirection is also supported for USB 3.0 devices connected to a USB 2.0 or USB 3.0 port. Generic USB redirection does not support USB features introduced in USB 3.0, such as super speed. These Citrix Workspace apps support generic USB redirection.
Standard USB devices are normally supported by class drivers included in the Windows operating system. In many cases, a particular USB device cannot be assigned to a device class because it has to fulfill different requirements, or because implementing the class specification in the device firmware is too time-consuming. This makes a custom USB device driver development necessary; a kernel-mode driver which conforms to the Windows Driver Model (WDM).
The development and debugging process of such a kernel-mode driver is very time-consuming, especially if the driver has to support different Windows versions. For this reason, Thesycon has developed the generic USB device driver USBIO. The USBIO software components can be integrated into a final product with product-specific adaptations (e.g. file names, installation paths, copyright messages). The result is a customized version that can be shipped as part of an end user product.
- Complete USB functionality is supported. The driver is optimized for maximum efficiency. The USBIO driver supports USB 3.0, USB 2.0 and USB 1.1. It supports low, full, high speed and super speed mode.
- The USBIO driver supports all current 32 bit and 64 bit Windows operating systems.
- Supports the USB transfer types Control, Interrupt, Bulk, and Isochronous.
- Provides an interface to USB endpoints (pipes) that is similar to Win32 file I/O interface.
- Provides full support for asynchronous (overlapped) data transfer operations.
- Fully support for hot plug and play. It supports Plug&Play notifications for applications.
- Supports the Windows power management model.
- Optionally the driver supports advanced USB power management including selective suspend (Windows 10 only)
- Provides an interface to USB devices that can be used by any Windows 32/64 bit applications. Multiple applications can use the USBIO driver at the same time.
- Can be used with devices that implement multiple USB configurations. It supports switching between different USB configurations.
- Can be used with devices that implement multiple USB interfaces. In this case a multi-interface driver is required.
- Multiple USB devices can be controlled by USBIO at the same time.
- Provides a Windows programming interface for use in C, C++ and Java programs. A high-level programming interface, the USBIO COM interface, is also available.
- Several source code examples demonstrate usage of the programming interfaces and show how an application controls a USB device.
- The driver will be delivered fully customized for licensee’s product.
- Customization includes USB VID/PID, file names, text strings, etc.
- Windows 10 version of the driver is signed with Microsoft Attestation signing.
- Windows 7/8 version of the driver is signed with Thesycon’s code signing certificate.
- Driver Customization Kit add-on: The Driver Customization Kit enables licensee to customize the driver by themselves.
- Supported scenarios: first-time installation, driver update, removal of driver software
- Interactive mode with graphical user interface
- Silent mode without user interface, enables integration into surrounding software installers
- Supports popup-free installation
The driver is conform with current WHQL and Hardware Lab Kit (HLK) requirements. To get a WHQL certification, HLK tests must be executed with licensee's device which can be done by licensee or Thesycon. If you are interested in a WHQL certification, please contact Thesycon for a quotation.
Windows 8.1
Windows 8
Windows 7
Windows Embedded Standard 7 (WES7)
Windows Embedded Enterprise 7
Windows Embedded POSReady 7
Windows Embedded Server
Windows Server 2012
Windows Home Server 2011
Windows Server 2008 R2
Our software is purely designed and implemented by our team in Germany - no outsourcing. Technical support is provided directly by the developers.
Current version: 3.40
To receive a free demo, prices or license agreement, please fill out the contact form.
The free evaluation version of the USBIO driver works for an interval of 60 days without any limitation. After that evaluation period has expired, the driver stops working.
NOTE: The driver described on this page is *not for use by end users*. It will not help solve any problems you may experience with a consumer device such as a webcam, camcorder, card reader, external sound card, etc. Thesycon’s device drivers are software components intended to be used by hardware or software manufacturers to create end products.
For each USB device model an official USB vendor ID (VID) is required. Vendor IDs must be unique and will be assigned by the USB Implementers Forum (www.usb.org). Registration fees will be charged.
Thesycon owns a USB vendor ID and provides a subset of product IDs (PID) to licensees of Thesycon drivers.
© 2021 THESYCON
-->The USBSAMP sample demonstrates how to perform full speed, high speed, and SuperSpeed transfers to and from bulk and isochronous endpoints of a generic USB device. USBSAMP is based on the Kernel Mode Driver Framework (KMDF). Superspeed bulk and isochronous transfers only work when the Microsoft USB 3.0 stack is loaded.
The sample also contains a console test application that initiates bulk (including stream) and isochronous transfers and obtains data from the device's I/O endpoints. The application also demonstrates how to use GUID-based device names and pipe names generated by the operating system using the SetupDiXXX user-mode APIs.
For information about USB, see Universal Serial Bus (USB) Drivers.
Universal Windows Driver Compliant
This sample builds a Universal Windows Driver. It uses only APIs and DDIs that are included in OneCoreUAP.
Hardware requirements
The sample driver can be loaded as the function driver for any of these devices:
- OSR FX2 learning kit. You can get the kit from OSR Online. For more information, see the specification for the OSR USB FX-2 Learning Kit
- MUTT devices. To order those devices, see How to get MUTT devices.
- Intel 82930 USB test board.
If you have a different USB device, you can still use the driver by adding the device's hardware ID to the INX file. Note that the data transfer scenarios will work only with the endpoints supported by the device.
Set the configuration and platform in Visual Studio
In Visual Studio, in Solution Explorer, right click Solution 'usbsamp' (3 projects), and choose Configuration Manager. Set the configuration and the platform. Make sure that the configuration and platform are the same for both the driver project and the package project. Do not check the Deploy boxes.
Build the sample using Visual Studio
In Visual Studio, on the Build menu, choose Build Solution.
For more information about using Visual Studio to build a driver package, see Building a Driver with Visual Studio and the WDK.
Locate the built driver
In File Explorer, navigate to the folder that contains your built driver package. The location of this folder varies depending on what you set for configuration and platform. For example, if your settings are Debug and x64, the driver is in your solution folder under sysdriverDebugusbsamp.
The driver folder contains these files:
File | Description |
---|---|
usbsamp.sys | The driver file |
usbsamp.inf | An information (INF) file that contains information needed to install the driver. |
kmdfsamples.cat | A signed catalog file, which serves as the signature for the entire package. |
Run the sample
The computer where you install the driver is called the target computer or the test computer. Typically this is a separate computer from where you develop and build the driver package. The computer where you develop and build the driver is called the host computer.
The process of moving the driver package to the target computer and installing the driver is called deploying the driver. You can deploy the USBSAMP sample automatically or manually.
Automatic deployment
Before you automatically deploy a driver, you must provision the target computer. For instructions, see Provision a computer for driver deployment and testing (WDK 10).
On the host computer, in Visual Studio, in Solution Explorer, right click package (lower case), and choose Properties. Navigate to Configuration Properties > Driver Install > Deployment.
Check Enable deployment, and check Remove previous driver versions before deployment. For Target Computer Name, select the name of a target computer that you provisioned previously. Select Install and Verify. Click OK.
On the Build menu, choose Deploy Package or Build Solution.
Manual deployment
Before you manually deploy a driver, you must turn on test signing and install a certificate on the target computer. You also need to copy the DevCon tool to the target computer. For instructions, see Preparing a Computer for Manual Driver Deployment.
Copy all of the files in your driver package to a folder on the target computer (for example, c:Usbsamp).
On the target computer, open a Command Prompt window as Administrator. Navigate to your driver package folder, and enter the following command:
devcon install usbsamp.inf USBVID_045E&PID_078F
View the device in Device Manager
On the target computer, in a Command Prompt window, enter devmgmt to open Device Manager. In Device Manager, on the View menu, choose Devices by type. In the device tree, locate the device. For example the device name might be WDF Sample for FX2 MUTT device under theSample Device node.
Build the sample using MSBuild
Generic Provider USB Devices Driver
As an alternative to building the USBSAMP sample in Visual Studio, you can build it in a Visual Studio Command Prompt window. In Visual Studio, on the Tools menu, choose Visual Studio Command Prompt. In the Visual Studio Command Prompt window, navigate to the folder that has the solution file, Usbsamp.sln. Use the MSBuild command to build the solution. Here are some examples:
Generic Usb Driver For Windows 10
For more information about using MSBuild to build a driver package, see Building a Driver with Visual Studio and the WDK.
Testing the sample
The sample includes a test application, usbsamp.exe. This console application enumerates the interface registered by the driver and opens the device to send Read, Write, or DeviceIoControl requests based on the command line options. To test the sample,
In Visual Studio, choose Solution Explorer from the View menu. Locate the application project named usbsamp, under the Exe folder.
Right-click and choose Build. For example, if your settings are Debug and x64, the application executable is in your solution folder under the exeDebugusbsamp.exe.
Run the executable on the target machine.
To view all descriptors and endpoint information, use the following command.
usbsamp.exe -u
You can use the preceding command to view pipe numbers for read and write requests.
To send a Read-Write request, use the following command.
usbsamp.exe -r 1024 -w 1024 -c 100 -v
The preceding command first writes 1024 bytes of data to bulk out endpoint (pipe 1), then reads 1024 bytes from bulk in endpoint (pipe 0), and compares the read buffer with write buffer to see if they match. If the buffer contents match, it performs this operation 100 times.
To send Read-Write requests to bulk endpoints, use any of the following commands, simultaneously. If Read-Write requests are sent to a SuperSpeed bulk endpoint with streams, the sample driver always uses the first underlying stream associated with that endpoint. The driver is multi-thread safe so it can handle multiple requests at a time.
usbsamp.exe -r 65536
The preceding command reads 65536 bytes from pipe 0.
usbsamp.exe -w 65536
The preceding command writes 65536 bytes to pipe 1.
usbsamp.exe -r 65536 -i pipe02
The preceding command reads 65536 bytes from pipe 2.
usbsamp.exe -w 65536 -o pipe03
The preceding command writes 65536 bytes to pipe 3.
To send Read and Write requests to isochronous endpoints you can use one or more of these commands simultaneously.
usbsamp.exe -r 512 -i pipe04
The preceding command reads 512 bytes from pipe 4.
usbsamp.exe -w 512 -o pipe05
The preceding command writes 512 bytes to pipe 5.
usbsamp.exe -w 1024 -o pipe05 -r 1024 -i pipe04 -c 100 -v
The preceding command writes 1024 bytes to pipe 5, then reads 1024 bytes from pipe 4, and compares the buffers to see if they match. If the buffer contents match, it performs this operation 100 times.
To skip validation of the data to be read or written in a particular request, use the command with -x option as follows:
usbsamp.exe -r 1024 -w 1024 -c 100 -x