共用方式為


註冊和啟動位址族

呼叫管理員必須註冊每個 NIC 的位址系列,以便向連線導向用戶端提供呼叫管理員服務。 同樣地,MCM 驅動程式必須為其管理的 NIC 註冊位址系列。

藉由註冊位址系列,呼叫管理員或 MCM 驅動程式會導致 NDIS 向系結至配接器的所有連線導向用戶端公告呼叫管理員或 MCM 驅動程式的服務。

如果連線導向用戶端可以使用呼叫管理員或 MCM 驅動程式所公告的服務,則可以使用呼叫管理員或 MCM 驅動程式開啟位址系列。

從通話管理員註冊位址系列

在其 ProtocolBindAdapterEx 函式與具有 NdisOpenAdapterEx的基礎迷你埠驅動程序綁定之後,呼叫管理者會呼叫 NdisCmRegisterAddressFamilyEx 來為該綁定註冊一個位址族(請參閱下圖)。

示意圖說明向通話管理員註冊並開啟地址族的過程。

呼叫 NdisCmRegisterAddressFamilyEx 公告呼叫管理員的特定訊號服務。 每次通話管理器的 ProtocolBindAdapterEx 函式被呼叫並成功綁定到具備 NdisOpenAdapterEx的 NIC 時,都必須註冊地址族。

通話管理員可以支援它所系結之所有迷你埠驅動程式的多個位址系列。 呼叫管理員也可以在系結的單一 NIC 上支援多個位址系列。 呼叫管理員必須針對系結上的每個位址系列註冊相同的進入點。 只有一個呼叫管理員可以針對系結至任何特定迷你埠驅動程式的用戶端支援特定類型的位址系列。 如需有關註冊呼叫管理器進入點的詳細資訊,請參閱 CoNDIS 註冊

從 MCM 驅動程式註冊位址家族

MCM 驅動程式在使用 NdisMRegisterMiniportDriver註冊其迷你埠驅動程式進入點後,從 MiniportInitializeEx 函數呼叫 NdisMCmRegisterAddressFamilyEx。 如需有關登錄進入點的詳細資訊,請參閱 CoNDIS 註冊。 MCM 驅動程式會呼叫 NdisMCmRegisterAddressFamilyEx 一次,以將其服務公告給連結導向的客戶端,如以下的圖所示。

圖表說明向 MCM 驅動程式註冊和開啟地址族的過程。

具有內建聯機導向訊號支援的 NIC 迷你埠驅動程式可以自行註冊為 MCM 驅動程式,即使通話管理程式可能可用也一樣。 如此一來,這類 MCM 驅動程式會取代呼叫管理員的角色,成為該 NIC 的呼叫管理員。

開啟地址族

呼叫管理器或 MCM 驅動程式執行 Ndis(M)CmRegisterAddressFamily 後,會導致 NDIS 呼叫綁定上每個連線導向用戶端的 ProtocolCoAfRegisterNotify 函式(如前兩個圖所示)。

ProtocolCoAfRegisterNotify 會檢查位址系列數據,以判斷用戶端是否可以使用此特定 CM 或 MCM 驅動程式的服務。 用戶端是否可以在 (M)CM 提供的位址系列數據上進行修改,取決於呼叫管理員或 MCM 驅動程式的特定訊號通訊協議支援。

如果用戶端找到可接受的呼叫管理服務,ProtocolCoAfRegisterNotify 為用戶端配置每個 AF 內容區域,並呼叫 NdisClOpenAddressFamilyExNdisClOpenAddressFamilyEx 未將客戶端的連接導向入口點註冊至 NDIS。 如需向 NDIS 註冊連線導向進入點的詳細資訊,請參閱 CoNDIS 註冊

調用 NdisClOpenAddressFamilyEx 會導致 NDIS 調用呼叫管理員或 MCM 驅動程式的 ProtocolCmOpenAf 函式(如先前兩個圖所示)。 ProtocolCmOpenAf 可確保用戶端傳入有效的位址族,並配置和初始化資源,以便為開啟此位址族實例的用戶端執行必要的作業。 ProtocolCmOpenAf 也會儲存由 NDIS 提供的 NdisAfHandle,代表呼叫管理員和客戶端之間開放位址族群的關聯。

ProtocolCmOpenAf 可以同步完成,也可以異步完成。 若要以異步方式完成,呼叫管理員的 ProtocolCmOpenAf 函式會呼叫 NdisCmOpenAddressFamilyComplete;MCM 驅動程式的 ProtocolCmOpenAf 函式會呼叫 NdisMCmOpenAddressFamilyComplete。 呼叫 Ndis(M)CmOpenAddressFamilyComplete 會導致 NDIS 呼叫原本稱為 NdisClOpenAddressFamilyEx之用戶端的 ProtocolOpenAfComplete 函式。

如果客户端呼叫 NdisClOpenAddressFamilyEx 成功,NDIS 會將 NdisAfHandle 傳回給客户端,這代表在開啟的位址系列中,呼叫管理員與客户端之間的關聯。

如果用戶端接受連入呼叫,通常 透過呼叫 ProtocolClOpenAfCompleteEx 函式註冊一或多個 SAP,方法是呼叫 NdisClRegisterSap,方法是成功呼叫 NdisClOpenAddressFamilyEx

如果客戶端進行傳出呼叫,它可以 在其 ProtocolClOpenAfCompleteEx 函式中建立一或多個 VCS,以預期一或多個用戶端發出傳出呼叫的要求。