NdisCmRegisterAddressFamilyEx 函数 (ndis.h)

NdisCmRegisterAddressFamilyEx 函数 (AF) 注册地址系列,以便在 CoNDIS 驱动程序之间进行通信。

语法

NDIS_STATUS NdisCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        NdisBindingHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

参数

[in] NdisBindingHandle

NDIS 在 NdisOpenAdapterEx 函数的 NdisBindingHandle 参数中提供的句柄。 此句柄标识要与 AF 关联的绑定。

[in] AddressFamily

指向 CO_ADDRESS_FAMILY 结构的指针,该结构标识调用管理器以及它为 NdisBindingHandle 指定的绑定支持的 AF。

AddressFamily 的指针成为指向 的输入参数绑定到同一 CoNDIS 微型端口适配器的所有客户端的 ProtocolCoAfRegisterNotify 函数。

返回值

NdisCmRegisterAddressFamilyEx 可以返回以下任一项:

返回代码 说明
NDIS_STATUS_SUCCESS
协议驱动程序注册了 AddressFamily 指向的 AF,因此 NDIS 将调用将自身绑定到同一微型端口适配器的所有客户端的 ProtocolCoAfRegisterNotify 函数。
NDIS_STATUS_RESOURCES
请求的操作失败,因为 NDIS 无法分配足够的内存或初始化它用于跟踪调用管理器或指定的 AF 的状态。
NDIS_STATUS_FAILURE
NDIS 未能调用 NdisCmRegisterAddressFamilyEx,原因可能是以下原因之一:
  • 调用方未注册为面向连接的协议驱动程序。
  • 调用方绑定到的微型端口驱动程序未注册为面向连接的微型端口驱动程序。
  • 另一个呼叫管理器已经注册了指定的 AF。
  • 正在关闭调用方绑定。

注解

NDIS 独立调用管理器,通过调用 注册为 NDIS 协议驱动程序 NdisRegisterProtocolDriver 函数应调用 NdisCmRegisterAddressFamilyEx 函数来注册 AF。 微型端口呼叫管理器 (MMC) 必须改为调用 NdisMCmRegisterAddressFamilyEx 函数。

若要为绑定注册 AF,独立调用管理器应从 调用 NdisCmRegisterAddressFamilyEx ProtocolBindAdapterEx 函数。

独立调用管理器的 ProtocolBindAdapterEx 函数首先通过调用 NdisOpenAdapterEx 函数来建立与基础微型端口驱动程序的绑定。 每次 NDIS 使用 BindContext 参数上的另一个句柄调用 ProtocolBindAdapterEx 时,ProtocolBindAdapterEx 都会建立一个绑定并注册它支持的 AF。 换句话说,独立调用管理器最终会为每个绑定注册 AF,该绑定将基于该绑定向面向连接的客户端提供呼叫管理服务。

呼叫管理器可以支持多个 AF,并且可以为单个绑定支持多个 AF。 但是,对于绑定到给定微型端口适配器的客户端,只有一个呼叫管理器可以支持给定的 AF。

当调用管理器的 ProtocolBindAdapterEx 函数在成功绑定操作后返回控件时,NDIS 会调用绑定到同一微型端口适配器的所有客户端的 ProtocolCoAfRegisterNotify 函数。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
DDI 符合性规则 Irql_CallManager_Function (ndis)

另请参阅

CO_ADDRESS_FAMILY

NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolCoAfRegisterNotify