NdisClOpenAddressFamilyEx 函数 (ndis.h)

NdisClOpenAddressFamilyEx 函数注册与面向连接的客户端的调用管理器关联的地址系列 (AF) 。

语法

NDIS_STATUS NdisClOpenAddressFamilyEx(
  [in]  NDIS_HANDLE        NdisBindingHandle,
  [in]  PCO_ADDRESS_FAMILY AddressFamily,
  [in]  NDIS_HANDLE        ClientAfContext,
  [out] PNDIS_HANDLE       NdisAfHandle
);

参数

[in] NdisBindingHandle

NdisOpenAdapterEx 返回的句柄,用于标识目标网络接口卡 (NIC) 或调用方绑定到的下一个较低驱动程序的虚拟适配器。

[in] AddressFamily

指向描述要打开的调用管理器和 AF 的CO_ADDRESS_FAMILY 结构的指针。

此指针是客户端的输入参数 ProtocolCoAfRegisterNotify 函数,它调用 NdisClOpenAddressFamilyEx

[in] ClientAfContext

调用方提供的居民上下文区域的句柄,客户端在打开 AF 后保留此 AF 的状态。 如果调用 NdisClOpenAddressFamilyEx 成功,则 NDIS 会将此句柄传回客户端,以处理此 AF 的所有后续调用。

[out] NdisAfHandle

指向调用方提供的变量的指针 ,其中 NdisClOpenAddressFamilyEx 返回表示新打开的地址系列的句柄。

返回值

当 NdisClOpenAddressFamilyEx 返回除NDIS_STATUS_PENDING以外的任何内容时,客户端应对其进行内部调用 ProtocolClOpenAfCompleteEx 函数。 否则,NDIS 会在完成此操作时调用客户端的 ProtocolClOpenAfCompleteEx 函数。

注解

CoNDIS 客户端从其调用 NdisClOpenAddressFamilyEx ProtocolCoAfRegisterNotify 函数在客户端检查 AddressFamily 参数指向的输入缓冲区以确定客户端是否识别调用管理器和已注册的地址之后。 NDIS 将客户端对 NdisClOpenAddressFamilyEx 的调用转发到调用管理器的 ProtocolCmOpenAf 函数,这可确保客户端已传入有效的 AF 结构。

成功调用 NdisClOpenAddressFamilyEx 可设置从客户端到调用管理器的通信。 然后,客户端可以通过调用 NdisClRegisterSap 函数来准备接收传入调用。 客户端还可以通过调用 NdisCoCreateVc 函数来设置虚拟连接 (VC) ,以便它可以通过调用 NdisClMakeCall 函数进行传出调用。

如果客户端调用 NdisClOpenAddressFamilyEx 失败,客户端应调用 NdisUnbindAdapter 函数以请求 NDIS 将其绑定释放到基础微型端口适配器。 否则,客户端必须保存在 NdisAfHandle 参数处返回的句柄。 此句柄标识调用管理器,这些调用管理器随后针对给定地址系列的请求将定向到该管理器。 客户端必须将返回的句柄视为不透明变量,并在后续 NdisXxx 函数调用中传递该句柄未修改且未解释。

NDIS 将来自 ClientAfContext 参数的指针传递给客户端注册的 ProtocolClXxx 函数,这些函数涉及 AF 的所有后续调用,直到客户端使用相同的 NdisAfHandle 调用 NdisCloseAddressFamily。 关闭 AF 后,客户端可以释放或重复使用它在 ClientAfContext 上分配的存储。

要求

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

另请参阅

CO_ADDRESS_FAMILY

NdisAllocateFromNPagedLookasideList

NdisClCloseAddressFamily

NdisClMakeCall

NdisClRegisterSap

NdisCoCreateVc

NdisOpenAdapterEx

NdisUnbindAdapter

ProtocolClOpenAfCompleteEx

ProtocolCmOpenAf

ProtocolCoAfRegisterNotify