Share via


Registering as a Call Manager (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.

To register as a call manager, a protocol driver calls NdisCmRegisterAddressFamilyfrom its ProtocolBindAdapterfunction. The protocol driver makes this call after the driver has established a binding to the underlying miniport driver with NdisOpenAdapter. The protocol driver calls NdisCmRegisterAddressFamilyeach time that its ProtocolBindAdapterfunction is called, effectively registering an address family for each NIC on which it provides call management services to connection-oriented clients.

By calling NdisCmRegisterAddressFamily, a protocol driver both registers its call manager functions and advertises its specific signaling services for all clients on the binding. After the call manager's ProtocolBindAdapterfunction returns control with a successful registration as a stand-alone call manager, NDIS calls the ProtocolCoAfRegisterNotifyfunctions of all connection-oriented clients on the binding (see Registering as a Connection-Oriented Client).

Before calling NdisCmRegisterAddressFamily, the protocol driver must:

  1. Zero a structure of type NDIS_CALL_MANAGER_CHARACTERISTICS to pass to the CmCharacteristics parameter of NdisCmRegisterAddressFamily.

  2. Set the appropriate version information in the structure.

  3. Store the addresses of the ProtocolXxx call manager functions.

The following table lists the entry points and their respective call manager functions that a protocol driver must register with NdisCmRegisterAddressFamily.

Entry point ProtocolXxx function

CmCreateVcHandler

ProtocolCoCreateVc

CmDeleteVcHandler

ProtocolCoDeleteVc

CmOpenAfHandler

ProtocolCmOpenAf

CmCloseAfHandler

ProtocolCmCloseAf

CmRegisterSapHandler

ProtocolCmRegisterSap

CmDeregisterSapHandler

ProtocolCmDeregisterSap

CmMakeCallHandler

ProtocolCmMakeCall

CmCloseCallHandler

ProtocolCmCloseCall

CmIncomingCallCompleteHandler

ProtocolCmIncomingCallComplete

CmAddPartyHandler

ProtocolCmAddParty

CmDropPartyHandler

ProtocolCmDropParty

CmActivateVcCompleteHandler

ProtocolCmActivateVcComplete

CmDeactivateVcCompleteHandler

ProtocolCmDeactivateVcComplete

CmModifyCallQoSHandler

ProtocolCmModifyCallQoS

CmRequestHandler

ProtocolCoRequest

CmRequestCompleteHandler

ProtocolCoRequestComplete

 

Note   A protocol driver must set every CmXxx member in the NDIS_CALL_MANAGER_CHARACTERISTICS structure, even if it does not support incoming calls, outgoing calls, or point-to-multipoint connections. For whatever subset of connection-oriented functionality that such a call manager does not support, its placeholder ProtocolCmXxx functions simply return NDIS_STATUS_NOT_SUPPORTED.

 

Note   After a stand-alone call manager calls NdisCmRegisterAddressFamily successfully, NDIS ignores any entry points that the call manager previously specified in the RequestHandler and RequestCompleteHandler members of the NDIS_PROTOCOL_CHARACTERISTICS structure that it passed to NdisRegisterProtocol.

 

 

 

Send comments about this topic to Microsoft