マルチポイント呼び出しからのパーティーの削除
マルチポイント呼び出しのルートとして機能するコネクション指向のクライアントは、最終的に NdisClDropParty または NdisClCloseCall を使用して、その呼び出しから各パーティを削除する必要があります。
次の状況で、クライアントは通話からパーティーを削除します。
NdisClCloseCall を使用してマルチポイント呼び出しの破棄を開始する前に (クライアントが開始したリクエストの呼び出しを閉じるを参照)、クライアントは NdisClDropParty への連続した呼び出しを持つ最後のパーティー以外のすべてを削除する必要があります。 クライアントは、NdisClCloseCall を使用して呼び出しから削除する最後のパーティを指定します。
マルチポイント呼び出しから削除するリモート パーティのリクエスト (「Multipoint 呼び出しからパーティーを削除する着信リクエスト」を参照) に応答して、クライアントは ProtocolClIncomingDropParty 関数から NdisClDropParty を呼び出します。
NdisClDropParty に対するクライアントの呼び出しにより、NDIS は、同じ NdisVcHandle をマルチポイント VC に共有する呼び出しマネージャーまたは MCM ドライバーの ProtocolCmDropParty 関数を呼び出します。
次の図は、マルチポイント通話からパーティーを削除するようリクエストする通話マネージャーのクライアントを示しています。
次の図は、マルチポイント呼び出しからパーティーを削除するようリクエストする MCM ドライバーのクライアントを示しています。
ProtocolCmDropParty は、ネットワーク制御デバイスと通信し、既存のマルチポイント呼び出しからパーティーを削除します。 NDIS は ProtocolCmDropParty にデータを含むバッファーへのポインターを譲渡することができます (NdisClDropParty の呼び出しでクライアントに提供されます)。 ProtocolCmDropParty は、接続を切断する前に、ネットワーク経由でそのようなデータを送信する必要があります。
ProtocolCmDropParty は、コールマネージャーの場合は NdisCmDropPartyComplete、MCM ドライバーの場合は NdisMCmDropPartyComplete を使用して非同期的に、またはおそらく非同期的に完了できます。
Ndis(M)CmDropPartyComplete を呼び出すと、NDIS はクライアントの ProtocolClDropPartyComplete 関数を呼び出します。 クライアントが作成したマルチポイント VC を破棄中の場合、ProtocolClDropPartyComplete は、任意の有効な NdisPartyHandle を持つ NdisClDropParty を、クライアントのアクティブなマルチポイント VC の再メインパーティの 1 つに呼び出すことができます。 マルチポイント VC で メインが1人のパーティのみの場合、クライアントは NdisPartyHandle を NdisClCloseCall に渡すことによって、そのパーティーを削除する必要があります (クライアントが開始した呼び出しを閉じるを参照)。