Microsoft KB Archive/175416

{|
 * width="100%"|

HOWTO: Obtain a NDIS Trace on Win95 for an NDIS Driver

 * }

Q175416

-

The information in this article applies to:


 * Microsoft Win32 Device Driver Kit (DDK) Windows 95

-

SUMMARY
You can get a NDIS trace for your driver by following the instructions below. You can use this to debug your driver and as a tool to understand and compare your driver to other NDIS drivers.

Tools

 * Debug binaries of NDIS.VXD, and the symbol file NDIS.SYM, obtained from the web site http://www.microsoft.com/support.
 * WDEB386.EXE (Windows kernel debugger), included in the Win32 SDK and Windows 95 DDK.
 * Terminal application to be run on a host machine.
 * Null modem cable.

Preparation for a NDIS Debug Session
On the host machine:


 * Copy the terminal application in a convenient directory.

On the target machine:

 Copy the debug version of NDIS.VXD and NDIS.SYM in the \WINDOWS\SYSTEM directory.  Create a file WDEB31E.CMD to load symbols for a debugging session. The following sample file is set up to load the symbols for NDIS.VXD:

      /X /b /S:C:\WINDOWS\SYSTEM\NDIS.SYM <> C:\WIN95\WIN.COM    Create a file called WD31E.BAT to start WDEB386.EXE. The WDEB31E.BAT file calls the WDEB31E.CMD file to load Windows 95 and the symbols for a debugging session:

 C:\WDEB386.EXE /r:19200 /c:2 /F:c:\WDEB31E.CMD    Modify your AUTOEXEC.BAT file to call the WD31E.BAT file:

      [ASCII 133].. [ASCII 133].. C:\WD31E.BAT [ASCII 133]. [ASCII 133]. <End of file> </li></ol>

Test the Null Modem Connection
Connect the COM ports (for example, COM2) on the host and the target machine via a null modem cable. Configure the terminal application on the host and the target machine to run at the same baud. Make sure that data flows from the target to the host. Once data flows from the target to the host, you are ready to start a debugging session.

Start the Debugging Session

 * Start the terminal application on the host.
 * Reboot the target machine.

The /b option in the WDEB31E.CMD file will cause the debugger to break in VMM. At this point the NDIS symbols are loaded and the debugger output on the terminal will look as follows:

<pre class="FIXEDTEXT">  "   Kernel Debugger  Version 4.0.4 06/29/95 19:16:07  [80386]   Symbols linked (NDIS)   Broken in at start of VMM32 init because of /B option to wdeb386   AX=0000F001  BX=00000000  CX=00000001  DX=00037774  SI=C03682BC   DI=C0320204  IP=C0360862  SP=C036810C  BP=C03681E8  CR2=00000000   CR3=004C0  IOPL=3  F=-- -- CS=0028  SS=0030  DS=0030  ES=0030  FS=0030   GS=0030 -- NV UP DI PL NZ NA PO NC   0028:C0360862  MOV     ESI,DWORD PTR [C036827C]   DS:C036827C=00030856   #   "

To enable NDIS trace, set the NdisTraceImpt flag as follows:

<pre class="FIXEDTEXT">   #e _NdisTraceImpt 1 #g

As a result, NDIS outputs information on the serial port, which will appear on the terminal application on the target machine.