PROTOCOL_CL_NOTIFY_CLOSE_AF回调函数 (ndis.h)
ProtocolClNotifyCloseAf 函数通知 CoNDIS 客户端,客户端应关闭关联的地址系列 (AF) 。
语法
PROTOCOL_CL_NOTIFY_CLOSE_AF ProtocolClNotifyCloseAf;
NDIS_STATUS ProtocolClNotifyCloseAf(
[in] NDIS_HANDLE ClientAfContext
)
{...}
参数
[in] ClientAfContext
关联 AF 的上下文区域的客户端提供的句柄。 客户端分配了此上下文区域,并在调用 时将此句柄传递给 NDIS NdisClOpenAddressFamilyEx 函数。
返回值
ProtocolClNotifyCloseAf 可以返回下列值之一:
返回代码 | 说明 |
---|---|
|
客户端已成功关闭地址系列。 |
|
客户端正在异步处理此请求,并将调用关闭操作完成后,NdisClNotifyCloseAddressFamilyComplete 函数。 |
|
客户端由于某些驱动程序确定的原因使请求失败。 |
注解
TheCoNDIS 客户端需要 ProtocolClNotifyCloseAf 函数。 当调用管理器通知 NDIS 地址系列 (AF) ProtocolAfContext 参数指定的应关闭时,NDIS 调用 ProtocolClNotifyCloseAf。 作为响应,客户端应:
- 根据需要多次调用 NdisClDropParty 函数,直到只有一方在 VC) 的每个多点虚拟连接 (保持活动状态(如果客户端具有任何活动的多点连接)。
- 根据需要多次调用 NdisClClCloseCall 函数,以关闭所有仍处于打开状态且与 AF 关联的调用。
- 根据需要多次调用 NdisClDeregisterSap 函数,以取消注册客户端已注册到调用管理器 (SAP) 的所有服务接入点。
- 调用 NdisClCloseAddressFamily 函数用于关闭 AF。
NDIS 在 IRQL <= DISPATCH_LEVEL 调用 ProtocolClNotifyCloseAf。
当 AF 处于打开状态或 时,客户端可以使用 NdisAfHandle ProtocolClNotifyCloseAf 操作处于挂起状态。 如果你的设备不支持 ProtocolClNotifyCloseAf 函数返回NDIS_STATUS_PENDING,请在 中使用 句柄关闭操作完成后,NdisClNotifyCloseAddressFamilyComplete 调用。
示例
若要定义 ProtocolClNotifyCloseAf 函数,必须先提供用于标识要定义的函数类型的函数声明。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析、 静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。例如,若要定义名为“ MyClNotifyCloseAf ”的 ProtocolClNotifyCloseAf 函数,请使用 PROTOCOL_CL_NOTIFY_CLOSE_AF 类型,如以下代码示例所示:
PROTOCOL_CL_NOTIFY_CLOSE_AF MyClNotifyCloseAf;
然后,按如下所示实现函数:
_Use_decl_annotations_
NDIS_STATUS
MyClNotifyCloseAf(
NDIS_HANDLE ProtocolAfContext
)
{...}
PROTOCOL_CL_NOTIFY_CLOSE_AF函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations批注可确保使用应用于头文件中PROTOCOL_CL_NOTIFY_CLOSE_AF函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | Windows |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |