

There's still one possible out: Create a really small device driver / kernel module to create the symlink yourself, using IoCreateSymbolicLink. However, it seems there's a hangup - according to this answer, CreateFile will only accept arguments that target the \GLOBAL?\ section of the object manager - it will only accept \\.\ as the path prefix, and won't accept, for instance \\.\Device\QTUSBSerial0 or some similar string. Naively, I would think it would be possible to path arbitrary Object Manager paths to CreateFile to access objects without having to rely on the \\.\ -to- \GLOBAL?\ mapping. If you were to watch WinObj before and after this special software runs, you might find out what target device is symlinked to COMX, and then you might be able to find out if that real device is actually always there. In my case, you can see that \GLOBAL?\COM3 is actually wired to \Device\QTUSBSerial0. Here is what the path looks like using WinObj: Interestingly though, user-space programs can access it by calling CreateFile, using a special prefix.įor instance, one way that you open serial ports in windows is by calling This is a path that maps to the Object Manager path \GLOBAL?\COM3. Think of it as Window's horrible version of `/dev'. Have you ever seen the Windows Object Manager? It's a neat little namespace in Windows that is used for wiring and exposing all types of crazy little objects, including devices-as-files. Keep in mind that you see the curly tail of a pig in a poke, best to cut your losses by returning the device and buying another one from a different manufacturer. They of course prefer anybody to use their shovelware. They however don't often return the phone call and do not include such details in the manual. Hardly a guarantee for success, best to ask the manufacturer for the details.

Using Dumpbin.exe /imports on the utility can provide useful implementation details, as does SysInternals' Process Monitor.

Like IoSpy, a utility that is included with the WDK. The latter is usually done through a DeviceIoControl() call, the kind you can spy on with a filter driver. sys file then you can scratch that possibility. sys file, if you don't see a prompt when you run their software and don't see an installed service that might do it nor that. If they don't show up in Device Manager until you run their software then it either installs a device driver dynamically or it sends a secret handshake to the driver to tell it to start emulating the port. Virtual serial ports are emulated by the device driver that came with the device.
