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 协议驱动程序注册为 NDIS 协议驱动程序 NdisRegisterProtocolDriver 函数应调用 NdisCmRegisterAddressFamilyEx 函数来注册 AF。 微型端口呼叫经理 (MCM) 必须改为呼叫 NdisMCmRegisterAddressFamilyEx 函数。

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

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

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

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

要求

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

另请参阅

CO_ADDRESS_FAMILY

NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolCoAfRegisterNotify