Misusing the “USB” class can lead to significant reliability and performance issues. How to create a driver package that installs Winusb. The WinUSB interface handle corresponds to the first interface. AddReg section of your custom INF. You may also leave feedback directly on GitHub. For device-to-host transfers, set RequestType to 1. The Index and Value members are not required for this request, so they are set to zero.

Uploader: Fenricage
Date Added: 11 December 2005
File Size: 67.12 Mb
Operating Systems: Windows NT/2000/XP/2003/2003/7/8/10 MacOS 10/X
Downloads: 85115
Price: Free* [*Free Regsitration Required]

For example, to enable selective suspend on the device, add a custom property section that sets the bPropertyName field to a Unicode string, “DeviceIdleEnabled” and wPropertyNameLength installl 36 bytes. Read about this change in our blog post.

In that case, skip steps 1 through 3 and proceed from step 4 in this topic. How satisfied are you with this response? The device description provided in the INF is ignored.

Reading and writing data to bulk and interrupt endpoints.

Release the Device Handles After you have completed all the required calls to the device, release the file handle and the WinUSB interface handle for the device. Click Ok to Start installing the feature.

Now you can configure the behavior of Winusb. In Windows 7, in addition to the preceding lines, you need to create these registry settings in the INF: A signed catalog file for the package. The header section specifies the length of the entire descriptor, number of function sections, and version number. Next, send data to the device’s bulk-in and bulk-out endpoints that can be used for read and write requests, respectively.


For a WinUSB device, you are not required to distribute INF files for your device, making the driver installation process simple for end users. Pass the WinUSB interface handle for the device, the pipe identifier for the bulk-out pipe as described in the Query the Device for USB Descriptors section of this topicand the buffer.

On the OSR USB FX2 device, these two endpoints are configured for loopback, so the device moves data from the bulk-in endpoint to the bulk-out endpoint. If the protocols for the device change, create a new device interface GUID. If data remains from a previous read request, WinUSB copies it to the beginning of the next read request and completes the request, if necessary.

How to Access a USB Device by Using WinUSB Functions – Windows drivers | Microsoft Docs

In this example, the application sends data to the device to control the light bar. We recommened that you provide a universal INF. Getting information about the device, configuration, and interface settings of all interfaces, and their endpoints.

AddReg section of your custom INF.

WinUSB (Winusb.sys) Installation

For information about the descriptors, see the specifications described here: It specifies the device interface globally unique identifier GUID for your device. CloseHandle to release the handle that was created by CreateFileas described in the step 1. Therefore, for these devices the AlternateSettingNumber parameter is set to zero and the function is called only one time.


For example, provide an appropriate manufacture’s name, the name of your signed catalog file, the correct device class, and the vendor identifier VID and product identifier PID for the device. However, the device class description is derived from the registry setting specified in your INF.

If your computer is configured to get driver update automatically, WinUSB driver will get installed without any user intervention by using the new INF package. Choose the type you’d like to provide: The preceding figure shows an example WinUSB configuration that implements three device interface classes, each insyall which has a single registered device interface: I have the same question 0. INF files for devices in an installed class, whether a system-supplied device setup class or a custom class, must not include a ClassInstall32 section.

Thanks for marking this as the answer. The OSR Winusb.syss device has one interface that has three endpoints.

The wizard displays WinUsb Device. In that case, the device description provided in the INF is ignored.