From - Thu Oct 02 10:41:03 1997 Path: news.mitre.org!blanket.mitre.org!news.tufts.edu!cam-news-feed5.bbnplanet.com!cam-news-hub1.bbnplanet.com!news.bbnplanet.com!news.maxwell.syr.edu!news-peer.sprintlink.net!news.sprintlink.net!Sprint!newsfeed.internetmci.com!199.201.128.9!news.silcom.com!news.genuity.net!not-for-mail From: Chris_Budd@inter-tel.com Newsgroups: comp.os.ms-windows.programmer.nt.kernel-mode Subject: NT, x86, NMI (IOCHCHK on ISA) Date: Wed, 01 Oct 1997 21:55:31 GMT Organization: Genuity Inc. Phoenix, AZ Lines: 38 Message-ID: <3432c6ac.189648640@news.genuity.net> NNTP-Posting-Host: 192.68.180.123 X-Newsreader: Forte Free Agent 1.1/32.230 I have been trying to use the NMI interrupt (IOCHCHK on the ISA bus, pin A1) on an x86 running WinNT 4.0 (no service packs). My question now focuses on the return from this NMI interrupt handler; I cannot seem to IRETD correctly back into the normal loop that was interrupted by the NMI interrupt. I even copied much of the code from NT's NMI handler (KiTrap02) so that I mark my Task State Segment as nonbusy, the previous TSS as busy, set the Nested Task Flags, etc. I always seem to get an unhandled or unexpected exception upon executing my IRETD instruction; however, NT's IRETD never gets executed as the code generates a blue screen with the NMI information. I have searched the NT DDK, the Web, and the NT Dev archives (where I found the following post). I have read through a couple chapters on interrupts in 386 books, and Custer's Inside NT; in addition I have read the Dr. Dobbs article (May 1996 by Dale Roberts) on doing Direct I/O from the application level in NT, which gave me some hope of actually "hooking" this interrupt out from underneath NT. I also searched for NMI in the WDM DDK (from WinHEC April 1997) and the Win95 DDK. In the Win95 DDK I was surprised to find what appeared to be routines (e.g., Hook_NMI_Event) for drivers to chain onto the NMI interrupt. However, nothing of the sort is in the WinNT DDK or WDM DDK. 1.) Does anyone use this IOCHCHK pin (NMI) on the ISA bus in either Win95 or WinNT? 2.) Does anyone know anything else I can try in my NMI handler to return to the Task that the NMI interrupted? 3.) Does anyone know anything else on x86/NT platform that could wake up a "dead" machine? Thanks in advance, An NMI-Frustrated Chris.