Windows 8.1: What's new for USB
Here are the new features and improvements for Universal Serial Bus (USB) in Windows 8.1.
- Windows Runtime USB API for developing Windows Store apps
- Microsoft OS 2.0 descriptors for improved device enumeration
- Isochronous support for WinUSB
- USB driver stack improvements
- USB tests in the Hardware Certification Kit (HCK)
- Improved USB diagnostic tools and debugger extensions
- Related topics
Windows Runtime USB API for developing Windows Store apps
Windows Runtime provides a new namespace: Windows.Devices.Usb (see Writing apps for USB devices (Windows Store apps using C#/VB/C++) for a brief overview). By using the namespace, you can write a Windows Store app that talks to a custom USB device.
For more information, see these topics:
- Talking to USB devices, start to finish (Windows Store app)
- How to add USB device capabilities to the app manifest
- How to connect to a USB device (Windows Store app)
- How to send a USB control transfer (Windows Store app)
- How to send a USB interrupt transfer request (Windows Store app)
- How to send a USB bulk transfer request (Windows Store app)
- How to get USB descriptors (Windows Store app)
- How to select a USB interface setting (Windows Store app)
These samples demonstrate the use of the Windows.Devices.Usb namespace.
Windows Store app sample | Description |
---|---|
This sample shows how to communicate with a USB device. The sample can communicate with the OSR USB FX2 learning kit and the SuperMUTT device. | |
This sample shows how to communicate with a USB CDC (Communications Device Class) device and sends and receives data through serial ports, such as a USB serial converter cable. | |
This sample shows how a Windows Store app can update the firmware of a USB device. The update operation runs as a background task. |
Microsoft OS 2.0 descriptors for improved device enumeration
Microsoft OS 2.0 descriptors improve device identification and driver installation experience.
MS OS 2.0 descriptors specification provides these improvements:
- Defines a new BOS device capability descriptor to allow devices to return platform-specific properties. The BOS descriptor is a standard descriptor defined by the standard USB specification for USB versions 2.1 and greater, so retrieval is a normal and an expected enumeration step that should not lead to unintended device behavior.
- Allows descriptors to be scoped to an entire device, a specific configuration, or a function.
- Allows devices to return multiple descriptor sets where each set applies to a specific range of Windows version. This enables devices to enumerate differently depending on the version of Windows on the system to which it is attached.
- Faster Resume: Device can identify its resume time, which reduces time from suspend state.
For information about the specification, see Microsoft OS Descriptors for USB Devices.
Isochronous support for WinUSB
The Microsoft-provided WinUSB (kernel-mode driver) now supports transfers to and from isochronous endpoints of a USB device
The user-mode DLL, Winusb.dll, exposes these WinUSB Functions that a Windows desktop app can use to initiate such transfers.
- WinUsb_RegisterIsochBuffer
- WinUsb_UnregisterIsochBuffer
- WinUsb_WriteIsochPipeAsap
- WinUsb_ReadIsochPipeAsap
- WinUsb_WriteIsochPipe
- WinUsb_ReadIsochPipe
- WinUsb_GetCurrentFrameNumber
- WinUsb_GetAdjustedFrameNumber
USB driver stack improvements
In Windows 8.1, the performance and reliability of both USB 3.0 and 2.0 driver stacks have been improved.
- For newer platforms that support InstantGo, the overall system power consumption in S0 can be extremely low. For such a system, even the few milliwatts that a USB device consumes while in selective suspend, starts to matter. With the goal of optimizing power for the new systems, we have implemented D3cold for USB 2.0 stack and Usbccgp.sys and improved Windows 8 implementation of USB 3.0 driver stack.
- Better power management when no driver is installed. The USB driver stack now suspend a USB port that causes the hub to suspend if it's the only device connected to the controller.
- DPC performance has been improved to avoid watchdog timeout crashes.
- Devices can now recover faster than the default 10 millisecond specified in the USB 2.0 specification. Also, the host controller driver asserts resume signaling for less than the 20 milliseconds required in the USB 2.0 specification.
- USB 3.0 driver stack is now more reliable when performing control, bulk, and isochronous data transfers.
USB tests in the Hardware Certification Kit (HCK)
-
These USB tests in the Hardware Certification Kit (HCK) have been improved. The device enumeration tests now have a new parameter that reduces manual intervention during testing using simplified topologies. The suspend tests have been improved logging capabilities.
-
MUTT and SuperMUTT devices are now USB-IF compliance devices. The devices and the accompanying software package are integrated in to the HCK suite of USB tests. They provide automated testing that can be used during the development cycle of USB controllers, devices and systems, especially stress testing.
MUTT hardware can be purchased from JJG Technologies. The device does not have installed firmware installed. To install firmware, download the MUTT software package from this Web site and run MUTTUtil.exe. For more information, see the documentation included with the package.
Improved USB diagnostic tools and debugger extensions
- Kernel debugging extensions for USB 2.0 and 3.0 (USBKD.dll and USB3KD.dll) have been improved to have similar command pattern. Debugger extension for Usbccgp.sys is now available.
- USB events shown in the Message Analyzer (Netmon) are now more descriptive. The events can also be grouped and sorted by controller, hub, and so on.
Related topics