
Windows Networking Architecture


The Simplified Block Diagram below illustrates the Windows Networking
Architecture and the data paths for sending and receiving network packets by a
Win32 application on a NDIS miniport (NIC) driver:

[ Click Here To
Enlarge Diagram... ]
As the diagram illustrates, the software path between a Win32
application and a NIC driver is not direct. The path traverses several
components including:
A NDIS Protocol Driver - Only a NDIS protocol driver can
access the upper edge of the NDIS Wrapper for the purpose of sending and receiving
packets and performing NIC-specific NDIS operations. Notice that a
NDIS protocol driver is an OS-dependent driver: several different NDIS protocol drivers
are required to support the spectrum of current Windows operating systems.
The NDIS Wrapper - A kernel mode driver or library that
exports the set of software interfaces and services defined by the
Network Driver Interface Specification (NDIS). The wrapper effectively
isolates the actual NIC driver from the host operating system.
All Microsoft-provided networking services as well as a third-party networking products follow the basic path and implementation
illustrated in the diagram to access NIC drivers.
Microsoft provides several high-level networking protocols and
services as part of each Windows operating system. The Microsoft-provided
networking services and protocols include:
Unfortunately, none of the built-in Microsoft-provided networking
services provide a mechanism to send or receive "raw" network packets
or to perform other NDIS operations on specific NIC drivers.
Note: Windows sockets ("Winsock") on Windows XP includes "raw sockets"
functionality similar to the raw sockets functionality available on other
platforms such as Linux. The "raw sockets" capability added to Windows XP
includes the ability to send and receive raw IP packets; Winsock "raw socket"
functionality on earlier Windows platforms was basically crippled.
See the Winsock FAQ, maintained by Warren Young, for more information...
The next topic on the Tour describes how to develop a solution
to this problem.