Note
If drivers were not downloaded automatically by Windows Update, use Device Manager to refresh the driver from Windows Update, or contact the device manufacturer. I’m Moli, your virtual agent. I can help with Moto phone issues. Global Nav Open Menu Global Nav Close Menu; Apple; Shopping Bag +. Driver updates will resolve any Driver conflict issues with all devices and improve the performance. Drivers Updates Wireless Networks and Wireless Network Adapters will not work without the correct and up-to-date Wireless Drivers IMPORTANT NOTICE: Downloading the latest Driver. Canon USB Driver Download for Windows 10, 8, 7, XP & Vista. How to restore lost data for free: to Identify and Install Unknown Device Drivers on Windows How to Find Unknown Device Drivers on W.
This document describes how drivers can implement a custom Miracast stack in Windows 8.1. As of Windows 10, the OS ships with a built-in Miracast stack that can work on any GPU and it is no longer recommended that drivers implement a custom Miracast stack. This documentation is therefore deprecated and Microsoft may remove support for custom Miracast stacks in a future version of Windows.
Wireless (Miracast) displays can optionally be supported by Windows Display Driver Model (WDDM) 1.3 and later drivers. This capability is new starting with Windows 8.1.
For more information on the requirements of drivers and hardware to support Miracast displays, refer to the Building best-in-class Wireless Projection solutions with Windows 10 guide and the relevant WHCK documentation at Device.Graphics.WDDM13.DisplayRender.WirelessDisplay.
Miracast design guide
These design guide sections describe how display miniport drivers and Miracast user-mode drivers support Miracast displays:
Miracast reference
These reference sections describe how to implement this capability in your drivers:
Wireless Data Device Port Devices Driver Download For Windows 10 64-bit
User-mode device driver interfaces (DDIs)
Wireless display callback functions called by Miracast user-mode drivers
The reference pages in this section describe wireless display (Miracast) user-mode functions that the operating system implements. Only Miracast user-mode drivers can call these functions.
Pointers to the Miracast display callback functions are returned in a MIRACAST_CALLBACKS structure.
Topic | Description |
---|---|
PFN_GET_NEXT_CHUNK_DATA | Provides info about the next Miracast encode chunk that was reported to the Microsoft DirectX graphics kernel subsystem when the DXGK_INTERRUPT_TYPE interrupt type is DXGK_INTERRUPT_MIRACAST_CHUNK_PROCESSING_COMPLETE. |
PFN_MIRACAST_IO_CONTROL | Called by the user-mode display driver to send the kernel-mode display miniport driver a synchronous I/O control request. |
PFN_REGISTER_DATARATE_NOTIFICATIONS | Called by the user-mode driver to register with the operating system to receive network quality of service (QoS) notifications and the current network bandwidth of the Miracast connection. |
PFN_REPORT_SESSION_STATUS | Called by the user-mode display driver to report the status of the current Miracast connected session. |
PFN_REPORT_STATISTIC | Called by the user-mode display driver to report the statistics of the Miracast link to the operating system. |
Wireless display functions implemented by Miracast user-mode drivers
The reference pages in this section describe wireless display (Miracast) functions that a Miracast user-mode driver must implement. This type of driver runs in a standalone DLL.
In response to an operating system call to the QueryMiracastDriverInterface function, the Miracast user-mode driver must supply pointers to these functions in the MIRACAST_DRIVER_INTERFACE structure, except for pfnDataRateNotify, which is has a pointer declared in RegisterForDataRateNotifications.
Topic | Description |
---|---|
PFN_CREATE_MIRACAST_CONTEXT | Called by the operating system to create a user-mode Miracast context. |
PFN_DESTROY_MIRACAST_CONTEXT | Called by the operating system to destroy a user-mode Miracast context. |
PFN_HANDLE_KMD_MESSAGE | Called by the operating system to handle the asynchronous kernel-mode message that the Miracast user-mode driver receives when the display miniport driver calls the DxgkCbMiracastSendMessage function. |
PFN_DATARATE_NOTIFICATION | Called by the operating system to notify the Miracast user-mode driver that the bit rate of the Miracast network link has changed. This function is registered with the operating system when the RegisterForDataRateNotifications function is called. |
QUERY_MIRACAST_DRIVER_INTERFACE | Called by the operating system to query the Miracast user-mode driver interface, MIRACAST_DRIVER_INTERFACE. |
PFN_START_MIRACAST_SESSION | Called by the operating system to start a Miracast connected session. |
PFN_STOP_MIRACAST_SESSION | Called by the operating system to start a Miracast connected session that had earlier been started by a call to the StartMiracastSession function. |
Wireless display (Miracast) structures and enumerations
All user-mode structures and enumerations that are used with Miracast display device driver interfaces (DDIs).
Topic | Description |
---|---|
MIRACAST_CALLBACKS | Contains pointers to wireless display (Miracast) runtime callback functions that the Miracast user-mode driver can call. |
MIRACAST_CHUNK_DATA | Contains encode chunk data that is used when a user-mode driver calls the wireless display (Miracast) GetNextChunkData function. |
MIRACAST_CHUNK_ID | Stores info that identifies a wireless display (Miracast) encode chunk. |
MIRACAST_CHUNK_INFO | Contains info about a specified wireless display (Miracast) encode chunk. |
MIRACAST_CHUNK_TYPE | Specifies the types of wireless display (Miracast) chunk info that is to be processed. |
MIRACAST_DATARATE_STATS | Contains info used in the wireless display (Miracast) pfnDataRateNotify function about the audio/video encoder bit rate and failed or retried Wi-Fi frames. |
MIRACAST_DRIVER_INTERFACE | Contains pointers to wireless display (Miracast) functions that are implemented by the Miracast user-mode driver. |
MIRACAST_PROTOCOL_EVENT | Specifies the types of wireless display (Miracast) protocol event that the user-mode display driver should report. |
MIRACAST_SESSION_INFO | Contains info on a wireless display (Miracast) connected session. |
MIRACAST_STATISTIC_DATA | Contains Miracast statistics data that the user-mode display driver reports to the operating system. |
MIRACAST_STATISTIC_TYPE | Specifies types of Miracast statistics data that the user-mode display driver generates. |
MIRACAST_STATUS | Specifies status types that the user-mode display driver uses to report Miracast connection status. |
MIRACAST_WFD_CONNECTION_STATS | Contains bit rate info on the Wi-Fi Direct connection. |
These additional user-mode structures and enumerations support Miracast displays and are new or updated for Windows 8.1:
- DISPLAYCONFIG_TARGET_BASE_TYPE (new)
- DISPLAYCONFIG_VIDEO_SIGNAL_INFO (AdditionalSignalInfo child structure added)
- DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constant added)
- D3DKMDT_VIDEO_SIGNAL_INFO (AdditionalSignalInfo child structure added)
- DISPLAYCONFIG_DEVICE_INFO_TYPE (DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE constant added)
Kernel-mode DDIs
Wireless display (Miracast) display callback interface
The Miracast display callback interface contains functions that are implemented by the Microsoft DirectX graphics kernel subsystem to support wireless (Miracast) displays. This interface is supported starting in Windows 8.1.
This section contains reference pages for these kernel-mode functions, which are called by Windows Display Driver Model (WDDM) 1.3 and later display miniport drivers:
Topic | Description |
---|---|
DXGKCB_MIRACAST_SEND_MESSAGE | Sends an asynchronous message to the user-mode display driver. |
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK | Called in kernel mode when the message that was sent to the user-mode driver with a call to the DxgkCbMiracastSendMessage function has completed or has been canceled. |
DXGKCB_MIRACAST_REPORT_CHUNK_INFO | Called by the display miniport driver to report info about an encode chunk. |
The display miniport driver must fill in pointers to these functions in the DXGK_MIRACAST_DISPLAY_CALLBACKS structure.
Wireless display (Miracast) interface
This section contains kernel-mode functions that are implemented by display miniport drivers that support wireless (Miracast) displays. This interface is supported starting in Windows 8.1.
Pointers to the Miracast interface functions are returned in a DXGK_MIRACAST_INTERFACE structure.
Topic | Description |
---|---|
DXGKCB_MIRACAST_SEND_MESSAGE_CALLBACK | Called in kernel mode when the message that was sent to the user-mode driver with a call to the DxgkCbMiracastSendMessage function has completed or has been canceled. |
DXGKDDI_MIRACAST_CREATE_CONTEXT | Creates a kernel-mode context for a Miracast device. |
DXGKDDI_MIRACAST_DESTROY_CONTEXT | Destroys an instance of a Miracast device. |
DXGKDDI_MIRACAST_HANDLE_IO_CONTROL | Called by the operating system to request that the display miniport driver process a synchronous I/O control request in response to a user-mode display driver call to the MiracastIoControl function. |
DXGKDDI_MIRACAST_QUERY_CAPS | Queries the Miracast capabilities of the current display adapter. The operating system calls this function only when the display adapter is first started and then stores the capabilities that are returned. |
These additional kernel-mode structures and enumerations support Miracast displays and are new or updated for Windows 8.1:
- D3DKMDT_VIDEO_OUTPUT_TECHNOLOGY (D3DKMDT_VOT_MIRACAST constant added)
- D3DKMDT_VIDEO_SIGNAL_INFO (AdditionalSignalInfo child structure added)
- DXGK_CHILD_STATUS (Miracast child structure added)
- DXGK_CHILD_STATUS_TYPE (StatusMiracast constant added)
- DXGKARGCB_NOTIFY_INTERRUPT_DATA (MiracastEncodeChunkCompleted child structure added)
Important
This topic is for programmers. If you are a customer experiencing USB problems, see Troubleshoot common USB problems
This topic lists the Microsoft-provided drivers for the supported USB device classes.
- Microsoft-provided drivers for USB-IF approved device classes.
- For composite devices, use USB Generic Parent Driver (Usbccgp.sys) that creates physical device objects (PDOs) for each function.
- For non-composite devices or a function of a composite device, use WinUSB (Winusb.sys).
If you are installing USB drivers: You do not need to download USB device class drivers. They are installed automatically. These drivers and their installation files are included in Windows. They are available in the WindowsSystem32DriverStoreFileRepository folder. The drivers are updated through Windows Update.
If you are writing a custom driver: Before writing a driver for your USB device, determine whether a Microsoft-provided driver meets the device requirements. If a Microsoft-provided driver is not available for the USB device class to which your device belongs, then consider using generic drivers, Winusb.sys or Usbccgp.sys. Write a driver only when necessary. More guidelines are included in Choosing a driver model for developing a USB client driver.
USB Device classes
USB Device classes are categories of devices with similar characteristics and that perform common functions. Those classes and their specifications are defined by the USB-IF. Each device class is identified by USB-IF approved class, subclass, and protocol codes, all of which are provided by the IHV in device descriptors in the firmware. Microsoft provides in-box drivers for several of those device classes, called USB device class drivers. If a device that belongs to a supported device class is connected to a system, Windows automatically loads the class driver, and the device functions with no additional driver required.
Hardware vendors should not write drivers for the supported device classes. Windows class drivers might not support all of the features that are described in a class specification. If some of the device's capabilities are not implemented by the class driver, vendors should provide supplementary drivers that work in conjunction with the class driver to support the entire range of functionality provided by the device.
For general information about USB-IF approved device classes see the USB Common Class Specification
Wireless Data Device Port Devices Driver Download For Windows 10 Windows 7
The current list of USB class specifications and class codes is documented in the USB-IF Defined Class Code List.
Wireless Data Device Port Devices Driver Download For Windows 10 Bit
Device setup classes
Windows categorizes devices by device setup classes, which indicate the functionality of the device.
Wireless Data Device Port Devices Driver Download For Windows 10 Pro
Microsoft defines setup classes for most devices. IHVs and OEMs can define new device setup classes, but only if none of the existing classes apply. For more information, see System-Defined Device Setup Classes.
Two important device setup classes for USB devices are as follows:
USBDevice {88BAE032-5A81-49f0-BC3D-A4FF138216D6}: IHVs must use this class for custom devices that do not belong to another class. This class is not used for USB host controllers and hubs.
USB {36fc9e60-c465-11cf-8056-444553540000}: IHVs must not use this class for their custom devices. This is reserved for USB host controllers and USB hubs.
The device setup classes are different from USB device classes discussed earlier. For example, an audio device has a USB device class code of 01h in its descriptor. When connected to a system, Windows loads the Microsoft-provided class driver, Usbaudio.sys. In Device Manager, the device is shown under is Sound, video and game controllers, which indicates that the device setup class is Media.
Microsoft-provided USB device class drivers
USB-IF class code | Device setup class | Microsoft-provided driver and INF | Windows support | Description |
---|---|---|---|---|
Audio (01h) | Media {4d36e96c-e325-11ce-bfc1-08002be10318} | Usbaudio.sys Wdma_usb.inf | Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides support for the USB audio device class by means of the Usbaudio.sys driver. For more information, see 'USBAudio Class System Driver' in Kernel-Mode WDM Audio Components. For more information about Windows audio support, see the Audio Device Technologies for Windows website. |
Communications and CDC Control (02h) | ||||
Ports {4D36E978-E325-11CE-BFC1-08002BE10318} | Usbser.sys Usbser.inf | Windows 10 for desktop editions Windows 10 Mobile | In Windows 10, a new INF, Usbser.inf, has been added that loads Usbser.sys automatically as the function driver. For more information, see USB serial driver (Usbser.sys) | |
Modem {4D36E96D-E325-11CE-BFC1-08002BE10318} Note Supports Subclass 02h (ACM) | Usbser.sys Custom INF that references mdmcpq.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | In Windows 8.1 and earlier versions, Usbser.sys is not automatically loaded. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) and includes [Install] and [Needs] sections. Starting with Windows Vista, you can enable CDC and Wireless Mobile CDC (WMCDC) support by setting a registry value, as described in Support for the Wireless Mobile Communication Device Class. When CDC support is enabled, the USB Common Class Generic Parent Driver enumerates interface collections that correspond to CDC and WMCDC Control Models, and assigns physical device objects (PDO) to these collections. | |
Net {4d36e972-e325-11ce-bfc1-08002be10318} Note Supports Subclass 0Eh (MBIM) | wmbclass.sys Netwmbclass.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 | Starting in Windows 8, Microsoft provides the wmbclass.sys driver, for mobile broadband devices. See, MB Interface Model. | |
HID (Human Interface Device) (03h) | HIDClass {745a17a0-74d3-11d0-b6fe-00a0c90f57da} | Hidclass.sys Hidusb.sys Input.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the HID class driver (Hidclass.sys) and the miniclass driver (Hidusb.sys) to operate devices that comply with the USB HID Standard. For more information, see HID Architecture and Minidrivers and the HID class driver. For further information about Windows support for input hardware, see the Input and HID - Architecture and Driver Support website. |
Physical (05h) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
Image (06h) | Image {6bdd1fc6-810f-11d0-bec7-08002be2092f} | Usbscan.sys Sti.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbscan.sys driver that manages USB digital cameras and scanners for Windows XP and later operating systems. This driver implements the USB component of the Windows Imaging Architecture (WIA). For more information about WIA, see Windows Image Acquisition Drivers and the Windows Imaging Component website. For a description of the role that Usbscan.sys plays in the WIA, see WIA Core Components. |
Printer (07h) | USB Note Usbprint.sys enumerates printer devices under the device set up class: Printer {4d36e979-e325-11ce-bfc1-08002be10318}. | Usbprint.sys Usbprint.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbprint.sys class driver that manages USB printers. For information about implementation of the printer class in Windows, see the Printing - Architecture and Driver Support website. |
Mass Storage (08h) | ||||
USB | Usbstor.sys | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbstor.sys port driver to manage USB mass storage devices with Microsoft's native storage class drivers. For an example device stack that is managed by this driver, see Device Object Example for a USB Mass Storage Device. For information about Windows storage support, see the Storage Technologies website. | |
SCSIAdapter {4d36e97b-e325-11ce-bfc1-08002be10318} | SubClass (06) and Protocol (62) Uaspstor.sys Uaspstor.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 | Uaspstor.sys is the class driver for SuperSpeed USB devices that support bulk stream endpoints. For more information see: | |
Hub (09h) | USB {36fc9e60-c465-11cf-8056-444553540000} | |||
Usbhub.sys Usb.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbhub.sys driver for managing USB hubs. For more information about the relationship between the hub class driver and the USB stack, see USB host-side drivers in Windows. | ||
Usbhub3.sys Usbhub3.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 | Microsoft provides the Usbhub3.sys driver for managing SuperSpeed (USB 3.0) USB hubs. The driver is loaded when a SuperSpeed hub is attached to an xHCI controller. See USB host-side drivers in Windows. | ||
CDC-Data (0Ah) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
Smart Card (0Bh) | SmartCardReader {50dd5230-ba8a-11d1-bf5d-0000f805f530} | |||
Usbccid.sys (Obsolete) | Windows 10 for desktop editions Windows 7 Windows Server 2008 Windows Vista | Microsoft provides the Usbccid.sys mini-class driver to manage USB smart card readers. For more information about smart card drivers in Windows, see Smart Card Design Guide. Note that for Windows Server 2003, Windows XP, and Windows 2000, special instructions are required for loading this driver because it might have been released later than the operating system. Note Usbccid.sys driver has been replaced by UMDF driver, WUDFUsbccidDriver.dll. | ||
WUDFUsbccidDriver.dll WUDFUsbccidDriver.inf | Windows 8.1 Windows 8 | WUDFUsbccidDriver.dll is a user-mode driver for USB CCID Smart Card Reader devices. | ||
Content Security (0Dh) | - | - | - | Recommended driver: USB Generic Parent Driver (Usbccgp.sys). Some content security functionality is implemented in Usbccgp.sys. See Content Security Features in Usbccgp.sys. |
Video (0Eh) | Image {6bdd1fc6-810f-11d0-bec7-08002be2092f} | Usbvideo.sys Usbvideo.inf | Windows 10 for desktop editions Windows Vista | Microsoft provides USB video class support by means of the Usbvideo.sys driver. For more information, see 'USB Video Class Driver' under AVStream Minidrivers. Note that for Windows XP, special instructions are required for loading this driver because it might have been released later than the operating system. |
Personal Healthcare (0Fh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
Audio/Video Devices (10h) | - | - | - | - |
Diagnostic Device (DCh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
Wireless Controller (E0h) Note Supports Subclass 01h and Protocol 01h | Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} | Bthusb.sys Bth.inf | Windows 10 for desktop editions Windows 10 Mobile Windows 8.1 Windows 8 Windows 7 Windows Vista | Microsoft provides the Bthusb.sys miniport driver to manage USB Bluetooth radios. For more information, see Bluetooth Design Guide. |
Miscellaneous (EFh) | Net {4d36e972-e325-11ce-bfc1-08002be10318} Note Supports SubClass 04h and Protocol 01h | Rndismp.sys Rndismp.inf | Windows 10 for desktop editions Windows 8.1 Windows 8 Windows 7 Windows Vista | Prior to Windows Vista, support for CDC is limited to the RNDIS-specific implementation of the Abstract Control Model (ACM) with a vendor-unique protocol (bInterfaceProtocol) value of 0xFF. The RNDIS facility centers the management of all 802-style network cards in a single class driver, Rndismp.sys. For a detailed discussion of remote NDIS, see Overview of Remote NDIS. The mapping of remote NDIS to USB is implemented in the Usb8023.sys driver. For further information about networking support in Windows, see the Networking and Wireless Technologies website. |
Application Specific (FEh) | - | - | - | Recommended driver: WinUSB (Winusb.sys) |
Vendor Specific (FFh) | - | - | Windows 10 for desktop editions Windows 10 Mobile | Recommended driver: WinUSB (Winusb.sys) |