WINPKT - Interface between Microsoft Windows and a Packet Driver

Prof. Joe R. Doupnik, Utah State University, Logan Utah

May, 1992

WINPKT is a helper program for Packet Drivers, called a "shim", because it is
inserted between two other programs that normally talk directly to each other.
It does an essential job for applications that use packet drivers and that run
under Windows: it knows how to contact the application properly when a packet
arrives for it.  The reason this is a tricky business is that Windows moves
applications around in memory, but the packet driver thinks its applications
are at fixed addresses.  If a packet driver attempts delivery the process will
likely cause major systems problems (or worse) when the packet data is written
to the wrong address.  To use WINPKT:

 1. Start your packet driver, but give it an interrupt number higher than
    the normal 0x60.

 2. Start WINPKT with a command line of:

       winpkt win_int pd_int

The first item, win_int, is the interrupt seen by applications as if WINPKT
were a Packet Driver.  Let win_int be 0x60.  The second item, pd_int, is the
interrupt of the real Packet Driver, say 0x63.  The two must be different
values and please make win_int be SMALLER than pd_int.  

 3. Then start Windows.

Tell applications to use the win_int value for a Packet Driver interrupt.
Many applications will search for it instead, thus by making win_int smaller
than pd_int they will find WINPKT instead of the Packet Driver (and that's
what we want to happen).

WINPKT does NOT permit one to run multiple TCP/IP applications together in
Windows.  There are fundamental reasons why this should not be done.  It is
fine to leave WINPKT installed when Windows is not active, because it becomes
transparent then.  Please do NOT use the "-w" switch of Crynwr Collection
Packet Drivers with WINPKT; that switch causes packets to be discarded.  Also
it is not necessary to "fix application in memory" via the Windows PIF file
when WINPKT is installed because WINPKT is smart enough to let that
restriction be removed.

Here is a sample network startup Batch file with all the components in place:

  @echo off
  c:\wd8003e 0x63 7 0x280 0xca00      (Regular Packet Driver)
  c:\winpkt 0x60 0x63                 (WINPKT)
  c:\ipx                              (Packet Driver version of Novell's IPX)
  c:\netx PS=edu-usu-netlab2          (Novell, connnect to my server)
  @echo on

(End of WINPKT.DOC)
