Choosing a WAN Miniport Driver ModelUpdated: January 15, 2003
For new Wide Area Network (WAN) drivers created for devices that will work with Microsoft Windows XP and later versions of the Windows operating system, Microsoft recommends the CoNDIS WAN model over the NDIS WAN model. This article summarizes the driver model choices and provides information to help driver developers choose the appropriate driver implementation. There are many existing NDIS WAN implementations, and some of them support hardware that is or soon will be obsolete. Microsoft will continue to support NDIS WAN miniport drivers. Independent hardware vendors (IHVs) are not required to write CoNDIS drivers for existing hardware. This article assumes that the reader has a basic understanding of the Remote Access Service (RAS) architecture as described in the "WAN Miniport Drivers" topic in the current Windows Driver Developer Kit (DDK). On This Page
NDIS WAN and CoNDIS WAN Driver ImplementationsThis section describes the differences between NDIS WAN and CoNDIS WAN driver implementations. An NDIS WAN driver is a miniport driver. A CoNDIS WAN driver can be either a miniport call manager (MCM) driver or a miniport driver that is combined with a separate call manager driver. The following describes the fundamental differences between NDIS WAN drivers and CoNDIS WAN drivers. Version numbers specified.The version numbers specified in the NDIS_MINIPORT_CHARACTERISTICS structure that is passed to NdisMRegisterMiniport differ for NDIS WAN and CoNDIS WAN miniport drivers:
Miniport driver registration.Register NDIS WAN drivers and CoNDIS WAN miniport drivers or MCM drivers as miniport drivers. However, if there is a separate call manager, register the call manager as a protocol. The medium type indicated by the SelectedMediumIndex parameter that the miniport driver sets in MiniportInitialize is different. In addition, a CoNDIS MCM driver or call manager must register an address family. Signal implementation.
Connection, data routing, and function calls.
Different function calls are used to implement the following operations:
WAN miniport driver statistics.
WAN miniport driver packet descriptors.
Function parameter values.Some functions use different parameter values for NDIS WAN and CoNDIS WAN miniport drivers. For example, WAN OIDs.
Exceptions: These OIDs are used by both NDIS WAN and CoNDIS WAN drivers: OID_WAN_PERMANENT_ADDRESS TAPI and TAPI OIDs.
Operating system support.
NdProxy is the NdisTapi CoNDIS client, and is required for CoNDIS WAN drivers. CoNDIS drivers will work on Windows Me and earlier versions, but there is no native support for the WAN version of a CoNDIS driver because there is no version of NdProxy for these earlier client operating systems. Advantages of CoNDIS WAN DriversThis section describes the advantages of implementing CoNDIS WAN drivers. Multiple Driver TypesCoNDIS provides a component-based architecture. The CoNDIS model provides the flexibility of four types of drivers:
The separation of architectural components remains clearly defined in an MCM. The call manager (or call manager component if there is an MCM) handles the signaling aspects of connections, and the CoNDIS WAN miniport driver handles the network adapter hardware. You do not need to write a call manager if one is provided with Windows. The separation of call manager and miniport components allows the miniport driver to be updated to support new hardware while the call manager remains unchanged. In many cases, the call manager might only require upgrades to correct defects. The WAN services that Windows includes are based on RAS. Windows includes a Point to Point Protocol (PPP) CoNDIS client, and CoNDIS WAN miniport drivers are available for many devices. You can write CoNDIS WAN clients to extend the system to support other protocols. The CoNDIS WAN model is not restricted to PPP data. You can implement a custom WAN client driver and miniport driver to handle, for example, raw data streaming or proprietary encryption. The custom CoNDIS WAN client and miniport drivers share the same address family. Simplified DriversThe separation of the call manager and miniport functions in the CoNDIS WAN model enables the implementation of two simple drivers. The simplified drivers should be easier to maintain and debug than one large and complex driver. CoNDIS implements a well-organized model for WAN connections. There are NDIS objects that correspond to each of the logical entities involved in a connection. These entities include address families, virtual connections, service access points, and parties. NDPROXY handles many of the complex requirements of TAPI. A CoNDIS miniport driver is not required to handle as many TAPI OIDs as an NDIS miniport driver. In addition, the CoNDIS WAN miniport is not required to handle the following status indications: NDIS_STATUS_TAPI_INDICATION, NDIS_STATUS_WAN_LINE_UP, and NDIS_STATUS_WAN_LINE_DOWN. In addition to flexibility and simplicity, CoNDIS WAN provides the following benefits:
NDIS Features Available to CoNDIS WANYou can use these NDIS features in CoNDIS WAN drivers, but they are not available to NDIS WAN miniport drivers:
Implementing CoNIDS WAN miniport drivers will also allow you to take advantage of future NDIS enhancements that support WAN miniports. Call to Action
|
|
