共用方式為


停用 VC

通話管理員會將 NdisCmDeactivateVc 呼叫為關閉撥出或來電的基本步驟,通常是在封包與終止通話的網路元件交換之後, (請參閱 用戶端起始的要求以關閉通話 和連入 要求以關閉通話) 。 MCM 驅動程式會藉由呼叫 NdisMCmDeactivateVc來執行相同的動作。

呼叫 NdisCmDeactivateVc 會導致 NDIS呼叫基礎迷你埠驅動程式的MiniportCoDeactivateVc函式, (請參閱下圖) 。 MiniportCoDeactivateVc 會與其網路介面卡通訊,以終止此 VC (的所有通訊,例如清除介面卡) 上的接收或傳送緩衝區。

此圖顯示起始 VC 停用的呼叫管理員。

停用 VC 之前,迷你埠驅動程式必須完成 VC 上任何擱置的傳輸。 也就是說,迷你埠驅動程式必須等到它已完成所有進行中的傳送,以及直到它指出的所有接收封包都傳回給它為止。 停用 VC 之後,迷你埠驅動程式無法指出 VC 上的接收或傳輸傳送。

請注意 ,MiniportCoDeactivateVc 不會刪除 VC。 建立者 (用戶端、呼叫管理員或 MCM 驅動程式) ,該 VC 不會重複使用 NdisCoDeleteVc終結該 VC。 已停用的 VC 可由連接導向用戶端、呼叫管理員或 MCM 驅動程式 重新啟用

MiniportCoDeactivateVc 可以同步或非同步完成。 呼叫 NdisMCoDeactivateVcComplete。 會導致 NDIS 呼叫原本要求 VC 停用之呼叫管理員的 ProtocolCmDeactivateVcComplete 函式。 停用完成表示啟用時所使用的 VC 的所有呼叫參數都不再有效。 禁止進一步使用 VC,除非使用一組新的呼叫參數重新啟用它。

MCM 驅動程式對 NdisMCmDeactivateVc 的呼叫會通知 NDIS 它已停用 VC 或變更已建立 VC 上的呼叫參數 (請參閱下圖) 。 NDIS 會藉由呼叫 MCM 驅動程式的 ProtocolCmDeactivateVcComplete 函式來完成停用順序。

說明起始 VC 停用之 MCM 驅動程式的圖表。

MCM 驅動程式不會呼叫 NdisMCmDeactivateVc 來停用用來交換 MCM 驅動程式與網路元件之間的訊號訊息的 VM,例如交換器。 MCM 驅動程式會在內部停用訊號 VC,而不需呼叫任何NdisXxx函式。