Control Message Monitor VxD:
---------------------------
MsgMon VxD will log all the control messages with time stamp in
the root directory of "C" drive. It has been written in C++ and
initialization is done in a constructor of static object. Use
TestVxD.Exe supplied with this package to dynamically load the
VxD. To load it statically copy it to Win95 system directory
and insert a device entry (device=msgmon.vxd) in system.ini file.
When unloading/shutdown, it will write all the intercepted
messages in "c:\msgmon.log' file with a time stamp.

I have replaced the original control procedure in DDB with a new
one to avoid writing handler functions for all the messages. I
have called the destructor when handling SYS_VM_TERMINATE message
because after that IFSMgr's ring0 file is not working properly.
(For dynamically loaded VxD all the static destructors are called
automatically after processing SYS_DYNAMIC_DEVICE_EXIT message.)

To build VxD, change directory paths of DDK, SDK, MSVC++, etc., in
the "tools" section of the MAKEFILE to their appropriate paths on
your machine, execute NMAKE command from DOS-prompt or open MsgMon.mdp
project file in MSDev Studio.


