VNMID: A VxD that Hooks the Non-Maskable Interrupt

VNMID, the virtual non-maskable interrupt device, is a VxD that demonstrates hooking the non-maskable interrupt (NMI). It does not perform any actions during the NMI except to chain to the previous handler.

VNMID uses the following virtual machine manager (VMM) services:

Get_NMI_Handler_Addr

Set_NMI_Handler_Addr

Hook_NMI_Event

To use this VxD, place VNMID.386 in the Windows SYSTEM directory and add DEVICE=VNMID.386 to the [386Enh] section of the SYSTEM.INI file.

This sample code requires special VxD tools and include files; see the "VxD Tools" and "VxD Include Files" abstracts to copy these files to your development system. For more information on using the Microsoft Windows version 3.1 Device Driver Kit (DDK) files included on this CD, read the technical article "The VxD-Lite Mini-DDK." For more information on virtual device programming, see the DDK "Virtual Device Adaptation Guide."

VNMID was built and tested under Microsoft Windows version 3.1.

{ewc navigate.dll, ewbutton, /Bcodeview /T"Click to open or copy files in the vnmid project." /C"samples}

THIS TOOL IS NOT SUPPORTED BY MICROSOFT CORPORATION. IT IS PROVIDED "AS IS" BECAUSE WE BELIEVE IT MAY BE USEFUL TO YOU. PLEASE DO NOT CONTACT MICROSOFT PRODUCT SUPPORT SERVICES FOR SUPPORT OR ASSISTANCE SHOULD YOU HAVE PROBLEMS USING THIS TOOL.

READ THE ASSOCIATED DOCUMENTATION, IF ANY, REGARDING THIS TOOL PRIOR TO USING. ANY USE BY YOU OF THE TOOL IS AT YOUR OWN RISK. THE TOOL IS PROVIDED FOR USE "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.