NdisMCmRegisterAddressFamilyEx 函数 (ndis.h)

NdisMCmRegisterAddressFamilyEx 函数 (AF) 注册地址系列,以便在微型端口调用管理器 (MCM) 和 CoNDIS 客户端之间进行通信。

语法

NDIS_STATUS NdisMCmRegisterAddressFamilyEx(
  [in] NDIS_HANDLE        MiniportAdapterHandle,
  [in] PCO_ADDRESS_FAMILY AddressFamily
);

参数

[in] MiniportAdapterHandle

标识微型端口适配器的 NDIS 提供的句柄。 此句柄是 MCM 的输入参数 MiniportInitializeEx 函数。

[in] AddressFamily

指向 CO_ADDRESS_FAMILY 结构的指针,该结构标识 MCM 驱动程序支持的 AF。

指针将成为指向 的输入参数绑定到此 MCM 驱动程序的所有 CoNDIS 客户端的 ProtocolCoAfRegisterNotify 函数。

返回值

NdisMCmRegisterAddressFamilyEx 可以返回以下任一项:

返回代码 说明
NDIS_STATUS_SUCCESS
微型端口驱动程序在 NDIS 中注册为 AddressFamily 参数指定的 AF 的调用管理器,因此 NDIS 将调用绑定到 MCM 驱动程序的所有客户端的 ProtocolCoAfRegisterNotify 函数。
NDIS_STATUS_RESOURCES
请求的操作失败,因为 NDIS 无法分配足够的内存或初始化它用作指定 AF 的调用管理器来跟踪 MCM 驱动程序的状态信息。
NDIS_STATUS_FAILURE
NDIS 未能调用 NdisMCmRegisterAddressFamilyEx,原因可能是以下原因之一:
  • 调用方未注册为面向连接的微型端口驱动程序。
  • 调用方尝试为给定微型端口适配器注册重复的 AF。

注解

NDIS MMS,通过调用 注册为 NDIS 微型端口驱动程序 NdisMRegisterMiniportDriver 函数应调用 NdisMCmRegisterAddressFamilyEx 函数来注册 AF。 独立呼叫管理器应改为调用 NdisCmRegisterAddressFamilyEx 函数。

若要为微型端口适配器注册 AF,MCM 应从 MiniportInitializeEx 函数调用 NdisMCmRegisterAddressFamilyEx

具有板载连接导向信号支持的任何网络接口卡 (NIC) 的驱动程序都可以将自身注册为 MCM 驱动程序,以提高管理呼叫的性能。 如果驱动程序注册为 MCM 驱动程序,则具有 NIC 驱动程序自己的呼叫管理支持的任何独立呼叫管理器将被替换。

MCM 驱动程序在确定 NIC 完全正常运行且驱动程序可以完成网络 I/O 操作后调用 NdisMCmRegisterAddressFamilyEx 。 也就是说,此类 MCM 将自身注册为呼叫管理器,并为 CoNDIS 客户端播发其特定的信号服务。

在 MiniportInitializeEx 返回成功注册为调用管理器的控制权后,NDIS 将调用潜在客户端的 ProtocolBindAdapterEx 函数,然后调用将自身绑定到关联的 MCM 微型端口适配器的所有客户端的 ProtocolCoAfRegisterNotify 函数。 然后,这些客户端会导致 NDIS 调用 MCM 的 ProtocolCmOpenAf 函数。

MCM 可以为它管理的单个 NIC 支持多个 AF。 MCM 驱动程序必须为它为微型端口适配器注册的每个 AF 调用 NdisMCmRegisterAddressFamilyEx 一次。 对于绑定到给定微型端口适配器的客户端,只有一个 MCM 驱动程序可以支持特定类型的 AF。

要求

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

另请参阅

CO_ADDRESS_FAMILY

MiniportInitializeEx

NdisCmRegisterAddressFamilyEx

NdisMRegisterMiniportDriver

ProtocolBindAdapterEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify

ProtocolCoCreateVc

ProtocolCoDeleteVc

ProtocolCoOidRequest

ProtocolCoOidRequestComplete