PROTOCOL_CL_DEREGISTER_SAP_COMPLETE回调函数 (ndis.h)

面向连接的 NDIS 客户端使用 ProtocolClDeregisterSapComplete 函数。 接受传入调用的连接型 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 的 NdisSapHandle,客户端存储在其 ProtocolSapContext 区域中的 SAP 现在无效。

NDIS_STATUS_FAILURE

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

NDIS_STATUS_XXX

由于某些 CM 确定的原因,调用管理器未能关闭 SAP 的请求,NDIS 传播了其返回的状态向客户端 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)。
目标平台 窗户
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap