如果用戶端接受連入呼叫,則其 ProtocolClOpenAfCompleteEx 函式通常會呼叫 NdisClRegisterSap,向呼叫管理員註冊一或多個 SAP。
下圖顯示呼叫管理員的客戶端正在註冊一個 SAP。
下圖顯示 MCM 驅動程式的用戶端如何註冊 SAP。
透過呼叫 NdisClRegisterSap,用戶端會要求特定 SAP 上的來電通知。 NDIS 會將用戶端提供的 SAP 資訊轉送給呼叫管理員或 MCM 驅動程式的 ProtocolCmRegisterSap 函式以進行驗證。 如果指定的 SAP 已在使用中,或呼叫管理員或 MCM 驅動程式無法辨識用戶端提供的 SAP 規格,呼叫管理員或 MCM 驅動程式會失敗此要求。
在 ProtocolCmRegisterSap中,呼叫管理員或 MCM 驅動程式可能會與網路控制裝置或其他媒體專用代理進行通訊,以便在網路上為面向連線的用戶端註冊 SAP。 ProtocolCmRegisterSap 也會儲存 NDIS 提供的代表 SAP 的 NdisSapHandle。
ProtocolCmRegisterSap 可以同步或異步完成。 若要以異步方式完成,呼叫管理員的 ProtocolCmRegisterSap 函式會呼叫 NdisCmRegisterSapComplete。 MCM 驅動程式的 ProtocolCmRegisterSap 函式會呼叫 NdisMCmRegisterSapComplete。 呼叫 Ndis(M)CmRegisterSapComplete 會導致 NDIS 呼叫用戶端的 ProtocolClRegisterSapComplete 函式。
如果用戶端成功呼叫 NdisClRegisterSap,NDIS 會將代表 SAP 的 NdisSapHandle 傳回給用戶端。
在呼叫管理員代表連線導向客戶端註冊 SAP 之後,它會透過呼叫 NdisCmDispatchIncomingCall,通知該客戶端有一個導向至該 SAP 的傳入呼叫邀約。 MCM 驅動程式會呼叫 NdisMCmDispatchIncomingCall(請參閱 指示來電)。 即使 SAP 註冊仍然待處理,用戶端仍可在 SAP 上接收來電;也就是說,在呼叫其 ProtocolClRegisterSapComplete 函式之前。