Differences Between NDIS and CoNDIS WAN Driver Implementations (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.
This topic lists the differences between NDIS WAN drivers and CoNDIS WAN drivers. NDIS WAN drivers are miniport drivers. CoNDIS WAN drivers can be either a miniport call manager (MCM) or a miniport driver that is combined with a separate call manager.
The primary differences between CoNDIS WAN drivers and NDIS WAN drivers are:
The version number specified in the NDIS_MINIPORT_CHARACTERISTICS structure that is passed to the NdisMRegisterMiniport function is version 3.0 to 4.0 for NDIS WAN miniport drivers and is version 5.0 or later for CoNDIS WAN miniport drivers.
You register NDIS WAN miniport drivers, CoNDIS WAN miniport drivers, and CoNDIS WAN MCMs as miniport drivers. However, if there is a separate CoNDIS call manager, you must register the call manager as a protocol. For more information about registering an NDIS WAN miniport driver, see Registering an NDIS WAN Miniport Driver. For more information about registering CoNDIS WAN drivers, see Registering CoNDIS WAN Drivers.
The medium type that the miniport driver sets in the SelectedMediumIndex parameter of the MiniportInitialize function is different for CoNDIS WAN and NDIS WAN drivers. In addition, a CoNDIS MCM or call manager must register an address family. For more information about NDIS WAN driver initialization, see Initializing an NDIS WAN Miniport Driver. For more information about CoNDIS WAN miniport driver initialization, see Registering the WAN Address Family.
NDIS WAN miniport drivers implement signaling with TAPI OIDs. The CoNDIS model uses a call manager or MCM to implement signaling. For more information about CoNDIS call managers, see Connection-Oriented Environment.
In an NDIS WAN environment, an application must set up a connection by making or accepting a call. After the application establishes a connection, links are used to route data. In a CoNDIS environment, a virtual connection (VC) is created to establish the connection and route data.
Different function calls are used to implement the following operations in CoNDIS and NDIS WAN drivers:
- Sending data. For more information about sending data from an NDIS WAN miniport driver, see Sending Packets from an NDIS WAN Miniport Driver. For more information about sending data from a CoNDIS WAN miniport driver, see Sending Packets from a CoNDIS WAN Miniport Driver. Note NDISWAN uses the current SendWindow value as its limit on outstanding sends. If a CoNDIS WAN miniport driver sets SendWindow to zero, its send window is shut down. If an NDIS WAN miniport driver sets SendWindow to zero, its send window is set to the default value.
- Receiving data. For more information about receiving data in an NDIS WAN miniport driver, see Indicating Received Data from an NDIS WAN Miniport Driver. For more information about receiving data in a CoNDIS WAN miniport driver, see Indicating Received Data from a CoNDIS WAN Miniport Driver.
- Setting miniport driver or NIC state. For more information about setting the state in an NDIS WAN miniport driver, see Setting NDIS WAN Miniport Driver Information. For more information about setting the state in a CoNDIS WAN miniport driver, see Setting CoNDIS WAN Miniport Driver Information.
- Querying miniport driver or NIC information. For more information about querying an NDIS WAN miniport driver, see Handling Queries in an NDIS WAN Miniport Driver. For more information about querying a CoNDIS WAN miniport driver, see Handling Queries in a CoNDIS WAN Miniport Driver.
- Indicating miniport driver or NIC status. For more information about indicating NDIS WAN miniport driver status, see Indicating NDIS WAN Miniport Driver Status. For more information about indicating CoNDIS WAN miniport driver status, see Indicating CoNDIS WAN Miniport Driver Status.
NDIS WAN miniport drivers keep a WAN-specific set of statistics (see OID_WAN_GET_STATS_INFO). CoNDIS WAN miniport drivers should keep a set of statistics for each VC on the miniport driver's NIC (see OID_WAN_CO_GET_STATS_INFO).
CoNDIS WAN miniport drivers use an NDIS_PACKET descriptor instead of the NDIS_WAN_PACKET descriptor that NDIS WAN miniport drivers use.
Some functions use different parameter values. For example, both NDIS WAN and CoNDIS WAN miniport drivers use NdisMRegisterMiniport to register, but the MiniportXxx functions that each driver type registers are different.
NDIS WAN and CoNDIS WAN miniport drivers use different WAN OIDs. The OIDs that are prefixed with OID_WAN_ are associated with NDIS WAN drivers (see Standard WAN Objects). The OIDs that are prefixed with OID_WAN_CO_ are associated with CoNDIS drivers (see CoNDIS WAN Objects).
The exceptions to note are: OID_WAN_PERMANENT_ADDRESS, OID_WAN_CURRENT_ADDRESS, and OID_WAN_MEDIUM_SUBTYPE. Both NDIS WAN and CoNDIS WAN drivers use these OIDs.
An NDIS WAN miniport driver is very closely tied to TAPI. The TAPI service provider APIs (See the Microsoft Windows SDK for more information about TAPI service provider APIs.) are directly mapped to TAPI OIDs. In the CoNDIS architecture, NDPROXY handles the TAPI complexity. Therefore, the CoNDIS model requires fewer TAPI OIDs.
NDIS WAN and CoNDIS WAN miniport drivers use different TAPI OIDs. The OIDs that are prefixed with OID_TAPI_ are associated with NDIS WAN drivers (see TAPI Objects). The OIDs that are prefixed with OID_CO_TAPI_ are associated with CoNDIS drivers (see TAPI Extensions for Connection-Oriented NDIS).