If the device is not yet connected, first install the device-specific driver, such as by using the appropriate installer. After the device-specific driver is installed, Windows 10 will select that driver instead of the standard USB audio 2.0 driver when you first connect the device. The package provides the installation files for Synaptics USB Human Interface Device Driver version 19.0.10.0. In order to manually update your driver, follow the steps below (the next steps): 1. Go to Device Manager (right click on My Computer, choose Manage and then find Device Manager in the left panel) 2.

Summary
- End-to-end walkthrough for creating a UWP app that talks to a USB device
- Companion sample: Custom USB device access sample
Important APIs
Use the Windows Runtime APIs, introduced in Windows 8.1, to write UWP apps that gives users access to their peripheral USB device. Such apps can connect to a device based on user-specified criteria, get information about the device, send data to the device and conversely get data streams from the device, and poll the device for interrupt data.
Here we describe, how your UWP app using C++, C#, or Visual Basic app can implement those tasks, and link to examples that demonstrate the use of classes included in Windows.Devices.Usb. We'll go over the device capabilities required in the app manifest and how to launching the app when the device is connected. And we'll show how to run a data transfer task in the background even when the app is suspended to conserve battery life.
Follow the steps in this section or, skip directly to the Custom USB device access sample. The companion sample implements all the steps here, but to keep things moving we won't walk through the code. Certain steps have a Find it in the sample section to help you find the code quickly. The structure of the sample's source files is simple and flat so you can easily find code without having to drill down through multiple layers of source files. But you may prefer to break up and organize your own project differently.
In this section
Walkthrough—Writing UWP app for USB devices
Step | Description |
---|---|
Step 1—Install the Microsoft-provided WinUSB driver as function driver for your device. | QuickStart:WinUSB (Winusb.sys) Installation You can install Winusb.sys in these ways:
|
Step 2—Get the device interface GUID, hardware ID, and device class information about your device. | You can obtain that information from the device manufacturer.
|
Step 3—Determine whether the device class, subclass, and protocol allowed by the Windows Runtime USB API set. | You can write a UWP app, if device class, subclass, and protocol code of the device is one of the following:
|
Step 4—Create a basic Visual Studio 2013 project that you can extend in this tutorial. | For more information, see Getting started with UWP apps. |
Step 5—Add USB device capabilities to the app manifest. | QuickStart:How to add USB device capabilities to the app manifest Open your Package.appxmanifest file in a text editor and add the DeviceCapability](/uwp/schemas/appxpackage/appxmanifestschema/element-devicecapability)'>DeviceCapability element with Name attribute set to 'usb' as shown in this example. Note You cannot modify the USB device capability in Visual Studio 2013. You must select and hold (or right-click) the Package.appxmanifest file in Solution Explorer and select Open With.., and then XML (Text) Editor. The file opens in plain XML. Find it in the sample: The USB device capabilities are added in the Package.appxmanifest file. |
Step 6— Extend the app to open the device for communication. | Quickstart:How to connect to a USB device (UWP app)
Silan driver download for windows 10. Find it in the sample: See files named Scenario1_DeviceConnect. |
Step 7(Recommended)—Study your USB device layout. | Review basic USB concepts about configuring the device and performing data transfers: Concepts for all USB developers. View the device configuration descriptor, interface descriptors for each supported alternate settings, and their endpoint descriptors. By using USBView, you can browse all USB controllers and the USB devices connected to them, and also inspect the device configuration. |
Step 8— Extend the app to get and show USB descriptors in the UI. | Quickstart:How to get USB descriptors (UWP app)
Find it in the sample: See files named Scenario5_UsbDescriptors. |
Step 9— Extend the app to send vendor-defined USB control transfers. | Quickstart:How to send a USB control transfer request (UWP app)
Find it in the sample: See files named Scenario2_ControlTransfer. |
Step 10— Extend the app to read or write bulk data. | Quickstart:How to send a USB bulk transfer request (UWP app)
Find it in the sample: See files named Scenario4_BulkPipes. |
Step 11— Extend the app to get hardware interrupt data. | Quickstart:How to send a USB interrupt transfer request (UWP app)
Find it in the sample: See files named Scenario3_InterruptPipes. |
Step 12— Extend the app to select an interface setting that is not currently active. | Quickstart:How to select a USB interface setting (UWP app) When the device is opened for communication, the default interface and its first setting is selected. If you want to change that setting, follow these steps:
|
Step 13— Close the device. | Quickstart:How to connect to a USB device (UWP app) After you are finished using the UsbDevice object, close the device. C++ apps must release the reference by using the delete keyword. C#/VB apps must call the UsbDevice.Dispose](/uwp/api/Windows.Devices.Usb.UsbDevice#Windows_Devices_Usb_UsbDevice_Dispose)'>UsbDevice.Dispose method. JavaScript apps must call UsbDevice.Close](/uwp/api/Windows.Devices.Usb.UsbDevice#Windows_Devices_Usb_UsbDevice_Close)'>UsbDevice.Close. Find it in the sample: See files named Scenario1_DeviceConnect. |
Step 14—Create a device metadata package for the app. | Tool:Device Metadata Authoring Wizard
Associate your app with the device by following the steps in the wizard. Enter this information about your device:
To declare the app as a privileged app for your device, follow these instructions:
Find it in the sample: See the DeviceMetadata folder. |
Step 15—Extend the app to implement AutoPlay activation so that the app is launched when the device is connected to the system. | Quickstart:Register an app for an AutoPlay device You can add AutoPlay capabilities so that app is launched when the device is connected to the system. You can enable Autoplay for all UWP apps (privileged or otherwise).
Find it in the sample: See files named Autoplay. For JavaScript, see default.js. |
Step 16—Extend the app to implement a background task that can perform length transfers to the device, such as firmware update without the app getting suspended. | To implement background task, you need two classes. The background task class implements the IBackgroundTask](/uwp/api/Windows.ApplicationModel.Background.IBackgroundTask)'>IBackgroundTask interface and contains the actual code you create to either sync or update your peripheral device. The background task class is executed when the background task is triggered and from the entry point provided in your app’s application manifest. Note The device background tasks infrastructure provided by Windows 8.1. For more information about Windows background tasks see Supporting your app with background tasks. Background task class
The UWP app registers and triggers a DeviceUseTrigger background task. The app register, trigger, and handle progress on a background task. Note The example code that follows can be applied to the DeviceServicingTrigger background task by use the corresponding objects. The only difference between the two trigger objects and their corresponding APIs are the policy checks made by Windows.
Find it in the sample: See files named Scenario7_Sync files. Background class is implemented in IoSyncBackgroundTask. |
Step 17—Run Windows App Certification Kit. | Recommended. Running Windows App Certification Kit helps you make sure your app fulfills Microsoft Store requirements, so you should do this when you've added major functionality to your app. |
Want to know more?
Learn more from related samples.
Related Samples
Learn more about designing UWP app UI.
Roadmap for UWP apps using C# and Visual Basic and Roadmap for UWP apps using C++
Learn more about creating UWP apps using C++, C#, or Visual Basic in general.
Learn about how to make your apps stay responsive when they do work that might take an extended amount of time.
Summary :
USB composite device driver error often occurs when you try connecting an old printer to a USB 3.0 port. If you are still struggling to fix it, you can read this post of MiniTool to get 4 effective troubleshooting methods.
Quick Navigation :
USB 3.0 breaks data transfer limitations. However, USB 3.0 hub sometimes will not compatible with your old devices. For example, the PlayStation Classic hack requires you to use a USB 2.0 drive.
If you want to use an old printer via the USB 3.0, you may encounter the error “USB composite device can’t work properly with USB 3.0”. To resolve this problem smoothly, please keep reading the following context.
Fix 1. Run Hardware and Devices Troubleshooter
The first and simplest method is to run the Hardware and Devices troubleshooter. It is a Windows built-in tool that can help you resolve some hardware issues. Now, follow the quick guide below:
Step 1. Right-click the Start button and select the Settings from the context menu.
Step 2. Then go to Updates & Security > Troubleshoot one by one.
Step 3. Find the Hardware and Devices section on the right pane, and then double click it and click on Run the troubleshooter.
Then the troubleshooter will detect the problems automatically for you. Once this process ends, restart your computer and see if USB composite device driver error is fixed.
Fix 2. Update USB Controller Drivers
If the above method fails to work, you can try updating or reinstalling USB controller drivers. That may fix the incompatible problem. Here’s how to do that:
Tom Usb Devices Driver Win 7
Step 1. Right-click the Start button and select the Device Manager from the context menu.

Step 2. Expand the Universal Serial Bus controllers menu, and then right-click the USB driver that comes with the error and select Update driver.
Step 3. Then you will see a pop-up window asking “how do you want to search for drivers”. You can update it automatically or manually based on your needs. After updating your USB driver, you can check if the problem is gone.
Tom Usb Devices Driver Updater
Fix 3. Update the Printer Driver
The outdated printer driver can also lead to the error “USB composite device can’t work properly with USB 3.0.” So, you can try updating your outdated printer driver. Here’s how to do that:
Step 1. Open your Control Panel, and then change the View by to Category and select the Hardware and Sound section.
Step 2. Inside the Device and Sound window, click on the Devices and Printers section. Then you can check if the printer icon comes with an exclamation point. If yes, you need to download some drivers from the official websites. And then you can follow the on-screen instructions to complete the installation.
Fix 4. Use a USB 2.0 hub or Expansions Card
Tom Usb Devices Drivers
As mentioned above, the USB hub incompatibility is the major factor that leads to the USB composite device driver error. If all the above methods fail to fix the error, you may need to consider using a USB 2.0 hub or expansion card. Compared with USB 3.0, USB 2.0 has better compatibility with some old devices.
