LSA_DELETE_LOGON_SESSION回调函数 (ntsecpkg.h)

清理在确定用户的身份验证信息是否合法时创建的任何登录会话。

如果身份验证失败,身份验证包应删除所有相关登录会话。

语法

LSA_DELETE_LOGON_SESSION LsaDeleteLogonSession;

NTSTATUS LsaDeleteLogonSession(
  [in] PLUID LogonId
)
{...}

参数

[in] LogonId

指向包含要删除的登录会话的会话 ID 的 LUID 结构的指针。

返回值

如果函数成功,则返回值STATUS_SUCCESS。

如果函数失败,则返回值是 NTSTATUS 代码,可以是以下值之一或 LSA 策略函数返回值之一。

返回代码 说明
STATUS_BAD_LOGON_SESSION_STATE
指定的登录会话具有一个引用计数值,可阻止删除它。 这是一个严重的问题,因为操作系统和身份验证包都认为它们有权管理登录会话。
STATUS_NO_SUCH_LOGON_SESSION
找不到指定的登录会话。
 

LsaNtStatusToWinError 函数将 NTSTATUS 代码转换为 Windows 错误代码。

注解

由于登录会话会占用内核中的内存,因此应删除任何未使用或丢弃的登录会话。 但是,在会话的登录 ID 返回到 LSA 后,不应删除登录会话。 例如,在为 LSA 提供登录 ID (之后,由于 LsaApLogonUser 调用) ,LSA 假定它负责登录会话,并在操作系统不再需要登录会话时将其删除。 此时,LSA 调用 LsaApLogonTerminated 以通知身份验证包会话已被删除。

相比之下,使用 DeleteLogonSession 删除登录会话时,不会通知身份验证包。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 ntsecpkg.h

另请参阅

CreateLogonSession

LSA_DISPATCH_TABLE

LSA_SECPKG_FUNCTION_TABLE