Differences in Initialization (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.
A call manager is an NDIS protocol; therefore, it follows the initialization sequence for a connection-oriented protocol, but with one additional step. in its ProtocolBindAdapterhandler, immediately after completing the initialization steps for a connection-oriented protocol, a call manager must register an address family by calling NdisCmRegisterAddressFamily. The call to NdisCmRegisterAddressFamily, in which a call manager registers its call manager functions, identifies the protocol as a call manager. The call manager must register an address family for each NIC to which it binds itself.
An MCM driver is a miniport driver; therefore, it follows the initialization sequence for a connection-oriented miniport driver with the addition of the following step: an MCM driver must register an address family by calling NdisMCmRegisterAddressFamilyin its MiniportInitializefunction, immediately after completing the miniport driver initialization sequence . The call to NdisMCmRegisterAddressFamily, in which an MCM driver registers its call manager functions, distinguishes the MCM driver from a regular connection-oriented miniport driver. Although an MCM driver registers its miniport driver handlers only once during initialization by calling NdisMRegisterMiniport, it must call NdisMCmRegisterAddressFamilyonce for each NIC that it controls.