Most mobile phones come with an installation CD with software applications, including the USB driver that you need. You might not be interested in installing the Software Suite but, unfortunately. Right-Click the WD SES Driver in the Device Manager & Left-Click ‘Update Driver’. Choose ‘Install from a specific location’.The SES Driver is in the WD Smartware VCD within the Folder ‘Extras’.
-->This topic summarizes the new features and improvements for Universal Serial Bus (USB) client drivers in Windows 8.
For information about new features in USB in general, see New for USB Drivers.
New Driver Stack for USB 3.0 Devices
Windows 8 provides a new USB driver stack to support USB 3.0 devices. The new stack includes drivers that are loaded by Windows when a USB 3.0 device is attached to an xHCI host controller. The new drivers are based on Kernel Mode Driver Framework (KMDF) and implement features defined in the USB 3.0 specification. The new drivers are as follows:
- Usbxhci.sys
- Ucx01000.sys
- Usbhub3.sys
The new driver stack maintains compatibility with the existing client drivers that were built and tested on earlier versions of the Windows operating system.
To see an architectural block diagram of the USB driver stack and a brief description of the new drivers, see USB 3.0 Driver Stack Architecture.
Features Supported by the New Stack
The USB driver stack for USB 3.0 devices supports many new features. Some of features are configurable by the client driver. Those features are as follows:
Free Download For Usb Driver For Device
Static streams for bulk endpoints.
Streams provide the client driver with the ability to perform multiple data transfers to a single bulk endpoint. The Windows Driver Kit (WDK) for Windows 8 provides new device driver interfaces (DDIs) that allow a client driver to can open up to 255 streams in a bulk endpoint. After streams have been opened, the client driver can perform data transfers to and from specific streams. For more information, see How to Open and Close Static Streams in a USB Bulk Endpoint.
Chained MDLs
A client driver can specify the payload in a chain of MDLs instead of a contiguous buffer. This allows the transfer buffer to be segmented in physical memory hence removing restrictions on the number, size, and alignment of buffers. Using chained MDLs can boost performance during data transfers because it avoids double buffering. For more information, see How to Send Chained MDL.
Function suspend and remote wake-up for composite devices.
The feature enables a function of a composite device to enter and exit a low-power state, independently of other functions. The function driver can also request a device-initiated remote wake-up. Such a request must be handled by the parent driver of the composite device. The Microsoft-provided parent driver (Usbccgp.sys) supports function suspend and remote wake-up features. The WDK for Windows 8 provides DDIs that allow replacement parent drivers to implement those features. For more information, see How to Implement Function Suspend in a Composite Driver.
Client contract version for USB client drivers
A client contract version identifies a set of rules that the client driver when sending requests to the USB driver stack. Failure to do so might result in an unexpected behavior. For information about those rules, see Best Practices: Using URBs.
A client driver that intends to use the capabilities of the USB driver stack for 3.0 devices, must identify itself with the client contract version of USBD_CLIENT_CONTRACT_VERSION_602. Such a client driver is required to register with the USB driver stack. After registration, the client driver must query the underlying USB driver stack to determine whether the stack supports the required capability. To facilitate those operations, the following KMDF-specific methods and WDM routines have been included in the WDK for Windows 8:
| Use case | A KMDF-based driver should ... | A WDM driver must ... |
|---|---|---|
| To specify a client contract version and with the USB driver stack | Call the WdfUsbTargetDeviceCreateWithParameters method. | Call the USBD_CreateHandle routine. |
| To query for a particular capability | Call WdfUsbTargetDeviceQueryUsbCapability and specify the GUID of the capability to query. | Call USBD_QueryUsbCapability and specify the GUID of the capability to query. |
New Routines for Allocating and Building URBs
Windows 8 provides new routines for allocating, formatting, and releasing URBs. The URB structure is allocated by the USB driver stack. If the underlying stack is the new USB driver stack, the URB is paired with an opaque URB context. The USB driver stack uses the URB context to improve URB tracking and processing. For more information about the routines, see Allocating and Building URBs.
The new routines are as follows:
- USBD_AssignUrbToIoStackLocation routine to associate an URB with an IRP. This routine only applies to WDM client drivers.
In addition to the routines in the preceding list, there are new KMDF-specific methods for URB allocation. For KMDF-based client drivers, we recommend that you call,
- The WdfUsbTargetDeviceCreateUrb method (instead of USBD_UrbAllocate) to allocate an URB.
- The WdfUsbTargetDeviceCreateIsochUrb method (instead of USBD_IsochUrbAllocate)to allocate an URB for an isochronous transfer. Those calls allocate a variable-sized URB that is based on the number of isochronous packets required for the transfer. For more information about isochronous transfers, see How to Transfer Data to USB Isochronous Endpoints.
New User Mode I/O Control Requests for USB 3.0 Hubs
Windows 8 provides the new IOCTLs that applications can use to retrieve information about USB 3.0 hubs and their ports. The new IOCTLs are as follows:
By sending the preceding I/O requests to the USB driver stack an application retrieve the following set of information:
- Hub descriptors
- Properties of all ports and companion ports
- Operating speed of a device that is attached to a port
New Compatible ID for WinUSB
Device manufacturers can add 'WINUSB' in the firmware (Microsoft OS feature descriptor) so that Windows recognizes the device as a WinUSB device. In Windows 8, Winusb.inf has been modified to include USBMS_COMP_WINUSB as a device identifier string. That modification enables Windows to automatically load Winusb.sys, as the function driver for the device, as soon as the device is detected. For more information, see WinUSB Device.
New Visual Studio templates for USB client drivers (*New for Beta)
Microsoft Visual Studio 2012 includes USB User-Mode Driver and USB Kernel-Mode Driver templates that generate starter code for a UMDF and KMDF USB client driver, respectively. The template code initializes the USB target device object to enable communication with the hardware. For more information, see the following topics:
For more information, see Getting started with USB client driver development. Extend your driver by performing Common tasks for USB client drivers.
For information about how to implement UMDF and KMDF drivers, see the Microsoft Press book Developing Drivers with the Windows Driver Foundation.
UASP driver
Windows 8 includes a new USB storage driver that implements the USB Attached SCSI Protocol (UASP). The new driver uses static streams for bulk endpoints, as per the official USB 3.0 specification.
Boot support

Examples Of Usb Devices
The Windows to Go feature allows Windows to boot from a flash drive or an external drive. You can boot with your copy of Windows from those drives on various machines.
Enhanced debugging and diagnostic capabilities
Download Usb Driver
Windows 8 provides new USB 3.0 debugging tools to improve diagnosing USB issues faster. There are new USB 3.0 kernel debugger extensions that examine USB 3.0 host controller and device states. You can use USB WPP and event tracing to analyze USB interactions and troubleshoot USB device issues more easily. Windows 8 supports debugging over USB 3.0. For more information, see Setting Up a USB 3.0 Connection Manually.
New USB-specific failure messages in Device Manager
At times, Windows can fail to enumerate an attached USB device. Typically, enumeration failures occur when requests sent to the USB device fail or the device returns incorrect descriptors.
In Windows 8, when such failures occur, the General tab in Device Manager displays a USB-specific error message that indicates the reason for failure.
The error strings are as follows:
- A request for the USB device descriptor failed.
- The USB set address request failed.
- A USB port reset request failed.
- A previous instance of the USB device was not removed.
- The USB device returned an invalid USB configuration descriptor.
- The USB device returned an invalid USB device descriptor.
- Unable to access the registry.
- A request for the USB configuration descriptor failed.
- A request for the USB device's port status failed.
- The USB device returned an invalid serial number string.
- The USB set SEL request failed.
- A request for the USB BOS descriptor failed.
- A request for the USB device qualifier descriptor failed.
- A request for the USB serial number string descriptor failed.
- A request for the USB language ID string descriptor failed.
- A request for the USB product description string descriptor failed.
- A request for the Microsoft OS extended configuration descriptor failed.
- A request for the Microsoft OS container ID descriptor failed.
- The USB device returned an invalid USB BOS descriptor.
- The USB device returned an invalid USB device qualifier descriptor.
- The USB device returned an invalid USB language ID string descriptor.
- The USB device returned an invalid Microsoft OS container ID descriptor.
- The USB device returned an invalid Microsoft OS extended configuration descriptor.
- The USB device returned an invalid product description string descriptor.
- The USB device returned an invalid serial number string descriptor.
Related topics
Drivers Uniton USB Devices
New for USB Drivers
Universal Serial Bus (USB) Drivers
Universal Serial Bus (USB) provides an expandable, hot-pluggable Plug and Play serial interface that ensures a standard, low-cost connection for peripheral devices such as keyboards, mice, joysticks, printers, scanners, storage devices, modems, and video conferencing cameras. Migration to USB is recommended for all peripheral devices that use legacy ports such as PS/2, serial, and parallel ports.
The USB-IF is a Special Interest Groups (SIGs) that maintains the Official USB Specification, test specifications and tools.
Windows operating systems include native support for USB host controllers, hubs, and devices and systems that comply with the official USB specification. Windows also provides programming interfaces that you can use to develop device drivers and applications that communicate with a USB device.
| USB in WindowsWindows 10: What's new for USB Overview of new features and improvements in USB in Windows 10. USB FAQFrequently asked questions from driver developers about the USB stack and features that are supported in USB. Microsoft OS Descriptors for USB DevicesWindows defines MS OS descriptors that allows better enumeration when connected to system running Windows operating system Microsoft-provided USB driversUSB device-side drivers in WindowsA set of drivers for handling common function logic for USB devices. USB host-side drivers in WindowsMicrosoft provides a core stack of drivers that interoperate with devices that are connected to EHCI and xHCI controllers. USB-IF device class driversWindows provides in-box device class drivers for many USB-IF approved device classes, audio, mass storage, and so on. USB generic function driver–WinUSBWindows provides Winusb.sys that can be loaded as a function driver for a custom device and a function of a composite device. USB generic parent driver for composite devices–UsbccgpParent driver for USB devices with multiple functions. Usbccgp creates physical device objects (PDOs) for each of those functions. Those individual PDOs are managed by their respective USB function drivers, which could be the Winusb.sys driver or a USB device class driver. WDF extension for developing USB drivers
Get information about the tools that you can use to test your USB hardware or software, capture traces of operations and other system events, and observe how the USB driver stack responds to a request sent by a client driver or an application. Read an overview of tests in the Hardware Certification Kit that enable hardware vendors and device manufacturers to prepare their USB devices and host controllers for Windows Hardware Certification submission. Other Resources for USB Official USB SpecificationProvides complete technical details for the USB protocol. Microsoft Windows USB Core Team BlogCheck out posts written by the Microsoft USB Team. The blog focuses on the Windows USB driver stack that works with various USB Host controllers and USB hubs found in Windows PC. A useful resource for USB client driver developers and USB hardware designers understand the driver stack implementation, resolve common issues, and explain how to use tools for gathering traces and log files. OSR Online Lists - ntdevDiscussion list managed by OSR Online for kernel-mode driver developers. Windows Dev-Center for Hardware DevelopmentMiscellaneous resources based on frequently asked questions from developers who are new to developing USB devices and drivers that work with Windows operating systems. USB-related videos UWP apps for USB devicesUnderstanding USB 3.0 in Windows 8Building great USB 3.0 devicesUSB Debugging Innovations in Windows 8 (Part I, II, & III)USB hardware for learning MUTT devicesMUTT and SuperMUTT devices and the accompanying software package are integrated into 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. OSR USB FX2 Learning KitIf you are new to USB driver development. The kit is the most suitable to study USB samples included in this documentation set. You can get the learning kit from OSR Online Store. | Write a USB client driver (KMDF, UMDF) Introduces you to USB driver development. Provides information about choosing the most appropriate model for providing a USB driver for your device. This section also includes tutorials about writing your first user-mode and kernel-mode USB drivers by using the USB templates included with Microsoft Visual Studio. Write a USB host controller driverIf you are developing an xHCI host controller that is not compliant with the specification or developing a custom non-xHCI hardware (such as a virtual host controller), you can write a host controller driver that communicates with UCX. For example, consider a wireless dock that supports USB devices. The PC communicates with USB devices through the wireless dock by using USB over TCP as a transport.
You can develop a controller driver that handles all USB data transfers and commands sent by the host to the device. This driver communicates with the Microsoft-provided USB function controller extension (UFX). USB function class extension (UFX) reference Write a USB Type-C connector driverWindows 10 introduces support for the new USB connector: USB Type-C. You can write a driver for the connector that communicates with the Microsoft-provided class extension module: UcmCx to handle scenarios related to Type-C connectors such as, which ports support Type-C, which ports support power delivery. USB connector manager class extension (UcmCx) reference Write a USB dual-role controller driverUSB Dual Role controllers are now supported in Windows 10. Windows includes in-box client drivers for ChipIdea and Synopsys controllers. For other controllers, Microsoft provides a set of programming interfaces that allow the dual-role class extension (UrsCx) and its client driver to communicate with each other to handle the role-switching capability of a dual-role controller. For more information about this feature, see: USB dual-role controller driver programming reference Write a USB driver for emulated devicesWindows 10 introduces support for emulated devices. Now you can develop an emulated Universal Serial Bus (USB) host controller driver and a connected virtual USB device. Both components are combined into a single KMDF driver that communicates with the Microsoft-provided USB device emulation class extension (UdeCx). Emulated USB host controller driver programming reference Write a UWP appProvides step-by-step instructions about implementing USB features in a UWP app. To write such an app for a USB device you need Visual Studio and Microsoft Windows Software Development Kit (SDK) . Write a Windows desktop appDescribes how an application can call WinUSB Functions to communicate with a USB device. WinUSB functions Common programming scenariosList of common tasks that a driver or an app performs in order to communicate with a USB device. Get quick info about the programming interfaces you need for each task. USB samples Development tools Download kits and tools for Windows |