Title: Windows 2000 Network Drivers
1Windows 2000 Network Drivers
2Roadmap
- Microsoft Windows 2000 support Three basic types
of kernel-mode network drivers - Miniport NIC drivers
- A miniport driver directly manages a network
interface card (NIC) and provides an interface to
higher-level drivers. - Intermediate drivers
- An intermediate protocol driver interfaces
between upper-level protocol drivers, such as a
legacy transport driver, and a miniport. - Protocol drivers
- An upper level protocol driver implements a TDI
interface, or possibly another application-specifi
c interface at its upper-edge - At its lower edge, this type of driver provides a
protocol interface to pass packets to and receive
incoming packets from the next-lower driver.
3Roadmap
- Another type of kernel-mode driver supported by
Windows 2000 - filter-hook driver
- Filter packets
- Extends the functionality of the IP filter driver
4Windows 2000 Network Architecture and the OSI
Model
- Windows 2000 is Based on the OSI 7-layer
networking model
5Windows 2000 Network Architecture and the OSI
Model
- Physical Layer
- involves the reception and transmission of the
unstructured raw bit stream over a physical
medium - Implemented by the network interface card(NIC),
its transceiver, and the medium to which the NIC
is attached - can include low-level network software
6Windows 2000 Network Architecture and the OSI
Model
- Data Link Layer
- LLC
- establishes and terminates logical links,
controls frames flow, sequences frames,
acknowledges frames, and retransmits
unacknowledged frames. - Implemented in the transport driver
- MAC
- manages access to the network media, checks frame
errors, and manages address recognition of
received frames. - implemented in the network interface card (NIC)
- The NIC is controlled by a software device driver
called the NIC driver.
7Windows 2000 Network Architecture and the OSI
Model
- Network Layer
- controls the operation of the subnet and
determines the physical path the data should take - Transport Layer
- ensure that messages are delivered error-free, in
sequence, and with no loss or duplication - In the Windows 2000 network architecture
- the LLC, Network, and Transport layer -gt
transport drivers
8NDIS Drivers
- The Network Driver Interface Specification(NDIS)
library - abstracts the network hardware from network
drivers - specifies a standard interface between layered
network drivers - abstract lower-level drivers
- maintains state information and parameters for
network drivers - support
- Miniport drivers
- Intermediate drivers
- Protocol drivers
9NDIS Drivers
10NDIS Drivers
- NDIS Miniport Drivers(miniport NIC driver)
- two basic functions
- managing a NIC
- interfacing with higher-level drivers
- The NDIS library exports a full set of
functions(NdisXXX functions) that encapsulate all
the OS functions. - Called by Miniport
- The miniport must export a set of entry
points(MiniportXxx functions). - Called by NDIS
11NDIS Drivers
- The interaction of miniport NIC drivers with NDIS
and with higher-level drivers - Send
- transport driver calls an NdisXxx functions.
- NDIS passes the packet to the miniport by calling
the appropriate MiniportXxx function. - The miniport driver then forwards the packet to
the NIC by calling the appropriate NdisXxx
functions. - Receive
- NIC post a hardware interrupt.
- NDIS call MiniportXxx function
- The miniport sets up the transfer of data from
the NIC and then indicates the presence of the
received packet to bound higher-level drivers by
calling the NdisXxx function.
12NDIS Drivers
- Connectionless miniport
- Serialized drivers
- rely on NDIS to serialize calls to their
miniportXxx functions and to manage their send
queues. - Deserialized drivers
- serialize the operation of their own MiniportXxx
functions - queue internally all incoming send packets.
- connectionless network media Ethernet,
FDDI,Token Ring. - connection-oriendted network media ATM and ISDN
- Always deserialized.
- An NDIS miniport driver can have a non-NDIS lower
edge
13NDIS Drivers
- NDIS Intermediate Drivers
14NDIS Drivers
- NDIS Intermediate Drivers
- At it lower edge, exposes protocol entry
points(ProtocolXxx functions) - At it upper edge, exposes miniport entry
points(MiniportXxx functions) - It does not actually manage a physical NIC
- it exports one or more virtual adapters.
- Intermediate drivers are typically used in the
following ways - To translate between different network media
- To filter packets
- To balance packet transmission across more than
on NIC
15NDIS Drivers
- NDIS Protocol Drivers
- The highest driver in the NDIS drivers
- often used as the lowest-level driver in a
transport driver that implements a transport
protocol stack(TCP/IP, IPX). - At its lower edge, a protocol driver interfaces
with intermediate network drivers and miniport
NIC drivers. - Use NDIS funcions(NdisXxxx)
- export a set of entry points(ProtocolXxx
functions) - At its upper edge, a transport protocol driver
has a private interface to a higher-level driver
in the protocol stack.
16NDIS Drivers
- TDI(Transport Driver Interface) Drivers
- defines a kernel-mode network interface that is
exposed at the upper edge of transport protocol
stacks.
17NDIS Drivers
- TDI Client
- kernel-mode driver such as redirector and Server.
- Interface with such transports through TDI
- simplifies the task of developing transport
drivers in that only the TDI interface needs to
be coded. - Transport drivers that expose only the TDI
interface can be used only by TDI client.
18Network Driver Environments
- Network Driver Environments
- Connectionless drivers
- Connection-oriented drivers
- WAN drivers
19Network Driver Environments
- Connectionless Environment for Network Drivers
- the standard network driver environment for
connectionless media, such as Ethernet and Token
Ring.
20Network Driver Environments
- Connection-Oriented Environment for Network
Drivers - NDIS supports
- Connection-oriented miniports
- Connection-oriented clients
- Call managers
- Integrated miniport call managers(MCM)
21Network Driver Environments
22Network Driver Environments
- A connection-oriented miniport
- control one or more network interface cards(NIC)
- provides an interface between connection-oriented
protocols and the NIC hardware - A call manager
- NDIS protocol that provide call setup and
tear-down services for connection-oriented
clients - An MCM driver
- connection-oriented miniport that also provides
call manager services to connection-oriented
clients.
23Network Driver Environments
- Environment for WAN Network Drivers
- Windows 2000 supports wide area network (WAN)
connections over both connectionless and
connection-oriented media
24Network Driver Environments
25Network Driver Environments
- Remote Access Service(RAS)
- allows user-mode applications to make dial-up
connections - TAPI service provider
- user-mode component that accepts call setup and
teardown requests from RAS clients and from
TAPI-aware applications through the SPI - NDISTAPI
- kernel-mode component that exposes connectionless
miniports to the TAPI device space.
26Network Driver Environments
- NDPROXY
- a kernel-mode component that exposes
connection-oriented miniports to the TAPI device
space. - NDISWAN
- an intermediate NDIS driver that performs PPP
protocol/link framing, compression, and
encryption. - WAN miniport
- calls many of the same NDIS functions and
supplies many of the same handlers as does a
non-WAN NDIS miniport - Serial driver
- standard device driver for internal serial ports
or multiport serial cards.
27Network Driver Programming Considerations
- Design Goals for Network drivers written for
Windows 2000. - Portability across platforms
- Scalable to multiprocessor systems
- Simple configuration of hardware and software
- Object-based interfaces
- Support for asynchronous I/O
28Reference
- Microsoft Windows 2000 DDK
- Network Driver
- Design guide part 1.