NdisClRegisterSap 函数 (ndis.h)

NdisClRegisterSap 注册一个 SAP,客户端可以在 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 注册 SAP,而无需联系其他网络组件,具体取决于基础媒体。

如果客户端调用 NdisClRegisterSap 成功,则客户端必须将返回的句柄保存在 NdisSapHandle ,因为它是 NdisClDeregisterSap 的必需参数。 NdisClRegisterSap 的调用方通常会将指针传递到 ProtocolSapContext 上客户端分配的状态区域中的变量,以便如果此调用成功,NDIS 可以将其设置为 NdisSapHandle。 在有关此 SAP 的所有后续调用中,NDIS 将给定 ProtocolSapContext 传递给客户端注册的 ProtocolCl/CoXxx 函数,直到客户端调用 NdisClDeregisterSap 为止。

通常,客户端在成功调用 NdisClOpenAddressFamilyEx 后,从其 ProtocolAfRegisterNotify 函数调用 NdisClRegisterSap。 注册一个或多个 SAP 允许客户端在呼叫管理器通过网络接收传入呼叫 () 立即接收其传入呼叫。

与客户端发起的传出调用相比,客户端在调用 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)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 Irql_Protocol_Driver_Function (ndis)

另请参阅

CO_SAP

NdisClDeregisterSap

NdisClMakeCall

NdisCmDispatchIncomingCall

NdisCoCreateVc

ProtocolClIncomingCall

ProtocolClRegisterSapComplete

ProtocolCmRegisterSap

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc