다음을 통해 공유


멀티포인트 호출에서 파티 제거

멀티포인트 호출의 루트 역할을 하는 연결 지향 클라이언트는 결국 NdisClDropParty 또는 NdisCloseCall을 사용하여 해당 호출에서 각 당사자를 삭제해야 합니다.

클라이언트는 다음과 같은 상황에서 통화에서 파티를 삭제합니다.

  • NdisCloseCall을 사용하여 멀티포인트 호출의 중단을 시작하기 전에(Client-Initiated 통화 닫기 요청 참조) 클라이언트는 NdisClDropParty에 대한 연속 호출이 있는 마지막 파티를 제외한 모든 당사자를 삭제해야 합니다. 클라이언트는 NdisCloseCall을 사용하여 호출에서 삭제할 마지막 파티를 지정합니다.

  • 원격 당사자가 멀티포인트 호출에서 삭제하라는 요청( Multipoint Call에서 파티 삭제 요청 참조)에 대한 응답으로, Client는 ProtocolClIncomingDropParty 함수에서 NdisClDropParty를 호출합니다.

클라이언트가 NdisClDropParty를 호출하면 NDIS가 동일한 NdisVcHandle을 멀티포인트 VC에 공유하는 호출 관리자 또는 MCM 드라이버의 ProtocolCmDropParty 함수를 호출합니다.

다음 그림에서는 멀티포인트 호출에서 파티 삭제를 요청하는 호출 관리자의 클라이언트를 보여 있습니다.

멀티포인트 호출에서 파티 삭제를 요청하는 호출 관리자의 클라이언트를 보여 주는 다이어그램

다음 그림은 멀티포인트 호출에서 파티 삭제를 요청하는 MCM 드라이버의 클라이언트를 보여줍니다.

멀티포인트 호출에서 파티 삭제를 요청하는 MCM 드라이버의 클라이언트를 보여 주는 다이어그램

ProtocolCmDropParty 는 네트워크 제어 디바이스와 통신하여 기존 멀티포인트 호출에서 파티를 삭제합니다. NDIS는 데이터를 포함하는 버퍼에 대한 포인터를 ProtocolCmDropParty 에 전달할 수 있습니다( NdisClDropParty 호출에서 클라이언트에 제공됨). ProtocolCmDropParty 는 연결을 끊기 전에 네트워크를 통해 이러한 데이터를 보내야 합니다.

ProtocolCmDropParty는 호출 관리자일 경우에는 NdisCmDropPartyComplete와 함께, MCM 드라이버의 경우에는 NdisMCmDropPartyComplete와 함께 동기적으로 완료될 수도 있고, 더 가능성 높은 것은 비동기적으로 완료될 수 있습니다.

Ndis(M)CmDropPartyComplete를 호출하면 NDIS에서 클라이언트의 ProtocolClDropPartyComplete 함수를 호출합니다. 클라이언트가 만든 멀티포인트 VC를 분해하는 중이라면, ProtocolClDropPartyComplete가 클라이언트의 활성 멀티포인트 VC의 남은 당사자 중 하나에 유효한 NdisPartyHandle을 사용하여 NdisClDropParty를 호출할 수 있습니다. 하나의 당사자만 멀티포인트 VC에 남아 있는 경우 클라이언트는 NdisPartyHandleNdisCloseCall에 전달하여 해당 파티를 삭제해야 합니다( Client-Initiated 통화 닫기 요청 참조).