次の方法で共有


Network Interface Card Support (NDIS 5.1)

Note   NDIS 5. x has been deprecated and is superseded by NDIS 6. x. For new NDIS driver development, see Network Drivers Starting with Windows Vista. For information about porting NDIS 5. x drivers to NDIS 6. x, see Porting NDIS 5.x Drivers to NDIS 6.0.

Windows 2000 and later versions of the operating system support the following types of network interface cards:

  • Ethernet (802.3)

  • Token Ring (802.5)

  • FDDI

  • LocalTalk

  • Raw ARCNET (ARCNET encapsulated in Ethernet)

  • ARCNET 878.2

  • WAN (point-to-point and WAN cards)

  • Connection-oriented WAN

  • Wireless

  • ATM

  • IrDA

When NDIS calls a NIC driver's MiniportInitializefunction, it passes an array of NDIS-supported mediums. If the NIC driver supports only one medium type, it selects the medium that it supports. Or, if the NIC driver supports more than one medium type, it selects the one that it prefers and returns its choice to NDIS.

When a higher level NDIS protocol driver calls NdisOpenAdapterto bind to a specified NIC, it provides a list of medium types on which it can operate. NDIS uses the information from the NIC driver and from the protocol driver to bind them appropriately. This binding provides the path by which packets are passed down the stack and sent out over the network and by which received packets are passed up the stack to higher level drivers.

The NDIS medium type defined for ARCNET is NdisMediumArcnet878_2. This medium type definition provides full compatibility with Novell's ARCNET specification for Raw ARCNET.

The Raw ARCNET format, defined in the ARCNET Packet Header Definition Standard published by Novell, is used by NetWare. A transport driver that supports this format is responsible for selecting from three different frame formats ( short, long, or exception), depending on the length of the data it wishes to send. The transport driver is then responsible for performing the necessary actions related to the use of this standard, including fragmenting, padding, and setting the split flag and sequence number.

The NdisMediumArcnet878_2 format informs a transport driver that it is running over ARCNET, without having to deal with the details of fragmenting and unfragmenting. With NdisMediumArcnet878_2, the on-the-wire format is the same as the Raw ARCNET format. However, the transport driver is shielded from most of the details of the frame format. The NIC driver is responsible for fragmenting the frame, selecting the appropriate frame format, and inserting the padding, split flag, sequence number, and other related fields.

The NDIS Library also supports Ethernet over ARCNET. NDIS performs 802.3-to-ARCNET encapsulation on packets to be sent and deencapsulation on packets received from ARCNET miniport drivers.

The Tcpip and Nwlink transport drivers for Windows 2000 and later versions use NdisMediumArcnet878_2.

A NIC driver that supports the NdisMediumAtm format can use NDIS 5.0's native support for ATM.

A NIC driver that supports the NdisMediumIrda format can use NDIS 5.0's native support for infrared devices.

Types of NICs (NDIS 5.1)

The NdisXxx functions that a miniport driver calls to initialize its adapter and to send and receive packets depend on the features of its NIC, as follows.

  • Bus-master DMA NICs

    These NICs can directly access host memory through an on-board DMA controller that manages the transfer of data between the network and host memory without using the host CPU.

    To send, the miniport driver sets up the NIC to map the outgoing buffers. The miniport driver then causes the device to start its transfer from this memory. The NIC DMA controller transfers the data from shared system memory onto the network and interrupts the CPU when the send is complete. To receive, the DMA controller transfers incoming data to host memory before notifying the host with an interrupt.

    A bus-master DMA NIC typically has an onboard ring buffer that the miniport driver maps to a set of buffers in system memory. Typically, the NIC can be programmed to efficiently handle several packets. A miniport driver that manages such a NIC usually supports multipacket sends and receives since the NIC can efficiently handle several packets and thereby improve its I/O throughput.

  • Nonbusmaster DMA NICs

    These include three general types of NICs:

    1. NICs that contain onboard shared memory

      A miniport driver that manages such a NIC must map the NIC's shared memory to host memory, and then copy outgoing packets to the NIC memory or copy incoming frames from NIC memory to buffers supplied by upper layer protocol drivers or other drivers. Such a miniport driver generally cannot improve its performance by supporting multipacket sends and receives.

    2. Subordinate DMA NICs

      A miniport driver that manages such a NIC uses the system DMA controller to manage the transfer of packet data to and from the network. Transfer of the data requires the cooperation of the host CPU.

    3. NICs that use programmed I/O

      The miniport driver that manages a PIO device uses NDIS functions to move outgoing frames byte by byte, word by word, or long by long to device registers, and then causes the device to send the data. The driver for such a device does not benefit from NDIS support for multipacket sends and receives. Miniport drivers for this type of NIC should implement single packet sends and receives, as described in Transferring Data.

 

 

Send comments about this topic to Microsoft