NDIS3PKT for NT 1.0 (c) Copyright Daniel D. Lanciani 1994-1998
All rights reserved.

NDIS3PKT for NT is licensed for use on a single machine.

TO THE EXTENT ALLOWED BY APPLICABLE LAW, NDIS3PKT IS PROVIDED
"AS IS", WITH NO EXPRESS OR IMPLIED WARRANTY, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL THE AUTHOR BE
LIABLE FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL
OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO
USE NDIS3PKT EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY
OF SUCH DAMAGES.


Ndis3pkt for NT consists of an NT kernel driver (ndis3pkt.sys), a VDD
(ndis3vdd.dll), and a real-mode stub driver (ndis3pkt.com).  Together,
these components provide a packet driver interface on top of NDIS version
3.0 or greater allowing packet driver applications to be used with
Windows/NT.  An informational program, ndisinfo.exe, lists bindings
that can be accessed from the packet driver interface.

A tcp multiplexor option allows several tcp stacks to exist on the same IP
address under most conditions.  Although it is possible to share the same
IP address between MSTCP and one or more packet driver tcp/ip stacks, this
activity adds some per-packet overhead and is disabled by default.  To enable
the MSTCP portion of the multiplexor you must use the NT device manager to
change ndis3pkt's startup mode from manual to system.  Note that with the
default setting of manual, you must allocate a separate IP address for MSTCP.
(The packet driver tcp stacks can all share one other IP address.)

With a LAN connection, the choice of using two IP addresses is largely
a performance vs. administrative tradeoff.  For dialup connections, it
is usually impractical to allocate a second IP address to the port, so
the MSTCP multiplexing capability must generally be enabled.


Installation:

Place the distribution files in a directory or on a floppy disk.  From
the network control panel, select add-protocol and indicate that you have
a driver disk (the disk/directory with the ndis3pkt files).  The network
device installer should:

-Add necessary registry entries
-Copy ndis3pkt files to the appropriate Windows directories

If you have multiple network interface cards, be sure to examine the
protocol bindings in the network control panel.  Ndis3pkt uses this
binding information for LAN adapters and binds additionally to all
NDISWAN dialup adapters.

When Windows is restarted, the packet driver interface should be available.
In each DOS session that needs packet driver support, you must run the
stub driver ndis3pkt.com.  The first optional argument selects a particular
NT device (default 0) and the second the packet driver vector (default
0x69).  You can run ndisinfo.exe to get a list of device numbers and (if
system startup is enabled) a list of devices used by MSTCP.

The ndis3log.exe program will display any buffered error messages from
the ndis3pkt.sys driver.  To exit the program, simply press return and
wait a few seconds.


Additional ndis3pkt options can be set under the Parameters sub-key of
ndis3pkt's registry entry in the appropriate controlset.  All options
are type DWORD.

buffers
Specify number of buffers for packets (max 50, min 2, default 10).

rif0
Set first default RIF byte for Ethernet over Token Ring (default 0xc2).

rif1
Set second default RIF byte for Ethernet over Token Ring (default 0x20).

tcpmux
Enable tcp multiplexor (default 1).

warnmuxfull
Issue warning when tcp multiplexor table is full (default 1).

ignorelocalbroadcast
Ignore broadcast packets that originate in the local machine (default 1).

net80230
Force 802.3 framing and packet class 11 (default 0).  IT IS
EXTREMELY UNLIKELY THAT YOU WANT TO USE THIS OPTION.

fakeether0
Pretend to be an Ethernet device even on Token Ring (default 1).

(It is possible to configure more than one network card using additional
keys, e.g., net80231, fakeether1, net80232, fakeether2, etc.)



------------------------------------------------------------------------------
Notes on the dialup adapter:

-The tcp/ip header compression option of the dialup adapter seems to corrupt
some transmissions from packet driver applications.  If you notice slow
response, try disabling this option in the tcp/ip properties of your dialup
host configuration.

-There have been some questions about setting the IP address for packet driver
applications when that address is determined dynamically by the dialup adapter.
If your server supports an open protocol like bootp/DHCP then your application
can use that protocol through ndis3pkt to obtain the dynamic IP address.  If
not then you must configure the address manually.
------------------------------------------------------------------------------
All versions of ndis3pkt for NT provide a Win32 DeviceIoControl API to
support direct packet access by 32-bit applications.  Sample functions
for calling the API are provided in the file ndis3api.c.  The API is binary
compatible with the Windows/95 version of ndis3pkt (version 2.1 and above).
------------------------------------------------------------------------------


Please send bug reports to ddl@danlan.com or

Dan Lanciani
185 Atlantic Road
Gloucester, MA 01930
(978) 283-4974
