나가는 호출을 하기 전에 연결 지향 클라이언트가 VC(가상 연결) 만들기를 시작합니다. 연결 지향 클라이언트에 들어오는 호출을 나타내기 전에 호출 관리자 또는 MCM 드라이버가 VC 만들기를 시작합니다. VC를 설정하고 활성화한 후에는 VC에서 클라이언트 데이터를 전송하거나 받을 수 있습니다.
호출 관리자 또는 MCM 드라이버는 네트워크 스위치와 같은 네트워크 구성 요소와 신호 메시지를 교환하는 VC 만들기를 시작할 수도 있습니다.
Client-Initiated 벤처 캐피탈 만들기
NdisClMakeCall 호출하기 전에 연결 지향 클라이언트는 NdisCoCreateVc 호출하여 VC 만들기를 시작합니다.
다음 그림에서는 VC 만들기를 시작하는 호출 관리자의 클라이언트를 보여줍니다.
다음 그림에서는 VC 만들기를 시작하는 MCM 드라이버의 클라이언트를 보여줍니다.
호출 관리자의 연결 지향 클라이언트가 NdisCoCreateVc을 호출할 때, NDIS는 동기 작업으로 호출 관리자의 ProtocolCoCreateVc 함수와 기본 미니포트 드라이버의 MiniportCoCreateVc 함수를 호출합니다(이 항목의 첫 번째 그림 참조). NDIS는 VC를 나타내는 NdisVcHandle을 ProtocolCoCreateVc 및 MiniportCoCreateVc에 전달합니다. NdisCoCreateVc 호출이 성공하면, NDIS는 NdisVcHandle을 NdisCoCreateVc에 반환합니다.
ProtocolCoCreateVc 호출 관리자가 활성화될 VC에서 후속 작업을 수행하는 데 필요한 동적 리소스 및 구조를 할당하고 초기화합니다. MiniportCoCreateVc 미니포트 드라이버가 VC에 대한 상태 정보를 유지하는 데 필요한 모든 리소스를 할당하고 초기화합니다. ProtocolCoCreateVc 및 MiniportCoCreateVc는 NdisVcHandle을(를) 저장합니다.
MCM 드라이버의 연결 지향 클라이언트인 경우 NdisCoCreateVc 호출하면 NDIS가 MCM 드라이버의 ProtocolCoCreateVc 함수를 호출합니다(Client-Initiated VC 만들기 참조). 이 경우 ProtocolCoCreateVc VC에 필요한 리소스 할당 및 초기화를 수행합니다. MCM 드라이버가 이러한 함수를 제공하지 않으므로 MiniportCoCreateVc호출(내부 또는 기타)이 없습니다.
호출 Manager-Initiated VC 생성하기
NdisCmDispatchIncomingCall사용하여 연결 지향 클라이언트에 들어오는 호출을 나타내는 전에 호출 관리자가 NdisCoCreateVc 호출하여 VC 만들기를 시작합니다(다음 그림 참조).
VC 만들기를 시작하는 호출 관리자를 보여 주는
호출 관리자가 NdisCoCreateVc를 호출할 때, NDIS는 동기 작업으로 호출이 수신되는 SAP를 등록한 연결 지향 클라이언트의 ProtocolCoCreateVc 함수를 호출하며, 기본 미니포트의 MiniportCoCreateVc 함수도 호출합니다. NDIS는 VC를 나타내는 NdisVcHandle을 ProtocolCoCreateVc 및 MiniportCoCreateVc에 전달합니다. NdisCoCreateVc 호출이 성공하면, NDIS는 NdisVcHandle을 NdisCoCreateVc에 반환합니다.
MCM 드라이버 주도 VC 생성
MCM 드라이버는 NdisMCmDispatchIncomingCall를 사용하여 연결 지향 클라이언트에 들어오는 호출을 나타내는 전에, VC 생성을 시작하기 위해 NdisMCmCreateVc를 호출합니다(다음 그림 참조).
VC 만들기를 시작하는 MCM 드라이버를 보여 주는
MCM 드라이버가 NdisMCmCreateVc를 호출할 때, NDIS는 동기 작업으로 NdisMCmCreateVc가 반환되기 전에, 요청이 수신되는 SAP를 등록한 연결 지향 클라이언트의 ProtocolCoCreateVc 함수를 호출합니다. NDIS는 VC를 나타내는 NdisVcHandle을 ProtocolCoCreateVc에 전달합니다. NdisMCmCreateVc 호출에 성공하면, NDIS는 NdisVcHandle을 NdisMCmCreateVc에 반환합니다.
ProtocolCoCreateVc 클라이언트가 VC에서 후속 작업을 수행하는 데 필요한 동적 리소스 및 구조를 할당하고 초기화합니다. ProtocolCoCreateVc 는 NdisVcHandle 도 저장합니다.
MCM 드라이버가 네트워크 구성 요소와 신호 메시지를 교환하기 위한 VC를 만들 때는 NdisXxx 호출을 사용하여 VC를 만들지 않습니다. 실제로 MCM 드라이버는 NdisXxx 호출을 사용하여 이러한 VC를 생성, 활성화, 비활성화 또는 삭제하지 않습니다. 대신 MCM 드라이버는 내부적으로 이러한 작업을 수행합니다. 따라서 이러한 VC는 NDIS에 불투명합니다.