MINIPORT_CO_DEACTIVATE_VC回调函数 (ndis.h)

MiniportCoDeactivateVc 函数是面向连接的微型端口所必需的。 MiniportCoDeactivateVc 由 NDIS 调用,以指示 VC 被标记为不可用。

注意 必须使用 MINIPORT_CO_DEACTIVATE_VC 类型声明函数。 有关详细信息,请参阅以下示例部分。
 

语法

MINIPORT_CO_DEACTIVATE_VC MiniportCoDeactivateVc;

NDIS_STATUS MiniportCoDeactivateVc(
  [in] NDIS_HANDLE MiniportVcContext
)
{...}

参数

[in] MiniportVcContext

指定微型端口驱动程序分配的上下文区域的句柄,微型端口驱动程序在其中维护每个 VC 的状态信息。 微型端口驱动程序从其 MiniportCoCreateVc 函数向 NDIS 提供此句柄。

返回值

返回代码 说明
NDIS_STATUS_SUCCESS
指示微型端口驱动程序已成功停止跨 VC 的任何通信,并将其标记为不可用。
NDIS_STATUS_PENDING
指示微型端口驱动程序将完成异步停止 VC 的请求。 微型端口驱动程序完成停止 VC 后,它必须调用 NdisMCoDeactivateVcComplete 向 NDIS 表示此操作已完成。

注解

MiniportCoDeactivateVc 与其网络适配器通信以终止此 VC (的所有通信,换句话说,即取消编程适配器上的接收或发送缓冲区) 。 微型端口驱动程序还应将 VC(其上下文区域)标记为非活动状态,以防止在 VC 之间进一步通信。

调用 MiniportCoActivateVc 和 MiniportCoDeactivateVc 之间没有一对一的关系。 虽然 NDIS 可能会在单个 VC 上多次调用 MiniportCoActivateVc ,但只有一次对 MiniportCoDeactivateVc 的调用会关闭虚拟连接。 例如,可将 VC 重复使用用于可能导致对 MiniportCoActivateVc 进行多次调用的不同调用。

示例

若要定义 MiniportCoDeactivateVc 函数,必须先提供一个函数声明,用于标识要定义的函数类型。 Windows 为驱动程序提供了一组函数类型。 使用函数类型声明函数可帮助 驱动程序的代码分析静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是为 Windows 操作系统编写驱动程序的要求。

例如,若要定义名为“ MyCoDeactivateVc ”的 MiniportCoDeactivateVc 函数,请使用 MINIPORT_CO_DEACTIVATE_VC 类型,如以下代码示例所示:

MINIPORT_CO_DEACTIVATE_VC MyCoDeactivateVc;

然后,按如下所示实现函数:

_Use_decl_annotations_
NDIS_STATUS
 MyCoDeactivateVc(
    NDIS_HANDLE  MiniportVcContext
    )
  {...}

MINIPORT_CO_DEACTIVATE_VC函数类型在 Ndis.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 Use_decl_annotations 注释添加到函数定义。 Use_decl_annotations注释可确保使用应用于头文件中MINIPORT_CO_DEACTIVATE_VC函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 NDIS 驱动程序的函数角色类型声明函数

有关 Use_decl_annotations的信息,请参阅 批注函数行为

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 MiniportCoDeactivateVc (NDIS 5.1) ) 。 支持 NDIS 5.1 驱动程序 (请参阅 Windows XP 中的 MiniportCoDeactivateVc (NDIS 5.1) ) 。
目标平台 Windows
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

MiniportCoActivateVc

NdisMCoDeactivateVcComplete