windows-nt/Source/XPSP1/NT/ds/security/gina/msgina/wlsec.h
2020-09-26 16:20:57 +08:00

157 lines
2.7 KiB
C

/****************************** Module Header ******************************\
* Module Name: security.h
*
* Copyright (c) 1991, Microsoft Corporation
*
* Define various winlogon security-related routines
*
* History:
* 12-09-91 Davidc Created.
\***************************************************************************/
extern PSID gLocalSid; // Initialized in 'InitializeSecurityGlobals'
extern PSID gAdminSid; // Initialized in 'InitializeSecurityGlobals'
extern PSID pWinlogonSid; // Initialized in 'InitializeSecurityGlobals'
PVOID
FormatPasswordCredentials(
IN PUNICODE_STRING UserName,
IN PUNICODE_STRING Domain,
IN PUNICODE_STRING Password,
IN BOOLEAN Unlock,
IN OPTIONAL PLUID LogonId,
OUT PULONG Size
);
PVOID
FormatSmartCardCredentials(
IN PUNICODE_STRING Pin,
IN PVOID SmartCardInfo,
IN BOOLEAN Unlock,
IN OPTIONAL PLUID LogonId,
OUT PULONG Size
);
NTSTATUS
WinLogonUser(
IN HANDLE LsaHandle,
IN ULONG AuthenticationPackage,
IN SECURITY_LOGON_TYPE LogonType,
IN PVOID AuthInfo,
IN ULONG AuthInfoSize,
IN PSID LogonSid,
OUT PLUID LogonId,
OUT PHANDLE LogonToken,
OUT PQUOTA_LIMITS Quotas,
OUT PVOID *ProfileBuffer,
OUT PULONG ProfileBufferLength,
OUT PNTSTATUS SubStatus,
OUT POPTIMIZED_LOGON_STATUS OptimizedLogonStatus
);
BOOL
UnlockLogon(
PGLOBALS pGlobals,
IN BOOL SmartCardUnlock,
IN PWCHAR UserName,
IN PWCHAR Domain,
IN PUNICODE_STRING PasswordString,
OUT PNTSTATUS Status,
OUT PBOOL IsAdmin,
OUT PBOOL IsLoggedOnUser,
OUT PVOID *pProfileBuffer,
OUT ULONG *pProfileBufferLength
);
BOOL
EnablePrivilege(
ULONG Privilege,
BOOL Enable
);
BOOL
TestTokenForAdmin(
HANDLE Token
);
BOOL
TestUserForAdmin(
PGLOBALS pGlobals,
IN PWCHAR UserName,
IN PWCHAR Domain,
IN PUNICODE_STRING PasswordString
);
BOOL
TestUserPrivilege(
HANDLE UserToken,
ULONG Privilege
);
VOID
HidePassword(
PUCHAR Seed OPTIONAL,
PUNICODE_STRING Password
);
VOID
RevealPassword(
PUNICODE_STRING HiddenPassword
);
VOID
ErasePassword(
PUNICODE_STRING Password
);
BOOL
InitializeAuthentication(
IN PGLOBALS pGlobals
);
HANDLE
ImpersonateUser(
PUSER_PROCESS_DATA UserProcessData,
HANDLE ThreadHandle
);
BOOL
StopImpersonating(
HANDLE ThreadHandle
);
PSECURITY_DESCRIPTOR
CreateUserThreadTokenSD(
PSID UserSid,
PSID WinlogonSid
);
VOID
FreeSecurityDescriptor(
PSECURITY_DESCRIPTOR SecurityDescriptor
);
VOID
InitializeSecurityGlobals(
VOID
);
VOID
FreeSecurityGlobals(
VOID
);
VOID
HashPassword(
PUNICODE_STRING Password,
PUCHAR HashBuffer
);