PROTOCOL_CM_CLOSE_AF回调函数 (ndis.h)
ProtocolCmCloseAf 函数是一个必需的函数,用于为呼叫管理器支持的地址系列发布按打开的资源。
语法
PROTOCOL_CM_CLOSE_AF ProtocolCmCloseAf;
NDIS_STATUS ProtocolCmCloseAf(
[in] NDIS_HANDLE CallMgrAfContext
)
{...}
参数
[in] CallMgrAfContext
指定调用管理器的每个 AF 上下文区域的句柄,最初由调用管理器 的 protocolCmOpenAf 函数提供给 NDIS。
返回值
ProtocolCmCloseAf 返回其作的状态,如下所示之一:
返回代码 | 描述 |
---|---|
|
指示调用管理器已成功释放或停用代表打开此地址系列实例的连接型客户端分配的任何资源。 |
|
指示关闭地址系列打开实例的请求将以异步方式完成。 呼叫管理器必须呼叫 完成所有此类作时,NdisCmCloseAddressFamilyComplete。 |
言论
ProtocolCmCloseAf 发布和/或停用调用管理器在其 ProtocolCmOpenAf 函数中分配的任何资源。 当地址系列由该客户端打开时,调用管理器还应撤消它代表连接型客户端执行的任何其他作。
如果 CallMgrAfContext中存储的地址系列上仍有未完成的请求或连接,则呼叫管理器可以通过以下任一方式响应客户端的请求以关闭地址系列:
- 调用管理器可以使用NDIS_STATUS_NOT_ACCEPTED来失败请求。
- 呼叫管理器可以返回NDIS_STATUS_PENDING。 在客户端关闭所有调用并取消注册所有 SA 后,呼叫管理器可以关闭地址系列并调用 NdisCmCloseAddressFamilyComplete 或 NdisMCmCloseAddressFamilyComplete 通知客户端。 这是首选响应。
示例
若要定义 ProtocolCmCloseAf 函数,必须先提供一个函数声明来标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数有助于 驱动程序代码分析、静态驱动程序验证程序(SDV)和其他验证工具查找错误,这是为 Windows作系统编写驱动程序的要求。例如,若要定义名为“MyCmCloseAf”的 ProtocolCmCloseAf 函数,请使用 PROTOCOL_CM_CLOSE_AF 类型,如以下代码示例所示:
PROTOCOL_CM_CLOSE_AF MyCmCloseAf;
然后,按如下所示实现函数:
_Use_decl_annotations_
NDIS_STATUS
MyCmCloseAf(
NDIS_HANDLE CallMgrAfContext
)
{...}
PROTOCOL_CM_CLOSE_AF 函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations 批注可确保使用应用于头文件中 PROTOCOL_CM_CLOSE_AF 函数类型的批注。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数。
有关 Use_decl_annotations的信息,请参阅 批注函数行为。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 ProtocolCmCloseAf (NDIS 5.1) 。 在 Windows XP 中支持 NDIS 5.1 驱动程序(请参阅 ProtocolCmCloseAf (NDIS 5.1)。 |
目标平台 | 窗户 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |