home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
PPPBCKP
/
NDIS3PK2.ZIP
/
README
< prev
Wrap
Text File
|
1998-09-21
|
9KB
|
218 lines
IMPORTANT NOTE:
This is a demo & test version of ndis3pkt 2.2. It is restricted to
sending 75/receiving 200 packets per boot. New features of ndis3pkt 2.x:
2.2:
-Windows98 compatibility
BEWARE: Windows98 support involved a change in the internal driver
name. Therefore, you must completely uninstall (this should include
deleting ndis3pkt.inf from the WINDOWS/INF directory) and re-install
when switching between 2.2 and any earlier version.
2.1:
-A Win32 API for direct application access to raw packets
2.0:
-Support for the dialup adapter with or without MSTCP
-Support for IP address multiplexing with MSTCP
-Better integration with OSR2 Plug & Play
-Better support for power system suspend (power management)
Refer to ORDER.TXT in ndis3pk2.zip for information on obtaining a full
version of ndis3pkt 2.2.
NDIS3PKT 2.2 demo (c) Copyright Daniel D. Lanciani 1994-1998
All rights reserved.
This demonstration version of NDIS3PKT is licensed exclusively
for testing and evaluation purposes. NDIS3PKT may not be distributed
for profit, nor may it be included in products or otherwise distributed
by commercial entities to their clients or customers without the prior
written permission of the author.
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.
These copyright, license, and disclaimer notices must be included
with all copies of NDIS3PKT.
Ndis3pkt.386 is a Windows VxD (Virtual Device) which provides a packet
driver interface on top of NDIS version 3.0 or 3.1. It allows packet
driver applications to be used under WfWG 3.11 and Windows95 without
loading any real-mode software components. Ndis3pkt performs all the
VM (virtual machine) switching required to insure that the correct
application receives packet upcalls, i.e., it includes the functionality
of winpkt. (The WINPKT signature is also provided for applications
which check specifically.) In addition, ndis3pkt is willing to deliver
the same packet type (and even the same packet) to multiple clients
in multiple VMs.
A tcp multiplexor option allows several tcp stacks to exist on the same IP
address under most conditions. Although it is now 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. An option is therefore
provided to disable the MSTCP portion of the multiplexor. With mstcpmux
set to false, 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
mstcpmux must generally be left enabled.
Ndis3pkt attempts to minimize the load on Windows by keeping at most
a single VM callback pending at any time. This implies that a stalled
VM for which a callback is pending may prevent packet reception. The
driver tries to avoid such a situation by refraining from delivering
packets to applications in VMs which are suspended; however, it may be
possible to fool the code by suspending a VM at the wrong moment. In
such a case, resuming the VM in question will restart packet reception.
There are two ways to install ndis3pkt. Manual installation is possible
with WfWG 3.11 and Windows95. Plug-and-Play installation is possible
only with Windows95.
Manual Installation:
First, be certain that NDIS3 is loaded and running.
In system.ini, load ndis3pkt.386 from the [386Enh] section:
device=ndis3pkt.386
Add a new section to system.ini:
[ndis3pkt]
netcard0=ms$elnkii
where ms$elnkii should be replaced with the name of your local network
adapter card. (A good place to find this name is the BINDINGS= line
of the [NETBEUI] section of the protocol.ini file--assuming netbeui is
installed.) Windows95 generally uses simple numberic names for NDIS3
even if symbolic names are used in protocol.ini:
netcard0=0000
You can also specify the null string:
netcard0=
This reserves the packet driver interrupt slot for the specified card but
does not bind to the card at startup. Late binding is used to support
Plug-and-Play under Windows95 and will not work without the Plug-and-Play
installation described below.
Additional options for [ndis3pkt] section (none required):
buffers=#
Allocate # buffers for packets (max 50, min 2, default 10).
v86stacksize=#
Set size of stack used on packet driver upcall (max 8192, min 64, default 128).
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).
alwayssched=true|false
Force schedule (not call) of initial VM on packet receive (default true).
tcpmux=true|false
Enable tcp multiplexor (default true).
mstcpmux=true|false
Enable additional tcp multiplexor for MSTCP if tcpmux is enabled (default true).
warnmuxfull=true|false
Issue warning when tcp multiplexor table is full (default true).
ignorelocalbroadcast=true|false
Ignore broadcast packets that originate in the local machine (default true).
intvec0=#
Specify packet service interrupt (default 0x69).
net80230=true|false
Force 802.3 framing and packet class 11 (default false). IT IS
EXTREMELY UNLIKELY THAT YOU WANT TO USE THIS OPTION.
fakeether0=true|false
Pretend to be an Ethernet device even on Token Ring (default false).
(It is possible to support more than one network card using additional
keys, e.g., netcard1=, intvec1=, net80231=, fakeether1=, etc. The
default interrupt vectors continue from 0x6a.)
No further configuration should be necessary. Once the driver is
loaded, packet driver applications should be usable from DOS boxes
and the system VM.
Plug-and-Play Installation (Windows95 only):
Place ndis3pkt.386, ndis3pkt.inf, and ndis3ndi.dll 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
-Add an [ndis3pkt] section to system.ini with a netcard0= line
If you have multiple network interface cards, be sure to examine their
bindings under ``properties'' to be sure only the one you want is attached
to ndis3pkt.
When Windows is restarted, the packet driver interface should be available.
The name of the network card is supplied by the configuration manager and
there is no need to edit the netcard0= line in system.ini. Other ndis3pkt
settings can be configured from the network control panel under the Advanced
tab of the properties dialog.
------------------------------------------------------------------------------
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. There should be a way to
make address assignment automatic (after all, Microsoft's tcp/ip stack gets
the information), but Microsoft does not follow its own NDIS documentation
in this respect. Instead they use what they refer to as a "totally undoced"
API so third-party products cannot fully support the dialup adapter. If
anyone has any useful information on this subject I would be interested in
seeing it. I've used up a priority support incident with Microsoft only
to be told that I'm not allowed to write a "WAN aware" protocol.
------------------------------------------------------------------------------
Starting with version 2.1, ndis3pkt provides 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 *not*
compatible with WfWG 3.11's Win32s sub-system.
------------------------------------------------------------------------------
Please send bug reports to ddl@danlan.com or
Dan Lanciani
185 Atlantic Road
Gloucester, MA 01930
(978) 283-4974