Roadmap of the Unimodem Source Code
Owner: JosephJ
Last Modified: 5/30/1997
Contents
Documentation -- Pointers to documentation included in this drop.
Sources -- Brief description of the source code directories included in this drop.
Documentation
Documentation files are under .\doc. They are a collection of word docs and html files.
Architecture Overview (.\docs\html\design\um5_dov.doc) - overview of unimodem 5.0 design, with pointers to more detailed information. Read this before any of the following documentation. WARNING: This document has not been updated recently. In particular, the architecture has changed so that there is no longer an explicit set of "media handler" which communicate to the media-specific drivers. Instead, the serial wave driver call into IOCTLs exposed by modem.sys to start/stop play/record. Furthermore, the extensibility architecture has changed -- instead of a separate extensibility dll, the extensibility dll is in the form of a layered user-mode minidriver -- visualize this as a box above in-between the TSP and the user-mode mini-drivers. Furthermore, it was designed for internal use and has many links that are not enabled in this external drop. Nevertheless, it remains a very useful overview.
TSP Implementation (.\docs\html\design\tsp5imp.doc)-- Implementation notes for the TSP. This includes a proposed specification for extending the TSP. Since documentation for the interfaces is relatively sketchy, this is a very useful document to help someone read the TSP code and understand the implementation. This document also identifies the key source files in the TSP.
Mini Driver (.\docs\html\design\um5mdd.doc) -- The specification and design of the user-mode unimodem minidriver and modem-specific kernel-mode components. WARNING: This document has not been updated recently. However it is still relevant.
PnP Design (.\docs\html\design\nt5pnp.doc) A brief note on the changes required to support PnP on Unimodem for NT5.0.
Following are a listing of the key sub-directories and the components they build.
.\private\ntos\dd\modem
Modem.sys, the unimodem kernel-mode component.
.\public\sdk\inc
Only ntddmodm.h, which contains definitions of IOCTLS used to control modem.sys.
.\private\unimodem\inc
Some common unimodem private internal header files. The most important one is umdmmini.h, which is the UM5 minidriver header file.
.\private\unimodem\src
Mmost user-mode unimodem code lives here.
.\private\unimodem\src\inc
Common private headers specific to new code for UM5.
.\private\unimodem\src\tsp
Builds UNIMDM.TSP, the dll that exports the TSPI APIS. Note: the document .\docs\design\tsp5imp.doc describes the implementation and points to the key source files.
.\private\unimodem\src\atmini
Builds UNIMDMAT.DLL, the AT-Minidriver. Note: the document .\docs\design\um5mdd.doc describes the design of the AT-Minidriver.
.\private\unimodem\src\nt5plat
Builds UNIPLAT.DLL for NT, which provides wrappers around platform-specific entrypoints.
.\private\unimodem\src\win95plat
Builds UNIPLAT.DLL for Win95 (not functional at present).
.\private\unimodem\src\serwvdrv
Builds SERWVDRV.DLL, the Unimodem Serial Wave Driver for Class-8 modems.
.\private\unimodem\src\umdmxfrm
Builds UMDMXFRM.DLL, the Unimodem Serial Wave Driver for Class-8 modems.
.\private\unimodem\src\testmini
Builds ATMODEM.EXE, a test application that tests the unimodem minidriver directly.
.\private\unimodem\src\stress\mdmmini
Builds MDMMINI.EXE, stress test of the minidriver.
.\private\unimodem\src\stress\mdmtapi
Builds MDMTAPI.EXE, system stress test for unimodem datamodem connections (this is a TAPI app).
.\private\unimodem\src\stress\vmdmtest
Builds VMDMTEXT.EXE, a app that can dial and answer AUTOMATEDVOICE calls (this is a TAPI app).