Driver for Virtual COM Port RRS feed

  • Question

  • Hello All

    We are working on USB device client driver on win 10 IOT Core for some custom board(not chipidea/synopsys), where we have some queries related to the drivers provided by Microsoft and Third party based on the the information available in the following link"https://"

    Query 1: In kernel mode we can able to see MyUSBFN.sys, MyUSBfnser.sys, MyUSBfnstorage.sys. Which driver need to be ported if I want my device to be recognized as a Virtual COM port in HOST machine?. OR Do we have to develop driver specifically for this purpose.?

    Query 2: If there is some driver for this purpose, is it universal driver? can I use it in win 10 IOT Core by copying from Windows 10 or from any other architecture?

    Thank you in advance



    Tuesday, January 21, 2020 1:10 PM

All replies

  • Hi Can you please someone clarify my doubts?
    Thursday, January 23, 2020 4:54 AM
  • MyUSBfn.sys, MyUSBfnser.sys and MyUSBfnstorage.sys are not real drivers.  They are just example names for drivers that a vendor might have to write.  You would need to write a MyUSBfnser.sys driver (where "fnser" is short for "function serial").

    Tim Roberts | Driver MVP Emeritus | Providenza & Boekelheide, Inc.

    Thursday, January 23, 2020 7:59 AM
  • Hello Tim

    Thank you for the reply.

    Can you tell me, whether the USBfnser.sys is hardware independent.? If so, can you please suggest me any USBfnser.sys driver which could be used on Intel atom E3900 processor.

    If not can you please share me any example for the same where I could refer and develop myUSBfnser.sys driver.

    Thursday, January 23, 2020 9:32 AM
  • The only time you need to write one of these drivers is if your hardware is non-standard and you want to leverage the existing Windows driver stacks. Standard hardware is supported by the in-box drivers. If you're building your own hardware, then it would be easier to implement the host-controller interface that the standard drivers expect, and then you won't need to write a driver.

    I suppose that you could write a virtual COM port this way, but there is already a virtual serial driver in the WDK samples, so why bother?


    Azius Developer Training Windows device driver, internals, security, & forensics training and consulting. Blog at

    Thursday, January 23, 2020 10:59 PM
  • First, let's make sure that you're looking in the right place.  For an IoT system, there are two very different types of USB driver.  First is the same kind of driver you get in a desktop system, when you plug a USB device in.  That's what Brian is talking about.

    The page you pointed to is talking about the other end, when your system is itself a USB device, usually with USB On-The-Go, that will be plugged into another host system.  Is that really what you are doing?

    As a rule, the drivers that run on a USB device will be provided in the board support package for the board.  Writing such a driver requires an intimate understanding of the board.  Exactly what kind of chip do you plan to support?  Is actually a UART?

    Tim Roberts | Driver MVP Emeritus | Providenza & Boekelheide, Inc.

    Friday, January 24, 2020 7:54 AM
  • Hello Tim,

    Yeah you are very correct. I wanted to develop device side driver which will be connected to another host system through USB OTG. 

    It is not an UART. It is USB, but it should be recognized as Com port  in the host system. Off course it should accept serial messages over RS232 port with specified baud rate and all. 

    For that I need to develop ACPI driver, Role switching driver, USB function controller driver and USB function class driver.

    I have clarity on all of the above drivers and got samples for the same. However for USB function class driver, I am expecting to have some sample code or any guide which gives more clarity on the same.

    Hardware: Intel Atom

    Thank you

    Monday, January 27, 2020 6:12 AM
  • > It is not an UART. ... accept serial messages over RS232 port with
    > specified baud rate and all.

    So, do you have a physical RS232 port or not?  Is that a standard part on the SBC?  If so, the vendor BSP should have it.  Have you looked through the vendor's material?

    The real work in a driver is split between a function client and a function class driver, but I have not written one.

    Tim Roberts | Driver MVP Emeritus | Providenza & Boekelheide, Inc.

    Monday, January 27, 2020 7:33 AM
  •  > do you have a physical RS232 port or not?  Is that a standard part on the SBC?

    There is no physical RS232 port, I have only USB device client port.

    Monday, January 27, 2020 9:24 AM
  • Any simple Communication Device Class(CDC) driver sample will help me. Since I wanted to develop a Communication Device Class(CDC) driver for my win IOT core device.

    I am not needed any information about Host system as of now. Fortunately USBSer.sys will do better in win 10 host system and it is enough for me right now.

    Tuesday, January 28, 2020 6:39 AM