IMPORTANT NOTE: This is a demo & test version of ndis3pkt for NT 2.2. It is restricted to sending 75/receiving 200 packets per boot. It has been tested with Windows/NT 4.0sp3/4 and W2K. Refer to ORDER.TXT in ndis3nt.zip for information on obtaining a full version of ndis3pkt for NT 2.2. NDIS3PKT for NT 2.2 demo (c) Copyright Daniel D. Lanciani 1994-2001 All rights reserved. This demonstration version of NDIS3PKT is licensed exclusively for testing and evaluation purposes. It 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 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 on NT4. (It is enabled by default on W2K.) To enable the MSTCP portion of the multiplexor on NT4 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 (or properties of local area connection on W2K), 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 appropriate 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. debug Log extra debugging messages (default 0). 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). ------------------------------------------------------------------------------ Starting with version 2.1, ndis3pkt for NT provides a Win32 API for implementing user-mode intermediate drivers. Refer to WIN32IM.TXT for more information. ------------------------------------------------------------------------------ Please send bug reports to ddl@danlan.com or Dan Lanciani 185 Atlantic Road Gloucester, MA 01930 (978) 283-4974 Fax: (978) 281-7191