IrDA
Protocol
Driver
TCP/IP Protocol Driver
NDIS Wrapper
Intermediate
Miniport Driver
NE2000 Ethernet
PPP/
SLIP
Serial
Driver
NE2000 NIC
Serial
Hardware
Serial
Driver
WinSock
Hardware
Serial
Miniport
Driver
Figure 4.
Windows CE Network Architecture
Two NDIS protocol drivers, TCP/IP and IrDA, are sup-
ported by Windows CE. Windows CE NDIS protocol driver
are exposed to applications through the Windows Sockets
(Winsock) API. A protocol driver allocates packets, copies
data from sending applications into packets, and sends
these packets to the lower-level driver via the NDIS wrapper
component. The protocol driver also provides a lower level
interface (specified by NDIS) to receive incoming packets
from the Miniport driver. By using the NDIS interface, the
NDIS protocol driver communicates with underlying mini-
port driver and bind to network adapter. A NDIS miniport
driver has two basic functions. One function is to manage
a network interface card, including sending and receiving
data through the NIC. Another function is to provide an
interface to communicate with higher-level drivers, such as
intermediate drivers and transport protocol drivers. NDIS
intermediate drivers include a protocol driver interface at
their lower edge and a miniport driver interface at their
upper edge. An intermediate miniport driver is typically
used to filter packets, translate between different network
media and balance packet transmission across more than
one NIC. Thus, it is a good idea to implement packet fil-
tering at an intermediate miniport driver as it can capture
and filter network packets.