Decimator Design USB Devices Driver Download For Windows

12/13/2021by admin

Versions supported

Computer with USB 3.0 or USB 2.0. port Latest version of Mac OS® X 10.11 and later / Windows® 7 and later Minimum free disk space: 600MB recommended Box Content: LaCie Porsche Design Mobile Drive USB 3.0 cable (USB 2.0 compatible.) Quick Install Guide USB. Download drivers for NVIDIA products including GeForce graphics cards, nForce motherboards, Quadro workstations, and more. Update your graphics card drivers today. For OS-X 10.9 Mavericks, 10.10 Yosemite, 10.11 El Capitan, 10.12 Sierra and 10.13 High Sierra Supports MD-LX, MD-HX, DMON-QUAD, DMON-6S, DMON-12S, DMON-16S, DMON-16SL. ASUS Download Center Download the latest drivers, software, firmware and user manuals. Sync file between devices and share data to friends. Windows 10 - How to enter BIOS configuration? Notebook How to boot the system from USB flash drive/CD-ROM Motherboard AI Suite 3 - Introduction Notebook Smart Gesture.

  • Windows 10
  • Windows 8.1

Applies to

  • Device manufacturers of CDC Control devices

Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.

In Windows 10, the driver has been rewritten by using the Kernel-Mode Driver Framework that improves the overall stability of the driver.

  • Improved PnP and power management by the driver (such as, handling surprise removal).
  • Added power management features such as USB Selective Suspend.

In addition, UWP applications can now use the APIs provided by the new Windows.Devices.SerialCommunication namespace that allow apps to talk to these devices.

Usbser.sys installation

Load the Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.


If you trying to install a USB device class driver included in Windows, you do not need to download the driver. They are installed automatically. If they are not installed automatically, contact the device manufacturer. For the list of USB device class driver included in Windows, see USB device class drivers included in Windows.

Windows 10

In Windows 10, a new INF, Usbser.inf, has been added to %Systemroot%Inf that loads Usbser.sys as the function device object (FDO) in the device stack. If your device belongs to the Communications and CDC Control device class, Usbser.sys is loaded automatically.You do not need to write your own INF to reference the driver. The driver is loaded based on a compatible ID match similar to other USB device class drivers included in Windows.



  • If you want to load Usbser.sys automatically, set the class code to 02 and subclass code to 02 in the Device Descriptor. For more information, see USB communications device class. With this approach, you are not required to distribute INF files for your device because the system uses Usbser.inf.
  • If your device specifies class code 02 but a subclass code value other than 02, Usbser.sys does not load automatically. Pnp Manager tries to find a driver. If a suitable driver is not found, the device might not have a driver loaded. In this case, you might have to load your own driver or write an INF that references another in-box driver.
  • If your device specifies class and subclass codes to 02, and you want to load another driver instead of Usbser.sys, you have to write an INF that specifies the hardware ID of the device and the driver to install. For examples, look through the INF files included with sample drivers and find devices similar to your device. For information about INF sections, see Overview of INF Files.


Microsoft encourages you to use in-box drivers whenever possible. On mobile editions of Windows, such as Windows 10 Mobile, only drivers that are part of the operating system are loaded. Unlike desktop editions, it is not possible to load a driver through an external driver package. With the new in-box INF, Usbser.sys is automatically loaded if a USB-to-serial device is detected on the mobile device.

Windows 8.1 and earlier versions

In Windows 8.1 and earlier versions of the operating system, Usbser.sys is not automatically loaded when a USB-to-serial device is attached to a computer. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) by using the Include directive. The directive is required for instantiating the service, copying inbox binaries, and registering a device interface GUID that applications require to find the device and talk to it. That INF specifies 'Usbser' as a lower filter driver in a device stack.

The INF also needs to specify the device setup class as Modem to use mdmcpq.inf. Under the [Version] section of the INF, specify the Modem and the device class GUID. for details, see System-Supplied Device Setup Classes.

For more information, see this KB article.

Configure selective suspend for Usbser.sys

Starting in Windows 10, Usbser.sys supports USB Selective Suspend. It allows the attached USB-to-serial device to enter a low power state when not in use, while the system remains in the S0 state. When communication with the device resumes, the device can leave the Suspend state and resume Working state. The feature is disabled by default and can be enabled and configured by setting the IdleUsbSelectiveSuspendPolicy entry under this registry key:

To configure power management features of Usbser.sys, you can set IdleUsbSelectiveSuspendPolicy to:

  • '0x00000001': Enters selective suspend when idle, that is, when there are no active data transfers to or from the device.

  • '0x00000000': Enters selective suspend only when there are no open handles to the device.

That entry can be added in one of two ways:

  • Write an INF that references the install INF and add the registry entry in the HW.AddReg section.

  • Describe the registry entry in an extended properties OS feature descriptor. Add a custom property section that sets the bPropertyName field to a Unicode string, 'IdleUsbSelectiveSuspendPolicy' and wPropertyNameLength to 62 bytes. Set the bPropertyData field to '0x00000001' or '0x00000000'. The property values are stored as little-endian 32-bit integers.

    For more information, see Microsoft OS Descriptors.

Develop Windows applications for a USB CDC device

If you install Usbser.sys for the USB CDC device, here are the application programming model options:

  • Starting in Windows 10, a Windows app can send requests to Usbser.sys by using the Windows.Devices.SerialCommunication namespace. It defines Windows Runtime classes that can use to communicate with a USB CDC device through a serial port or some abstraction of a serial port. The classes provide functionality to discover such serial device, read and write data, and control serial-specific properties for flow control, such as setting baud rate, signal states.

  • In Windows 8.1 and earlier versions, you can write a Windows desktop application that opens a virtual COM port and communicates with the device. For more information, see:

    Win32 programming model:

    • .NET framework programming model:

Related topics


In this topic you'll use the USB Kernel-Mode Driver template provided with Microsoft Visual Studio Professional 2019 to write a simple kernel-mode driver framework (KMDF)-based client driver. After building and installing the client driver, you'll view the client driver in Device Manager and view the driver output in a debugger.

For an explanation about the source code generated by the template, see Understanding the KMDF template code for a USB client driver.


For developing, debugging, and installing a kernel-mode driver, you need two computers:

  • A host computer running Windows 7 or a later version of the Windows operating system. The host computer is your development environment, where you write and debug your driver.
  • A target computer running Windows Vista or a later version of Windows. The target computer has the kernel-mode driver that you want to debug.

Before you begin, make sure that you meet the following requirements:

Software requirements

  • Your host computer hosts your development environment and has Visual Studio Professional 2019.
  • Your host computer has the latest Windows Driver Kit (WDK) for Windows 8. The kit include headers, libraries, tools, documentation, and the debugging tools required to develop, build, and debug a KMDF driver. To get the latest version of the WDK, see Download the Windows Driver Kit (WDK).
  • Your host computer has the latest version of debugging tools for Windows. You can get the latest version from the WDK or you can Download and Install Debugging Tools for Windows.
  • Your target computer is running Windows Vista or a later version of Windows.
  • Your host and target computers are configured for kernel debugging. For more information, see Setting Up a Network Connection in Visual Studio.

Hardware requirements

Get a USB device for which you will be writing the client driver. In most cases, you are provided with a USB device and its hardware specification. The specification describes device capabilities and the supported vendor commands. Use the specification to determine the functionality of the USB driver and the related design decisions.

If you are new to USB driver development, use the OSR USB FX2 learning kit to study USB samples included with the WDK. You can get the learning kit from OSR Online. It contains the USB FX2 device and all the required hardware specifications to implement a client driver.

You can also get a Microsoft USB Test Tool (MUTT) devices. 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.

Recommended reading

  • Developing Drivers with Windows Driver Foundation, written by Penny Orwick and Guy Smith. For more information, see Developing Drivers with WDF.


Step 1: Generate the KMDF driver code by using the Visual Studio Professional 2019 USB driver template

For instructions about generating KMDF driver code, see the steps in Writing a KMDF driver based on a template.

For USB-specific code, select the following options in Visual Studio Professional 2019

  1. In the New Project dialog box, in the search box at the top, type USB.
  2. In the middle pane, select Kernel Mode Driver, USB (KMDF).
  3. Select Next.
  4. Enter a project name, choose a save location, and select Create.

The following screen shots show the New Project dialog box for the USB Kernel-Mode Driver template.

This topic assumes that the name of the Visual Studio project is 'MyUSBDriver_'. It contains the following files:

Decimator Design Usb Devices Driver Download For Windows Xp

Public.hProvides common declarations shared by the client driver and user applications that communicate with the USB device.
<Project name>.infContains information required to install the client driver on the target computer.
Trace.hDeclares tracing functions and macros.
Driver.h; Driver.cDeclares and defines driver entry points and event callback routines.
Device.h; Device.cDeclares and defines event callback routine for the prepare-hardware event.
Queue.h; Queue.cDeclares and defines an event callback routine for the event raised by the framework's queue object.

Step 2: Modify the INF file to add information about your device

Before you build the driver, you must modify the template INF file with information about your device, specifically the hardware ID string.

In Solution Explorer, under Driver Files, double-click the INF file.

In the INF file you can provide information such as the manufacturer and provider name, the device setup class, and so on. One piece of information that you must provide is the hardware identifier of your device.

Decimator Design Usb Devices Driver Download For Windows 8.1

To provide the hardware ID string:

  1. Attach your USB device to your host computer and let Windows enumerate the device.

  2. Open Device Manager and open properties for your device.

  3. On the Details tab, select Hardward Ids under Property.

    The hardware ID for the device is displayed in the list box. Select and hold (or right-click) and copy the hardware ID string.

  4. Replace USBVID_vvvv&PID_pppp in the following line with your hardware ID string.

    [Standard.NT$ARCH$] %MyUSBDriver_.DeviceDesc%=MyUSBDriver__Device, USBVID_vvvv&PID_pppp

Step 3: Build the USB client driver code

To build your driver

  1. Open the driver project or solution in Visual Studio Professional 2019
  2. Select and hold (or right-click) the solution in the Solution Explorer and select Configuration Manager.
  3. From the Configuration Manager, select the Active Solution Configuration (for example, Windows 8 Debug or Windows 8 Release) and the Active Solution Platform (for example, Win32) that correspond to the type of build you're interested in.
  4. From the Build menu, select Build Solution.

Decimator Design USB Devices Driver Download For Windows

For more information, see Building a Driver.

Step 4: Configure a computer for testing and debugging

To test and debug a driver, you run the debugger on the host computer and the driver on the target computer. So far, you have used Visual Studio on the host computer to build a driver. Next you need to configure a target computer. To configure a target computer, follow the instructions in Provision a computer for driver deployment and testing.

Step 5: Enable tracing for kernel debugging

The template code contains several trace messages (TraceEvents) that can help you track function calls. All functions in the source code contain trace messages that mark the entry and exit of a routine. For errors, the trace message contains the error code and a meaningful string. Because WPP tracing is enabled for your driver project, the PDB symbol file created during the build process contains trace message formatting instructions. If you configure the host and target computers for WPP tracing, your driver can send trace messages to a file or the debugger.

To configure your host computer for WPP tracing

  1. Create trace message format (TMF) files by extracting trace message formatting instructions from the PDB symbol file.

    You can use Tracepdb.exe to create TMF files. The tool is located in the <install folder>Windows Kits8.0bin<architecture> folder of the WDK. The following command creates TMF files for the driver project.

    tracepdb -f [PDBFiles] -p [TMFDirectory]

    The -f option specifies the location and the name of the PDB symbol file. The -p option specifies the location for the TMF files that are created by Tracepdb. For more information, see Tracepdb Commands.

    At the specified location you'll see three files (one per .c file in the project). They are given GUID file names.

  2. In the debugger, type the following commands:

    1. .load Wmitrace

      Loads the Wmitrace.dll extension.

    2. .chain

      Verify that the debugger extension is loaded.

    3. !wmitrace.searchpath +<TMF file location>

      Add the location of the TMF files to the debugger extension's search path.

      The output resembles this:

      Trace Format search path is: 'C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDE;c:driverstmf'

To configure your target computer for WPP tracing

  1. Make sure you have the Tracelog tool on your target computer. The tool is located in the <install_folder>Windows Kits8.0Tools<arch> folder of the WDK. For more information, see Tracelog Command Syntax.

  2. Open a Command Window and run as administrator.

  3. Type the following command:

    tracelog -start MyTrace -guid #c918ee71-68c7-4140-8f7d-c907abbcb05d -flag 0xFFFF -level 7-rt -kd

    The command starts a trace session named MyTrace.

    The guid argument specifies the GUID of the trace provider, which is the client driver. You can get the GUID from Trace.h in the Visual Studio Professional 2019 project. As another option, you can type the following command and specify the GUID in a .guid file. The file contains the GUID in hyphen format:

    tracelog -start MyTrace -guid c:driversProvider.guid -flag 0xFFFF -level 7-rt -kd

    You can stop the trace session by typing the following command:

    tracelog -stop MyTrace

Step 6: Deploy the driver on the target computer

  1. In the Solution Explorer window, select and hold (or right-click) the <project name>Package , and choose Properties.
  2. In the left pane, navigate to Configuration Properties > Driver Install > Deployment.
  3. Check Enable deployment, and check Import into driver store.
  4. For Remote Computer Name, specify the name of the target computer.
  5. Select Install and Verify.
  6. Select Ok.
  7. On the Debug menu, choose Start Debugging, or press F5 on the keyboard.

Note Do not specify the hardware ID of your device under Hardware ID Driver Update. The hardware ID must be specified only in your driver's information (INF) file.

For more information about deploying the driver to the target system in Visual Studio Professional 2019, see Deploying a Driver to a Test Computer.

You can also manually install the driver on the target computer by using Device Manager. If you want to install the driver from a command prompt, these utilities are available:

  • This tool comes with the Windows. It is in WindowsSystem32. You can use this utility to add the driver to the driver store.

    For more information, see PnPUtil Examples.

  • This tool comes with the WDK. You can use it to install and update drivers.

Step 7: View the driver in Device Manager

  1. Enter the following command to open Device Manager:


  2. Verify that Device Manager shows a node for the following node:



Step 8: View the output in the debugger

Visual Studio first displays progress in the Output window. Then it opens the Debugger Immediate Window. Verify that trace messages appear in the debugger on the host computer. The output should look like this, where 'MyUSBDriver_' is the name of the driver module:

Decimator Design Usb Devices Driver Download For Windows 10

Related topics

Decimator Design Usb Devices Driver Download For Windows 7

Understanding the KMDF template code for a USB client driver
Getting started with USB client driver development

Comments are closed.