NdisClRegisterSap 函式 (ndis.h)

NdisClRegisterSap 會註冊 SAP,用戶端可從遠端節點接收來電。

語法

NDIS_STATUS NdisClRegisterSap(
  [in]  NDIS_HANDLE  NdisAfHandle,
  [in]  NDIS_HANDLE  ProtocolSapContext,
  [in]  PCO_SAP      Sap,
  [out] PNDIS_HANDLE NdisSapHandle
);

參數

[in] NdisAfHandle

指定 NdisClOpenAddressFamilyEx 所傳回的句柄,此句柄會隱含識別要用來註冊 SAP 的呼叫管理員。

[in] ProtocolSapContext

指定呼叫端提供的駐留內容區域的句柄,用戶端會在開啟此SAP之後維護此 SAP 的狀態。 如果 對 NdisClRegisterSap 的呼叫成功,NDIS 會將此句柄傳回至此 SAP 的所有後續呼叫。

[in] Sap

要開啟之 SAP 的用戶端提供規格指標,格式化為類型 CO_SAP

[out] NdisSapHandle

如果這個呼叫成功,則會傳回新註冊 SAP 句柄的變數指標。

傳回值

NdisClRegisterSap 傳回NDIS_STATUS_PENDING以外的任何專案時,客戶端應該對其進行內部呼叫 ProtocolClRegisterSapComplete 函式 。 否則,NDIS 會在完成此作業時呼叫用戶端的 ProtocolClRegisterSapComplete 函式。

備註

透過呼叫 NdisClRegisterSap,用戶端會在特定 SAP 上要求連入呼叫的通知。 NDIS 會將指定的 SAP 資訊轉送到呼叫管理員的 ProtocolCmRegisterSap 函式以進行驗證。 如果指定的 SAP 已在使用中,或呼叫管理員無法辨識 Sap 上的用戶端提供的規格,則呼叫管理員會失敗此要求。

SAP 格式與媒體相依,且專屬於呼叫管理員所支援的位址系列,其後續會使用已註冊的 SAP,將連入呼叫路由傳送至適當的用戶端。 呼叫管理員可以註冊已建立 PVC 的 SA,而不需連絡其他網路元件,視基礎媒體而定。

如果對 NdisClRegisterSap 的呼叫成功,客戶端必須儲存在 NdisSapHandle 傳回的句柄,因為它是 NdisClDeregisterSap 的必要參數。 NdisClRegisterSap 的呼叫端通常會將指標傳遞至 ProtocolSapContext 上用戶端配置狀態區域中的變數,讓 NDIS 可以在此呼叫成功時將其設定為 NdisSapHandle。 NDIS 會將指定的 ProtocolSapContext 傳遞至用戶端在有關此 SAP 的所有後續呼叫中註冊的 ProtocolCl/CoXxx 函式,直到用戶端呼叫 NdisClDeregisterSap 為止。

用戶端通常會在成功呼叫 NdisClOpenAddressFamilyEx 之後,從其 ProtocolAfRegisterNotify 函式呼叫 NdisClRegisterSap。 註冊一或多個 SAP 可讓用戶端在呼叫管理員透過網路收到來電時立即接收其來電 (s) 。

相較於用戶端起始的傳出呼叫,用戶端在呼叫 NdisClRegisterSap 之前,不會呼叫 NdisCoCreateVc。 對於連入通話,呼叫管理員會起始 VC 的建立,如下所示:

規格需求

需求
最低支援的用戶端 支援 NDIS 6.0 和 NDIS 5.1 驅動程式, (請參閱 Windows Vista 中的 NdisClRegisterSap (NDIS 5.1) ) 。 支援 NDIS 5.1 驅動程式 (請參閱 Windows XP 中的 NdisClRegisterSap (NDIS 5.1) ) 。
目標平台 桌面
標頭 ndis.h (包括 Ndis.h)
程式庫 Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 合規性規則 Irql_Protocol_Driver_Function (ndis)

另請參閱

CO_SAP

NdisClDeregisterSap

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoCreateVc

ProtocolClIncomingCall

ProtocolClRegisterSapComplete

ProtocolCmRegisterSap

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc