共用方式為


CoNDIS TAPI 關機

TAPI 會話會在 CoNDIS WAN 迷你埠驅動程式向應用程式列舉其 TAPI 功能之後開始。 在一次會話中,可以開啟一條或多條線路,並且可以建立一通或多通呼叫。 在通話線啟用期間,可以建立許多呼叫,然後關閉或中斷。 在工作階段中,一條或多條線路可以多次從開路轉換到閉路。 本節說明迷你埠驅動程式如何處理這類轉換。

關閉通話

進程內呼叫可以由本機節點或遠端節點關閉。 呼叫可以在本機節點上關閉,可能是因為最後一個具有呼叫句柄的應用程式已關閉句柄,或可能是因為迷你埠驅動程式的 MiniportHaltExMiniportResetEx 已呼叫。 如果遠端節點中斷進行中的呼叫,迷你端口驅動程序必須通知上層以終止呼叫。

如果本機節點上的應用程式關閉呼叫,則必須中斷呼叫的連線。 呼叫因為應用程式呼叫 TAPI lineDrop 函式而中斷連線。 這個 TAPI 函式呼叫會導致 NDPROXY 驅動程式呼叫 NdisCloseCall 函式,並傳遞代表呼叫 VC 的句柄。 NDIS 接著會呼叫 CoNDIS WAN 迷你埠驅動程式的 ProtocolCmCloseCall 函式。 迷你埠驅動程序應該會將NDIS_STATUS_PENDING傳回 NDPROXY,讓迷你埠驅動程式可以異步完成 NdisCloseCall

迷你埠驅動程式的 ProtocolCmCloseCall 必須與網路控制裝置通訊,以終止本機節點與遠端節點之間的連線。 迷你埠驅動程式接著必須呼叫 NdisMCmDeactivateVc 函式,以起始用於呼叫的 VC 停用。

迷你埠驅動程序終止連線之後,其 ProtocolCmCloseCall 可以呼叫 NdisMCmCloseCallComplete 函式來完成呼叫關閉。

如果遠端節點停止進程內呼叫,迷你埠驅動程式會呼叫 NdisCmDispatchIncomingCloseCall 函式,以通知 NDISWAN 和 NDPROXY 卸除傳入呼叫。

關閉連線

當最後一個具有開啟控制代碼的應用程式關閉該控制代碼時,線路將被關閉。 由於應用程式呼叫 TAPI lineClose 函式,一行被關閉。 此 TAPI 函式呼叫會導致 NDPROXY 驅動程式起始該行上所有呼叫的關閉,如上一節所述。 迷你埠驅動程式應該卸除這些呼叫並清除其狀態。

關閉會話

會話終止可由上層或 CoNDIS WAN 迷你埠驅動程式起始。 在最後一個用戶端進程與較高層級的 Telephony 模組中斷鏈接後,NDPROXY 驅動程式會被通知必須與每個已註冊的介面卡終止其會話。 若要這樣做,NDPROXY 驅動程式會呼叫 NdisCloseAddressFamily 函式,並將句柄傳遞至 TAPI 位址系列。 NDIS 接著會呼叫迷你埠驅動程式的 ProtocolCmCloseAf 函式。 迷你埠驅動程式應該終止它在指定配接器上進行的任何相關活動,並釋放任何相關的資源。 在呼叫 NdisClCloseAddressFamily 之後,客戶端應將 TAPI 位址族的句柄視為無效。

如果小型端口驅動程式在其 MiniportHaltEx 函數中被卸載,就可能會發生由驅動程式引發的會話終止。 一般而言,迷你埠驅動程式會完成任何未完成的 NDPROXY 要求,並通知 NDISWAN 所有呼叫都關閉。 如果迷你埠驅動程式稍後再次重載,則會經歷先前所述的相同初始化程式。

如果 CoNDIS WAN 迷你埠驅動程式經歷了一些需要完整重新初始化所有用戶端和驅動程式的動態重新設定,則也可能起始會話終止。 例如,如果轉接器的線路裝置建模(例如支援的線路裝置數目)即時變更。