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 函数调用中传递它未修改和未解释。
在涉及 AF 的所有后续调用中,NDIS 将客户端AfContext 参数中的指针传递到客户端注册的 ProtocolClXxx 函数,直到客户端使用同一 NdisAfHandle 调用 NdisClCloseAddressFamily。 关闭 AF 后,客户端可以释放或重复使用它在 ClientAfContext 上分配的存储。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | Irql_Protocol_Driver_Function (ndis) |