If you run Windows* and you run networking, you run NDIS. NDIS - Network Driver Interface Specification has been around since well, forever. I still have a copy of the old NDIS2 documentation in a hard copy at my desk. Boy have things changed. It started basically as a miniport, went monolithic and end up miniport again. Miniport “plugs” into a protocol layer, while a monolithic has the protocol (or most of it) built into the driver.
This is a list of NDIS versions and the OS they tended to run on. For a long time you could run the older revisions on the new O/S. For example Win95* could run NDIS2. It just wasn’t the first choice for performance and other reasons. If you can run the previous version of the specification, I would recommend you run the native version since that will offer the best performance. If we offer a driver of that specification, it will be listed as Y. In the NDIS2 case, we only ship the DOS version of the driver. If you need O/S2 NDIS2, put it in the comments and we’ll see about it. 10 Gigabit never got an NDIS2 driver, mostly because NDIS2 today is only used during manufacturing. And 10 Gigabit LOM systems tend to have EFI and use that for “gas pumping” O/S images down. Need 10 Gigabit NDIS2? Again, let me know in the comments!
(Warning HTML tables!)
O/S 2, Windows for Workgroups* 3.1, DOS
Windows for Workgroups 3.11
Windows* 95, NT4
Windows 98, 98 SE, ME, Windows 2000
Windows XP*, Server 2003, CE6
Windows Server* 2003 SP2 or SP1 with the Scalable Networking Pack
Windows Vista SP1, Server 2008
Windows 7, Server 2008 R2
That’s a lot of drivers! So what did each of those iterations bring to the table? Here is a listing of features from our point of view. Some TCP/IP Offload Engine stuff AKA TOE AKA Chimney was added somewhere in there, but since we didn’t use it; I don’t have in our chart. I start with NDIS5 since it is the start of the modern era. Ancient history isn’t my strong suit
- NDIS 5.0: Return to the “full” miniport, start of the modern Windows networking driver.
- NDIS 5.1: Windows XP, Server 2003
IPsec Offload v1 - Offload Internet protocol security tasks (either IPsec or LSO)
IP (v4) and TCP/UDP Checksum offloads
- NDIS 5.2: Windows Server 2003 SP2
RSS (Receive Side Scaling) was introduced in SP1 w/Scalable Networking Pack and in SP2
Start of Quick Data support
DCA (Direct Cache Access)
LLI (Low Latency Interrupts)
LSO (Large Send Offload)--in 2003 it is known as TCP Segmentation Offload
- NDIS 6.0: Windows Vista
LSOv1 Large Send Offload - Offload segmentation of large TCP packets greater than MTU - IPv4
LSOv2 Large Send Offload - Offload segmentation of packets greater than 64K and support for IPv6
Checksum Offload - Offload TCP and IP checksums (required for LSO)
RSS - Receive Side Scaling - enables the efficient distribution of network receive processing across multiple CPUs in multiprocessor systems
NETDMA v1.0 - generic interface for memory-to-memory direct memory access (DMA) transfers
SGMDA - Scatter/Gather DMA - method to transfer data between a NIC and system memory
Miniport State Machine - A chart listing the various NDIS Miniport operational states.
- NDIS 6.1: Windows Vista SP1, Server 2008
IPSec Offload v2 - Improved performance, security algorithms, IPv6, and can work with LSOv2
Header data split - improves network performance by splitting the header and data in received Ethernet frames into separate buffers
- NDIS 6.2 : Windows 7, Server 2008 R2
VMQ - Virtual Machine Queue - Offload technology in which networking stack offloads receive processing in the context of a virtualized environment
RST - Receive Side Throttle - reduce the possibility of glitches in multimedia application
Here is another useful link for you. Part of the Windows experience is that rarely, just sometimes, it crashes. Known worldwide as The Blue Screen of Death (BSOD), it will often come with a code. Here is the cheat sheet for those codes.
- Bug Check Codes - list of all the Windows bug check codes
A lot of these links are to the MSDN resource that Microsoft provides. They are used for education purposes and do not constitute endorse of either party by either party. That should keep the lawyers happy. Is there a link about Windows Networking that makes you happy? Post it in the comments!
Thanks to Christopher P for all his help making this article!