WINPKT - Interface between Microsoft Windows and a Packet Driver Introduction: The WINPKT.COM program has undergone various changes since it was first released. We are enclosing two versions. The first one is WINPKT.COM on the Kermit diskette. This one works with MS-DOS Kermit 3.14 and it also works with Winsock (but this does not mean that Kermit itself works with Winsock, since Winsock is only available to 100% native Windows applications, which MS-DOS Kermit is not). In fact, this is the version of WINPKT that is distributed with Trumpet Winsock. Not much is known about this version, except what has just been said, and that its "user interface" is different from previous versions. Instead of taking two interrupt numbers on the command line, it takes only one, as in this example in which a packet driver is started on interrupt 0x60, and then WINPKT is told to use the same interrupt: NE2000 0x60 2 0x300 WINPKT 0x60 This version of WINPKT comes without any documentation. The second version, stored on the Kermit diskette as WINPKT9.COM, is the older "two-interrupt" version, which is described below. This description still applies to the newer one, except for the "user interface". If you have trouble with the new one, and you don't need to use Trumpet Winsock, we recommend you use the older one, which we can support. 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 the older WINPKT (WINPKT9): 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. To use the newer WINPKT, start the packet driver on whatever interrupt you want, and then start WINPKT, telling it the same interrupt ne2000 0x60 2 0x300 winpkt 0x60 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). (The new WINPKT simply takes over the Packet driver's interrupt.) 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:\winpkt9 0x60 0x63 (Old WINPKT) c:\ipx (Packet Driver version of Novell's IPX) c:\netx (Netware shell) @echo on or (new WINPKT): @echo off c:\wd8003e 0x60 7 0x280 0xca00 (Regular Packet Driver) c:\winpkt 0x60 (WINPKT) c:\ipx (Packet Driver version of Novell's IPX) c:\netx (Netware shell) @echo on (End of WINPKT.DOC)