290 likes | 738 Vues
Windows 2000 Network Drivers 정보통신 연구실 석사 3 학기 김신규 Roadmap 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.
E N D
Windows 2000 Network Drivers 정보통신 연구실 석사 3학기 김신규
Roadmap • 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-specific 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.
Roadmap • Another type of kernel-mode driver supported by Windows 2000 • filter-hook driver • Filter packets • Extends the functionality of the IP filter driver
Windows2000 Network Architecture and the OSI Model • Windows 2000 is Based on the OSI 7-layer networking model
Windows2000 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
Windows2000 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.
Windows2000 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 -> transport drivers
NDIS 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
NDIS 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
NDIS 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.
NDIS 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
NDIS Drivers • NDIS Intermediate Drivers
NDIS 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
NDIS 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.
NDIS Drivers • TDI(Transport Driver Interface) Drivers • defines a kernel-mode network interface that is exposed at the upper edge of transport protocol stacks.
NDIS 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.
Network Driver Environments • Network Driver Environments • Connectionless drivers • Connection-oriented drivers • WAN drivers
Network Driver Environments • Connectionless Environment for Network Drivers • the standard network driver environment for connectionless media, such as Ethernet and Token Ring.
Network Driver Environments • Connection-Oriented Environment for Network Drivers • NDIS supports • Connection-oriented miniports • Connection-oriented clients • Call managers • Integrated miniport call managers(MCM)
Network 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.
Network Driver Environments • Environment for WAN Network Drivers • Windows 2000 supports wide area network (WAN) connections over both connectionless and connection-oriented media
Network 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.
Network 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.
Network Driver Programming Considerations • Design Goals for Network drivers written for Windows2000. • Portability across platforms • Scalable to multiprocessor systems • Simple configuration of hardware and software • Object-based interfaces • Support for asynchronous I/O
Reference • Microsoft Windows 2000 DDK • Network Driver • Design guide part 1.