LsaRegisterLogonProcess 函数 (ntsecapi.h)

LsaRegisterLogonProcess 函数与 LSA 服务器建立连接,并验证调用方是否为登录应用程序。

语法

NTSTATUS LsaRegisterLogonProcess(
  [in]  PLSA_STRING           LogonProcessName,
  [out] PHANDLE               LsaHandle,
  [out] PLSA_OPERATIONAL_MODE SecurityMode
);

参数

[in] LogonProcessName

指向标识登录应用程序的 LSA_STRING 结构的指针。 这应该是适合向管理员显示的可打印名称。 例如,Windows 登录应用程序可能使用名称“User32LogonProcess”。 LSA 在审核期间使用此名称。 LsaRegisterLogonProcess 不检查名称是否已使用。

此字符串不能超过 127 个字节。

[out] LsaHandle

接收将来身份验证函数调用中使用的句柄的指针。

[out] SecurityMode

返回的值没有意义,应忽略。

返回值

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

如果函数失败,则返回值为 NTSTATUS 代码。 下面是可能的错误代码。

返回代码 说明
STATUS_PORT_CONNECTION_REFUSED
调用方没有调用此函数所需的 SeTcbPrivilege 特权。

可以通过调用 LsaAddAccountRights 来设置此权限。

STATUS_NAME_TOO_LONG
指定的登录进程名称超过 127 个字节。
 

有关详细信息,请参阅 LSA 策略函数返回值

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

注解

必须先调用此函数,登录进程才能使用 LSA 提供的任何其他登录身份验证函数。

LsaRegisterLogonProcess 函数通过检查它是否设置了 SeTcbPrivilege 特权来验证执行函数调用的应用程序是否为登录进程。 它还打开应用程序的进程,以便PROCESS_DUP_HANDLE访问,以预期将来的 LSA 身份验证调用。 有关详细信息,请参阅 DuplicateHandle

使用完与 LSA 服务器的连接后,请删除调用方的登录应用程序上下文,并通过调用 LsaDeregisterLogonProcess 函数关闭连接。

要求

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

另请参阅

LsaAddAccountRights

LsaConnectUntrusted

LsaDeregisterLogonProcess