uLib  User mode C/C++ extended API library for Win32 programmers.
Account Object APIs

Module Description

Local Security Policy Account Object functions.

Groups

 Account Object Type Specific Access
 

Functions

_LSAFN_EXTERN NTSTATUS _LsaOpenAccount (IN LSA_HANDLE PolicyHandle, IN PSID AccountSid, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE AccountHandle)
 
_LSAFN_EXTERN NTSTATUS _LsaCreateAccount (IN LSA_HANDLE PolicyHandle, IN PSID AccountSid, IN ACCESS_MASK DesiredAccess, OUT PLSA_HANDLE AccountHandle)
 
_LSAFN_EXTERN NTSTATUS _LsaEnumerateAccounts (IN LSA_HANDLE PolicyHandle, INOUT PLSA_ENUMERATION_HANDLE EnumerationContext, OUT PVOID *Buffer, IN ULONG PreferedMaximumLength, OUT PULONG CountReturned)
 
_LSAFN_EXTERN NTSTATUS _LsaGetSystemAccessAccount (IN LSA_HANDLE AccountHandle, OUT PULONG SystemAccess)
 
_LSAFN_EXTERN NTSTATUS _LsaSetSystemAccessAccount (IN LSA_HANDLE AccountHandle, IN ULONG SystemAccess)
 
_LSAFN_EXTERN NTSTATUS _LsaEnumeratePrivilegesOfAccount (IN LSA_HANDLE AccountHandle, OUT PPRIVILEGE_SET *Privileges)
 
_LSAFN_EXTERN NTSTATUS _LsaAddPrivilegesToAccount (IN LSA_HANDLE AccountHandle, IN PPRIVILEGE_SET Privileges)
 
_LSAFN_EXTERN NTSTATUS _LsaRemovePrivilegesFromAccount (IN LSA_HANDLE AccountHandle, IN BOOLEAN AllPrivileges, OPTIN PPRIVILEGE_SET Privileges)
 
_LSAFN_EXTERN NTSTATUS _LsaGetQuotasForAccount (IN LSA_HANDLE AccountHandle, OUT PQUOTA_LIMITS QuotaLimits)
 
_LSAFN_EXTERN NTSTATUS _LsaSetQuotasForAccount (IN LSA_HANDLE AccountHandle, IN PQUOTA_LIMITS QuotaLimits)
 

Function Documentation

◆ _LsaOpenAccount()

_LSAFN_EXTERN NTSTATUS _LsaOpenAccount ( IN LSA_HANDLE  PolicyHandle,
IN PSID  AccountSid,
IN ACCESS_MASK  DesiredAccess,
OUT PLSA_HANDLE  AccountHandle 
)

◆ _LsaCreateAccount()

_LSAFN_EXTERN NTSTATUS _LsaCreateAccount ( IN LSA_HANDLE  PolicyHandle,
IN PSID  AccountSid,
IN ACCESS_MASK  DesiredAccess,
OUT PLSA_HANDLE  AccountHandle 
)

◆ _LsaEnumerateAccounts()

_LSAFN_EXTERN NTSTATUS _LsaEnumerateAccounts ( IN LSA_HANDLE  PolicyHandle,
INOUT PLSA_ENUMERATION_HANDLE  EnumerationContext,
OUT PVOID *  Buffer,
IN ULONG  PreferedMaximumLength,
OUT PULONG  CountReturned 
)

LsaEnumerateAccounts enumerates accounts in the given Policy.

Parameters
PolicyHandleHandle from OpenLsaPolicy() (or LsaOpenPolicy).
EnumerationContextContext id to use for continued enum (not really a handle).
BufferReturns a PLSA_ENUMERATION_INFORMATION array.
PreferedMaximumLengthMax size of returned info block.
CountReturnedNr of SIDs that fit in the info block size.
Returns
STATUS_SUCCESS if any data was returned, else an NT error code.

Keep enumerating until you get STATUS_NO_MORE_ENTRIES.
Note: Some returned SIDs may not have mapped names.
Use LsaFreeMemory() to free the Buffer when done.

◆ _LsaGetSystemAccessAccount()

_LSAFN_EXTERN NTSTATUS _LsaGetSystemAccessAccount ( IN LSA_HANDLE  AccountHandle,
OUT PULONG  SystemAccess 
)

◆ _LsaSetSystemAccessAccount()

_LSAFN_EXTERN NTSTATUS _LsaSetSystemAccessAccount ( IN LSA_HANDLE  AccountHandle,
IN ULONG  SystemAccess 
)

◆ _LsaEnumeratePrivilegesOfAccount()

_LSAFN_EXTERN NTSTATUS _LsaEnumeratePrivilegesOfAccount ( IN LSA_HANDLE  AccountHandle,
OUT PPRIVILEGE_SET *  Privileges 
)

◆ _LsaAddPrivilegesToAccount()

_LSAFN_EXTERN NTSTATUS _LsaAddPrivilegesToAccount ( IN LSA_HANDLE  AccountHandle,
IN PPRIVILEGE_SET  Privileges 
)

◆ _LsaRemovePrivilegesFromAccount()

_LSAFN_EXTERN NTSTATUS _LsaRemovePrivilegesFromAccount ( IN LSA_HANDLE  AccountHandle,
IN BOOLEAN  AllPrivileges,
OPTIN PPRIVILEGE_SET  Privileges 
)

◆ _LsaGetQuotasForAccount()

_LSAFN_EXTERN NTSTATUS _LsaGetQuotasForAccount ( IN LSA_HANDLE  AccountHandle,
OUT PQUOTA_LIMITS  QuotaLimits 
)

◆ _LsaSetQuotasForAccount()

_LSAFN_EXTERN NTSTATUS _LsaSetQuotasForAccount ( IN LSA_HANDLE  AccountHandle,
IN PQUOTA_LIMITS  QuotaLimits 
)