호출 관리자는 신호 가상 회선(VC) 을 사용하여 스위치와 같은 네트워크 엔터티와 주고받는 신호 메시지를 보내고 받습니다. 호출 관리자의 신호 VC는 NDIS에 표시됩니다. 호출 관리자는 NDIS 호출을 사용하여 모든 VC를 만들고, 활성화하고, 비활성화하고, 삭제해야 합니다. 그러나 MCM 드라이버의 신호 VC는 NDIS에 불투명합니다. MCM 드라이버는 NDIS 호출을 사용하여 신호 VC를 만들고, 활성화하고, 비활성화하고, 삭제하지 않습니다. 대신 MCM 드라이버는 내부적으로 이러한 작업을 수행합니다. MCM 드라이버는 클라이언트 데이터를 보내거나 받는 데 사용되는 VC에서 작업을 수행하려면 NDIS를 호출해야 합니다. 이는 NDIS가 클라이언트 VC를 추적해야 하기 때문입니다.
MCM 드라이버는 호출 관리자이자 미니포트 드라이버이기 때문에 특정 연결 지향 함수는 중복됩니다. 특히 MiniportCoCreateVc 및 MiniportCoDeleteVc 중복되므로 MCM 드라이버에서 제공하지 않습니다. VC 작업은 다음을 통해 처리됩니다.
클라이언트가 VC 생성 또는 삭제를 요청할 때 MCM 드라이버의 ProtocolCoCreateVc 및 ProtocolCoDeleteVc 함수가 작동합니다.
MCM 드라이버가 VC를 만들거나 삭제할 때 및 NdisMCmCreateVc과 NdisMCmDeleteVc.
NdisMCmActivateVc 및 NdisCmDeactivateVc는 MCM 드라이버가 VC를 활성화하거나 비활성화할 때 사용됩니다.
MCM 드라이버는 클라이언트가 미니포트 드라이버 정보를 쿼리하거나 설정하는 데 사용할 MiniportCoOidRequest 함수와 클라이언트에서 보내는 작업을 처리하는 MiniportCoSendNetBufferLists 함수를 제공해야 합니다.