NDIS IM

Home Up Filters Rawether for Windows NDIS IM TDI Samples Universal Bundle License & Warranty

NDIS 5 Intermediate Driver Samples
For
Windows 2000, Windows XP
and Windows Server 2003

 

Background

The Windows NT 4.0 SP3 introduced a new type of NDIS driver called a NDIS Intermediate (IM) driver.

A NDIS IM driver  is layered between an NDIS transport driver (such as the Microsoft Tcpip driver) and the underlying NIC miniport drivers. In this logical position a NDIS IM driver can monitor and influence the interaction between NDIS transports and the lower-level NDIS miniports that they are bound to.

There are several potential uses for NDIS Intermediate (IM) drivers, including:

bulletPacket Monitoring - Where the NDIS IM driver observes and records data as it is exchanged between the transport and the miniport.
 
bulletEncryption - Where the NDIS IM driver is used to encrypt and decrypt data as it is exchanged between the transport and the miniport.
 
bulletPacket Filtering - The ability to intercept and possibly alter the flow of packets between the higher-level transport and lower-level NIC drivers.
bulletSelectively Pass/Drop Packets
bulletSelectively Delay/Reorder Packets
bulletPacket Encryption/Decryption
bulletPacket Compression/Decompression
bulletRoute Packets
bulletNetwork Address Translation
bulletAdapter Load Balancing And Fail-Over

 

NDIS IM Driver Samples Overview

The PCAUSA NDIS IM driver samples currently include three sample drivers:

bulletActive PassThru - Adds mechanism to "clone" send and receive packets and a centralized packet filtering module. Baseline for other PCAUSA samples.
 
bulletPacket Redirector - Extends Active PassThru to illustrate packet monitoring packets sent/received and illustrates selective packet blocking.
 
bulletCryptoPing - Illustrates modification of packets.

These sample drivers are NDIS 5 Intermediate filter drivers; they are not NDIS 6 Lightweight filter (LWF) drivers.

The NDIS 5 IM filter drivers can operate on Windows Vista, although NDIS 6 LWF drivers are preferred on Vista.

 

Active PassThru NDIS Intermediate Driver

Although the current Microsoft DDK NDIS IM driver sample is excellent, it is a "passive PassThru" driver. It performs only the absolute minimum of processing and inspection of data being sent or received. For example, when processing a received packet a passive PassThru driver simply "re-wrap" the received packet and pass the re-wrapped packet up to higher-level protocols. Similarly, NDIS requests and other operations are just passed on with a minimum of processing.

The PCAUSA Active PassThru sample makes a complete private "clone" of every other packet sent or received. The clone is is passed along instead of simply re-wrapping packets. The mechanics of building the cloned packet is on of the first challenges facing a NDIS IM driver developer.

The Active PassThru sample is the baseline for building other PCAUSA NDIS IM driver samples.

[ More Information... ]

 

IP Packet Redirector NDIS Intermediate Driver

This sample starts with the Active PassThru sample and adds a mechanism that allows a Win32 application to interact with the packet stream that passes through the NDIS IM driver.

The Packet Redirector illustrates two important uses of a NDIS IM driver:

bulletPacket Monitoring - Where the NDIS IM driver observes and records data as it is exchanged between the transport and the miniport.
 
bulletPacket Filtering - The ability to selectively Pass/Drop Packets.

[ More Information... ]

 

"CryptoPing" Packet Encrypting NDIS Intermediate Driver

The CryptoPing sample takes the PassThru baseline and extends it to illustrate a NDIS IM driver that performs modification to transmitted and received network packets.

bulletEncryption - Where the NDIS IM driver is used to encrypt and decrypt data as it is exchanged between the transport and the miniport.
 

The sample performs simple in-place "encryption" of transmitted ICMP Echo Request ("ping" requests) packets and an inverse decryption of received ICMP Echo Reply packets.

[ More Information... ]

 

Development Environment

It is your responsibility to setup the device driver build environment. In addition, it is your responsibility to learn the general techniques used to build and debug Windows device drivers.

If this is your first experience in device driver development, it is likely that you will encounter problems in simply setting up the Device Driver Kit (DDK) or the newer Windows Vista Windows Driver Kit (WDK). Some of these problems can be very frustrating to the uninitiated. When you undergo these trials for the first time, please have patience.

The PCAUSA NDIS IM Driver Samples can be built under:

bulletWindows 2000 or Higher Target - Windows 2000 Build Environment
bulletWindows XP or Higher Target - Windows XP Build Environment
bulletWindows XP or Higher Target x64 Editions - Windows Server 2003 x64 Build Environment

PCAUSA currently uses the Windows 2000 Build Environment provided by the Windows Server 2003 R2 DDK (Build 3790.1830) to build for Windows 2000. PCAUSA uses the Windows Vista WDK (Build 6000) to build for Windows XP and higher.

The driver build for the Windows 2000 platform will run on Windows 2000 and higher platforms.

 

Prerequisite Experience

A programmer intending to write NDIS Intermediate drivers should have prior experience in development and debugging of Windows device drivers.

 

Download NDIS IM Driver Sample Executables and Documentation

The PCAUSA NDIS IM Demo Executables can be downloaded as a ZIP from the following URL:

NDISIMDemo.zip
171.17KB (175279 bytes)

After unzipping the file, please read the documentation in the Readme.htm files in this folder:

\PCADemo\NDIS IM\Readme.htm

You can also view the current Release Notes.

 

Licensing Information

The product includes a royalty-free license to incorporate sample code into your executable products. Please review the PCAUSA License Agreement and Limited Warranty.

 

Pricing And Ordering Information

PCASIM NDIS Intermediate (IM) Driver Samples For Windows NT

SKU

Description

Documentation
Source Code
License

Product Updates

Technical Support

Satisfaction Guarantee

Price

030

PCASIM Driver Samples
- Basic -

Yes

90 Days

90 Days

Yes!

US$595.00

031

PCASIM Driver Samples
- Subscription (New) -

Yes

1 Year

1 Year

Yes!

US$795.00

032

PCASIM Driver Samples
- Subscription (Renewal) -

Yes

1 Year

1 Year

Yes!

US$500.00

Ordering Information...

  Prices good through June 30, 2008.

Hit Counter3/27/06

 
 

PCAUSA Home · Privacy Statement · Products · Ordering · Support · Utilities · Resources
Mailing Lists  · PCAUSA Newsletter · PCAUSA Discussion List
 
Rawether for Windows and WinDis 32 are trademarks of Printing Communications Assoc., Inc. (PCAUSA)
Microsoft, MS, Windows, Windows 95, Windows 98, Windows Millennium, Windows 2000, and Win32 are registered trademarks and Visual C++ and Windows NT are trademarks of the Microsoft Corporation.
Send mail to webmaster@pcausa.com with questions or comments about this web site.
Copyright © 1996-2008 Printing Communications Assoc., Inc. (PCAUSA)
Last modified: December 31, 2007