刪除 VC
只有起始建立虛擬線路的連線導向用戶端、呼叫管理員或 MCM 驅動程式, (VC) 可以起始刪除該 VC。 因此,用戶端會刪除先前針對傳出通話建立的 VC、呼叫管理員或 MCM 驅動程式會刪除先前針對網路連入通話建立的 VC,而呼叫管理員會刪除先前建立的 VC,以便透過網路交換訊號訊息。 (MCM 驅動程式不會呼叫 NDIS 來刪除它為交換訊號訊息所建立的 VC。MCM 驅動程式會刪除這類 VC,其內部作業不透明至 NDIS.)
連線導向用戶端或呼叫管理員會使用 NdisCoDeleteVc 起始刪除 VC。
下圖顯示起始刪除 VC 之呼叫管理員的用戶端。
下圖顯示起始刪除 VC 之 MCM 驅動程式的用戶端。
下圖顯示起始刪除 VC 的呼叫管理員。
當用戶端或呼叫管理員呼叫 NdisCoDeleteVc 或 MCM 驅動程式呼叫 NdisMCmDeleteVc時,指定的 VC 上不得有任何未完成的呼叫,且 VC 必須已經 停用。 為了符合這些需求,表示滿足下列條件:
用戶端已使用指定的NdisVcHandle呼叫NdisCloseCall,且其關閉呼叫要求已成功完成。
呼叫管理員已呼叫NdisCmDeactivateVc,或 MCM 驅動程式已使用指定的NdisMCmHandle呼叫NdisMCmDeactivateVc,且停用要求已成功完成 (請參閱連入要求以關閉通話) 。
用戶端或呼叫管理員對NdisCoDeleteVc的呼叫會導致 NDIS 同時呼叫基礎迷你埠驅動程式的MiniportCoDeleteVc函式,以及呼叫端共用NdisVcHandle的ProtocolCoDeleteVc函式, (請參閱上述三個圖表) 。
MiniportCoDeleteVc 釋出配置給 VC 的任何資源,以及 VC 的迷你埠驅動程式內容。 ProtocolCoDeleteVc 會釋放用戶端或呼叫管理員用來對 VC 執行作業並追蹤狀態的任何資源。 MiniportCoDeleteVc和ProtocolCoDeleteVc都是無法傳回NDIS_STATUS_PENDING的同步函式。
MCM 驅動程式會使用 NdisMCmDeleteVc 起始刪除 VC (請參閱下圖) 。
MCM 驅動程式對NdisMCmDeleteVc的呼叫會導致 NDIS 呼叫 MCM 驅動程式共用NdisVcHandle之用戶端的ProtocolCoDeleteVc函式。
當 NdisCoDeleteVc或NdisMCmDeleteVc傳回控制項時,NdisVcHandle已不再有效。