Versions supported
- Windows 10
- Windows 8.1
Udemy is an online learning and teaching marketplace with over 130,000 courses and 35 million students. Learn programming, marketing, data science and more. Virtual COM Port Driver is available in the Standard and PRO editions, so you can choose the optimal set of features that is perfectly suited to your needs. Standard version Virtual Serial Port Driver is designed to provide your system with an unlimited number of virtual serial port pairs that work like real hardware COM interfaces and fully.
All devices operating in MTP mode are supported. Note: The MTPdrive is not a replacement for the device's factory (or Windows default) device driver. You must be able to connect your device to the computer and have it visible in the Windows Explorer, before it can be mapped as a drive letter using the MTPdrive. Select Update Driver. If Windows doesn't find a new driver, you can try looking for one on the device manufacturer's website and follow their instructions. Reinstall the device driver. In the search box on the taskbar, enter device manager, then select Device Manager. Right-click (or press and hold) the name of the device, and select Uninstall. The Device Install Kit download site does not provide access to all Emerson Process Management device files. Device files distributed on DeltaV and AMS Device Manager release media are not duplicated for download from this site.
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.
Note
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.
USBClass_02
USBClass_02&SubClass_02
- 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.
Demy Port Devices Driver Download Windows 10
Note
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
-->This topic describes the USB hardware verifier tool (USB3HWVerifierAnalyzer.exe) that is used for testing and debugging specific hardware events.
Most hardware issues manifest in ways that lead to poor end-user experience and it's often difficult to determine the exact failure. The USB hardware verifier aims at capturing hardware failures that occur in a device, port, hub, controller, or a combination of them.
The USB hardware verifier can perform these tasks:
- Capture hardware events and display information in real time.
- Generate a trace file with information about all events.
- Parse an existing trace file for event information.
This topic contains the following sections:
Getting the USB hardware verifier analyzer tool
The USB hardware verifier tool is included with the MUTT software package that is available for download at Tools in the MUTT software package.
The tools package contains several tools that perform stress and transfer tests (including power transitions) and SuperSpeed tests. The package also has a Readme document (available as a separate download). The document gives you a brief overview of the types of MUTT hardware. It provides step-by-step guidance about various tests you should run, and suggests topologies for controller, hub, device, and BIOS/UEFI testing.
How to capture events by using a USB hardware verifier
To capture events by using the hardware verifier, perform these steps:
Demy Port Devices Driver Download 64-bit
Start a session by running this command at an elevated command prompt.
The tool supports these options:
Option Description -v <VendorID>
Logs all hardware verifier events for the specified VendorID.
-p <ProductID>
Logs all hardware verifier events for the specified ProductID.
-f <ETL file>
Parses the specified ETL file. Real-time parsing is not supported. With this option, the tool parses the file offline.
/v output
Displays all events to the console.
Run the test scenario for which you want to capture hardware events.
During a session, USB hardware verifier captures information about hardware events as they occur. If you want to filter events for a particular hardware, specify the VendorId and ProductId of the hardware. The tool might not capture some information (such as VID/PID) about events that occur before the device gets fully enumerated. The missing information is available in the detailed report that is generated at the end of the session (discussed next).
Here is an example output from the hardware verifier tool:
Stop the session by pressing CTRL+C.
At the end of the session, a file named AllEvents.etl is added in the current directory. This file contains trace information about all events that were captured during the session.
In addition to AllEvents.etl, the command window shows a report. The report includes certain information that was missed in the real-time output. The following output shows an example test report for the preceding session. The report shows all events that the USB hardware verifier encountered.
In the preceding example report, note the Key field value for each record. The report categorizes the information by those Key values, making it easier to read. The same Key values are used in events captured in AllEvents.etl.
Convert AllEvents.etl to text format by running the following command:
In the output file, search for the previously noted Key values. The values are associated with one of these fields: fid_UcxController, fid_HubDevice, and fid_UsbDevice.
Open AllEvents.etl in Netmon and select Add <field_name> to display filter to filter events by controller, hub, and device.
USB hardware verifier flags
Demy Port Devices Driver Download Windows 7
Flag | Indicates that ... |
---|---|
DeviceHwVerifierClientInitiatedResetPipe | The client driver initiated a recovery action by resetting a particular pipe in response to I/O failures. Certain client drivers might perform error recovery in other scenarios. |
DeviceHwVerifierClientInitiatedResetPort | The client driver initiated a recovery action by resetting the device in response to I/O failures. Certain client drivers might perform error recovery in other scenarios. |
DeviceHwVerifierClientInitiatedCyclePort | The client driver initiated a recovery action by cycling the port. This flag causes the Plug and Play Manager to re-enumerate the device. |
DeviceHwVerifierSetIsochDelayFailure | A USB 3.0 device failed the SET_ISOCH_DELAY request. The device can fail the request because either the driver does not require the request information or a transient error occurred. However, the driver cannot differentiate between those reasons. This error is not captured in the report. |
DeviceHwVerifierSetSelFailure | A USB 3.0 device failed the SET_SEL request. The device uses the request information for Link Power Management (LPM). The device can fail the request because either the driver does not require the request information or a transient error occurred. However, the driver cannot differentiate between those reasons. This error is not captured in the report. |
DeviceHwVerifierSerialNumberMismatchOnRenumeration | The device reported a different serial number during re-enumeration as opposed to the one it reported during initial enumeration. A re-enumeration can occur as a result of a reset port or system resume operation. |
DeviceHwVerifierSuperSpeedDeviceWorkingAtLowerSpeed | The USB 3.0 device is operating a bus speed lower than SuperSpeed. |
DeviceHwVerifierControlTransferFailure | A control transfer failed to the device's default endpoint failed. The transfer can fail as a result of device or controller error. The hub logs indicate the USBD status code for the transfer failure. This flag excludes SET_SEL and SET_ISOCH_DELAY control transfers failures. Those types of requests are covered by DeviceHwVerifierSetIsochDelayFailure and DeviceHwVerifierSetSelFailure flags. |
DeviceHwVerifierDescriptorValidationFailure | A descriptor returned by the device does not conform to the USB specification. The hub log indicates the exact error. |
DeviceHwVerifierInterfaceWakeCapabilityMismatch | The RemoteWake bit is incorrectly set in the device. USB 3.0 devices that support remote wake must also support function wake. There are two ways in which the device indicates its support for function wake. The first way is through the bmAttributes field of the configuration descriptor and the second way is in its response to the GET_STATUS request targeted to the interface. For a non-composite device, the RemoteWake bit value must match the value returned by the GET_STATUS request that is targeted to interface 0. For composite devices, the RemoteWake bit must be 1 for at least one of the functions. Otherwise, this flag indicates that the device reported contradictory values in here. |
DeviceHwVerifierBusRenumeration | The device is re-enumerated on the bus. A re-enumeration can occur as a result of a reset port or system resume operation. Re-enumeration also occurs, when the device is disabled/enabled or stopped/started. |
HubHwVerifierTooManyResets | A hub has gone through too many reset operations within a short period. Even though those resets were successful, the hub is not processing requests and repeated errors occur. |
HubHwVerifierControlTransferFailure | A control transfer targeted to the hub's default endpoint failed. The transfer can fail as a result of device or controller error. The hub logs indicate the USBD status code for the failure. |
HubHwVerifierInterruptTransferFailure | A data transfer targeted to the hub's interrupt endpoint failed. The transfer can fail as a result of device or controller error. The hub logs indicate the USBD status code for the failure. If the transfer failed because of the request was canceled, the failure is not captured. |
HubHwVerifierNoSelectiveSuspendSupport | The RemoteWake bit is not set to 1 in the hub's configuration descriptor. |
HubHwVerifierPortResetTimeout | While enumerating or re-enumerating a device, the port-reset operation is timing out. A port change notification is not received indicating that the port-reset is complete. |
HubHwVerifierInvalidPortStatus | The port status of the target port is not valid as per the USB specification. Certain devices can cause the hub to report the invalid status. |
HubHwVerifierPortLinkStateSSInactive | The link between the target port and the downstream device is in an error state. |
HubHwVerifierPortLinkStateCompliance | The link between the target port and the downstream device is in compliance mode. In some scenarios involving system sleep-resume, the compliance mode error is expected and in those cases the failure is not captured. |
HubHwVerifierPortDeviceDisconnected | The downstream device on the target port is no longer connected to the bus. |
HubHwVerifierPortOverCurrent | The downstream port reported overcurrent state. |
HubHwVerifierControllerOperationFailure | A controller operation (such as enabling device, configuring endpoints) failed for the device that is attached to the target port. Failures from SET_ADDRESS and Reset endpoint requests are not captured. |