PROTOCOL_CL_DEREGISTER_SAP_COMPLETE回调函数 (ndis.h)

面向连接的 NDIS 客户端使用 ProtocolClDeregisterSSComplete 函数。 接受传入调用的面向连接的 NDIS 客户端必须具有 ProtocolClDeregisterSapComplete 函数,以完成它们使用 NdisClDeregisterSap 启动的异步操作。 否则,此类协议驱动程序的已注册 ProtocolClDeregisterSapComplete 函数只需返回控制权。

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

语法

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

参数

[in] Status

指定客户端取消注册其 SAP 的请求的最终状态,可以是下列状态之一:

NDIS_STATUS_SUCCESS

SAP 已关闭。 表示客户端以前注册的 SAP(客户端存储在其 ProtocolSapContext 区域中)的 NdisSapHandle 现在无效。

NDIS_STATUS_FAILURE

NDIS 已将 AF 的状态标记为“正在关闭”,因此在客户端调用 时,已释放由 NdisSapHandle 表示的关联 SAP 发生 NdisClDeregisterSap

NDIS_STATUS_XXX

由于某种 CM 确定的原因,调用管理器关闭 SAP 的请求失败,NDIS 传播了其返回的状态 Client 的 ProtocolCmDeregisterSap 函数。

[in] ProtocolSapContext

指定客户端提供给其每个 SAP 上下文区域的句柄,该句柄最初通过 NdisClRegisterSap 传递给 NDIS。 在调用管理器成功取消注册此 SAP 后,客户端可以释放其上下文区域或准备此上下文区域以供重复使用。

返回值

备注

调用 ProtocolClDeregisterSapComplete 指示客户端先前对 NdisClDeregisterSap 的调用已由调用管理器处理。

除非调用管理器因某种 CM 确定的原因而取消注册失败,否则在调用 ProtocolClDeregisterSapComplete 时,客户端应将 NdisSapHandle 视为无效。 因此, ProtocolClDeregisterSapComplete 可以释放客户端分配的每个 SAP 上下文区域,或准备在后续调用 NdisClRegisterSap 时重复使用。

示例

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

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

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

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

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

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

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

要求

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

另请参阅

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap