This article is from the Programming VCOMM FAQ, by firstname.lastname@example.org (Taed Nelson) with numerous contributions by others.
[Contributed by Taed Nelson (email@example.com).]
In some cases (particularly if there are no logical resources), the port
driver will not actually attach to any physical device. Nonetheless, since
UNIMODEM (and other system modules) is such a handy beast, some people may
wish to emulate a "virtual modem". Thus, UNIMODEM will think that there is
actually a modem attached to the port, when there is really only the port
The easy way to approach this is to pick a modem and emulate it. This
requires some modes and states within the port driver, but it isn't too
difficult (just time-consuming). A good place to start is with the "Hayes AT
Command Reference". To be supported as the W95 "Standard Modem", there are
very few AT commands that must be recognized. See \WINDOWS\INF\MDMGEN.INF for
what needs to be supported.
The "better" method is to write your own modem INF file. There are examples
in \WINDOWS\INF\MDM*.INF. There is a lot of documentation for this in the
MSDN DDK. It is also possible for your virtual modem to be auto-detected by
A similar approach can be taken for printers.