Differences in Virtual Connections (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 uses signaling VCs to send and receive signaling messages to and from network entities such as switches. A call manager's signaling VCs are visible to NDIS. The call manager must create, activate, deactivate, and delete all VCs with calls to NDIS. An MCM driver's signaling VCs, however, are opaque to NDIS. An MCM driver does not create, activate, deactivate, and delete signaling VCs with calls to NDIS. Instead, an MCM driver performs such operations internally. An MCM driver must call NDIS to perform operations on VCs used to send and/or receive client data. This is because NDIS must keep track of client VCs.
The fact that an MCM driver is both a call manager and a miniport driver means that certain connection-oriented functions are redundant. Specifically, MiniportCoCreateVcand MiniportCoDeleteVcare redundant and are therefore not supplied by an MCM driver. VC operations are handled by:
An MCM driver's ProtocolCoCreateVc and ProtocolCoDeleteVc functions when a client requests the creation or deletion of a VC
NdisMCmCreateVc and NdisMCmDeleteVc when the MCM driver creates or deletes a VC
NdisMCmActivateVc and NdisCmDeactivateVc when the MCM driver activates or deactivates a VC
An MCM driver must supply a MiniportCoRequestfunction for a client to use in querying or setting miniport driver information, as well as a MiniportCoSendPacketsfunction to handle send operations from a client.