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.

 


Sources

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).