Dropping a Party from a Multipoint Call

A connection-oriented client that serves as the root of a multipoint call must eventually drop each party from that call with NdisClDropParty or NdisClCloseCall.

A client drops a party from a call in the following situations:

A client's call to NdisClDropParty causes NDIS to call the ProtocolCmDropParty function of the call manager or MCM driver that shares the same NdisVcHandle to the multipoint VC.

The following figure shows the client of a call manager requesting to drop a party from a multipoint call.

Diagram showing the client of a call manager requesting to drop a party from a multipoint call.

The next figure shows the client of an MCM driver requesting to drop a party from a multipoint call.

Diagram showing the client of an MCM driver requesting to drop a party from a multipoint call.

ProtocolCmDropParty communicates with network control devices to drop a party from an existing multipoint call. NDIS can pass to ProtocolCmDropParty a pointer to a buffer that contains data (supplied to the client in the call to NdisClDropParty). ProtocolCmDropParty must send any such data across the network before the connection is dropped.

ProtocolCmDropParty can complete synchronously, or more probably, asynchronously with NdisCmDropPartyComplete, in the case of a call manager, or NdisMCmDropPartyComplete, in the case of an MCM driver.

The call to Ndis(M)CmDropPartyComplete causes NDIS to call the client's ProtocolClDropPartyComplete function. If the client is in the process of tearing down a multipoint VC that it created, ProtocolClDropPartyComplete can call NdisClDropParty with any valid NdisPartyHandle to one of the remaining parties on the client's active multipoint VC. If only one party remains on its multipoint VC, the client should drop that party by passing its NdisPartyHandle to NdisClCloseCall(see Client-Initiated Request to Close a Call).