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 代码。 下面是可能的错误代码。
返回代码 | 说明 |
---|---|
|
调用方没有调用此函数所需的 SeTcbPrivilege 特权。
可以通过调用 LsaAddAccountRights 来设置此权限。 |
|
指定的登录进程名称超过 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 |