WinUSB (Winusb.sys) – Windows drivers
This part describes the generic WinUSB driver (Winusb.sys) and its user-mode element (Winusb.dll) supplied by Microsoft for all USB units.
In variations of Home windows sooner than Home windows XP with Service Pack 2 (SP2), all USB gadget drivers had been required to function in kernel mode. For those who created a USB gadget for which the working system didn’t have a local class driver, you needed to write a kernel-mode gadget driver in your gadget.
Home windows USB (WinUSB) is a generic driver for USB units that was developed concurrently with the Home windows Driver Frameworks (WDF) for Home windows XP with SP2. The WinUSB structure consists of a kernel-mode driver (Winusb.sys) and a user-mode dynamic hyperlink library (Winusb.dll) that exposes WinUSB capabilities. Through the use of these capabilities, you’ll be able to handle USB units with user-mode software program.
Winusb.sys can also be a key a part of the hyperlink between a UMDF operate driver and the related gadget. Winusb.sys is put in within the gadget’s kernel-mode stack as an higher filter driver. An utility communicates with the gadget’s UMDF operate driver to difficulty learn, write, or gadget I/O management requests. The driving force interacts with the framework, which passes the request to Winusb.sys. Winusb.sys then processes the request and passes it to the protocol drivers and finally to the gadget. Any response returns by the reverse path. Winusb.sys additionally serves because the gadget stack’s Plug and Play and energy proprietor.
Notice WinUSB capabilities require Home windows XP or later. You should utilize these capabilities in your C/C++ utility to speak together with your USB gadget. Microsoft doesn’t present a managed API for WinUSB.
This part describes find out how to use WinUSB to speak together with your USB units. The subjects on this part present tips about selecting the right driver in your gadget, details about putting in Winusb.sys as a USB gadget’s operate driver, and an in depth walkthrough with code examples that present how functions and USB units talk with one another.
This part contains the next subjects:
Home windows Help for WinUSB
The next desk summarizes WinUSB assist in several variations of Home windows.
|Home windows Model||WinUSB assist|
|Home windows 10 and later||Yes²|
|Home windows 7||Yes¹|
|Home windows Server 2008||Yes²|
|Home windows Vista||Yes²|
|Home windows Server 2003||No|
|Home windows XP||Yes³|
|Home windows 2000||No|
Yes¹: All SKUs of this model of Home windows assist WinUSB on x86-based, x64-based, and Itanium-based techniques.
Yes²: All SKUs of this model of Home windows assist WinUSB on x86-based and x64-based techniques.
Yes³: All shopper SKUs of Home windows XP with SP2 service packs assist WinUSB. WinUSB isn’t native to Home windows XP; it have to be put in with the WinUSB co-installer.
No: WinUSB isn’t supported on this model of Home windows.
USB Options Supported by WinUSB
The next desk reveals the high-level USB options which are supported by WinUSB in several variations of Home windows.
|Characteristic||Home windows 8.1 and later||Home windows 7/Vista/XP|
|Gadget I/O management requests||Supported||Supported|
|Isochronous transfers||Supported||Not Supported|
|Bulk, management, and interrupt transfers||Supported||Supported|
Microsoft-provided USB drivers