進行傳出呼叫之前,連線導向用戶端會起始建立虛擬連線 (VC)。 在向一個連線導向用戶端指示來電之前,呼叫管理員或 MCM 驅動程式會先開始建立 VC。 設定並啟用 VC 之後,就可以在 VC 上傳輸或接收客戶端數據。
呼叫管理員或 MCM 驅動程式也可以起始建立 VC,其中訊號訊息會與網路元件交換,例如網路交換器。
Client-Initiated 建立風險投資公司
使用 NdisClMakeCall進行 呼叫之前,連線導向用戶端會呼叫 NdisCoCreateVc 來起始建立 VC。
下圖顯示一位呼叫管理員的用戶端正在啟動建立 VC 的程序。
下圖顯示一個 MCM 驅動程式的用戶端正在啟動建立 VC 的過程。
當呼叫管理員的連接導向用戶端呼叫 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 函式(請參閱 VC 的建立(MCM 驅動程式存在)Client-Initiated)。 在此情況下,ProtocolCoCreateVc 會針對 VC 執行必要的資源配置和初始化。 MiniportCoCreateVc沒有任何(內部或其他)呼叫,因為 MCM 驅動程式不提供這類函式。
呼叫 Manager-Initiated 創建 VC
在以 NdisCmDispatchIncomingCall 指示給連線導向用戶端有來電之前,呼叫管理員會呼叫 NdisCoCreateVc 來起始建立 VC(請參閱下圖)。
當呼叫管理員呼叫 NdisCoCreateVc時,NDIS 會以同步作業方式呼叫在接收這個呼叫的 SAP 上註冊的連線導向用戶端的 ProtocolCoCreateVc 函式,以及基礎小型埠的 MiniportCoCreateVc 函式。 NDIS 會將代表 VC 的 NdisVcHandle 傳遞至 ProtocolCoCreateVc 和 MiniportCoCreateVc。 如果呼叫 NdisCoCreateVc 成功,NDIS 會將 NdisVcHandle 傳回至 NdisCoCreateVc。
MCM Driver-Initiated 創建風險投資 (VC)
在使用 NdisMCmDispatchIncomingCall 指示連接導向用戶端有來電之前,MCM 驅動程式會呼叫 NdisMCmCreateVc 以開始建立 VC(請參閱下圖)。
當 MCM 驅動程式呼叫 NdisMCmCreateVc時,NDIS 會在 NdisMCmCreateVc 傳回之前,以同步操作方式呼叫由註冊接收呼叫的 SAP 的面向連接用戶端的 ProtocolCoCreateVc 函式。 NDIS 會傳遞 NdisVcHandle,這個代碼代表 VC,至 ProtocolCoCreateVc。 如果呼叫 NdisMCmCreateVc 成功,NDIS 會傳回 NdisVcHandleNdisMCmCreateVc。
ProtocolCoCreateVc 配置並初始化用戶端在 VC 上執行後續作業所需的任何動態資源和結構。 ProtocolCoCreateVc 也會儲存 NdisVcHandle 。
請注意,當 MCM 驅動程式建立 VC 以與網路元件交換訊號訊息時,它不會使用 NdisXxx 呼叫來建立 VC。 事實上,MCM 驅動程式不會使用 NdisXxx 呼叫來建立、啟用、停用或刪除這類 VM。 相反地,MCM 驅動程式會在內部執行這些作業。 因此,這類 VCS 對 NDIS 不透明。