mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
* completed ntsam.h
* re-organized ntlsa.h git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3419 21ef857c-d57f-4fe0-8362-d861dc6d29cd
This commit is contained in:
+200
-109
@@ -1,9 +1,103 @@
|
||||
#ifndef NTLSA_H
|
||||
#define NTLSA_H
|
||||
|
||||
#define _NTDEF_
|
||||
// This header file provides access to the complete LSA API.
|
||||
// (The rest is provided by ntsecapi.h)
|
||||
|
||||
#define _NTDEF_ // ntbasic already defines these things
|
||||
#include <ntsecapi.h>
|
||||
|
||||
// Basic
|
||||
|
||||
NTSTATUS NTAPI LsaDelete(
|
||||
__in LSA_HANDLE ObjectHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaQuerySecurityObject(
|
||||
__in LSA_HANDLE ObjectHandle,
|
||||
__in SECURITY_INFORMATION SecurityInformation,
|
||||
__out PSECURITY_DESCRIPTOR *SecurityDescriptor
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetSecurityObject(
|
||||
__in LSA_HANDLE ObjectHandle,
|
||||
__in SECURITY_INFORMATION SecurityInformation,
|
||||
__in PSECURITY_DESCRIPTOR SecurityDescriptor
|
||||
);
|
||||
|
||||
// System access
|
||||
|
||||
#define SECURITY_ACCESS_INTERACTIVE_LOGON ((ULONG)0x00000001L)
|
||||
#define SECURITY_ACCESS_NETWORK_LOGON ((ULONG)0x00000002L)
|
||||
#define SECURITY_ACCESS_BATCH_LOGON ((ULONG)0x00000004L)
|
||||
#define SECURITY_ACCESS_SERVICE_LOGON ((ULONG)0x00000010L)
|
||||
#define SECURITY_ACCESS_PROXY_LOGON ((ULONG)0x00000020L)
|
||||
#define SECURITY_ACCESS_DENY_INTERACTIVE_LOGON ((ULONG)0x00000040L)
|
||||
#define SECURITY_ACCESS_DENY_NETWORK_LOGON ((ULONG)0x00000080L)
|
||||
#define SECURITY_ACCESS_DENY_BATCH_LOGON ((ULONG)0x00000100L)
|
||||
#define SECURITY_ACCESS_DENY_SERVICE_LOGON ((ULONG)0x00000200L)
|
||||
#define SECURITY_ACCESS_REMOTE_INTERACTIVE_LOGON ((ULONG)0x00000400L)
|
||||
#define SECURITY_ACCESS_DENY_REMOTE_INTERACTIVE_LOGON ((ULONG)0x00000800L)
|
||||
|
||||
// Policy
|
||||
|
||||
typedef ULONG POLICY_SYSTEM_ACCESS_MODE, *PPOLICY_SYSTEM_ACCESS_MODE;
|
||||
|
||||
#define POLICY_MODE_INTERACTIVE SECURITY_ACCESS_INTERACTIVE_LOGON
|
||||
#define POLICY_MODE_NETWORK SECURITY_ACCESS_NETWORK_LOGON
|
||||
#define POLICY_MODE_BATCH SECURITY_ACCESS_BATCH_LOGON
|
||||
#define POLICY_MODE_SERVICE SECURITY_ACCESS_SERVICE_LOGON
|
||||
#define POLICY_MODE_PROXY SECURITY_ACCESS_PROXY_LOGON
|
||||
#define POLICY_MODE_DENY_INTERACTIVE SECURITY_ACCESS_DENY_INTERACTIVE_LOGON
|
||||
#define POLICY_MODE_DENY_NETWORK SECURITY_ACCESS_DENY_NETWORK_LOGON
|
||||
#define POLICY_MODE_DENY_BATCH SECURITY_ACCESS_DENY_BATCH_LOGON
|
||||
#define POLICY_MODE_DENY_SERVICE SECURITY_ACCESS_DENY_SERVICE_LOGON
|
||||
#define POLICY_MODE_REMOTE_INTERACTIVE SECURITY_ACCESS_REMOTE_INTERACTIVE_LOGON
|
||||
#define POLICY_MODE_DENY_REMOTE_INTERACTIVE SECURITY_ACCESS_DENY_REMOTE_INTERACTIVE_LOGON
|
||||
|
||||
#define POLICY_MODE_ALL ( \
|
||||
POLICY_MODE_INTERACTIVE | \
|
||||
POLICY_MODE_NETWORK | \
|
||||
POLICY_MODE_BATCH | \
|
||||
POLICY_MODE_SERVICE | \
|
||||
POLICY_MODE_PROXY | \
|
||||
POLICY_MODE_DENY_INTERACTIVE | \
|
||||
POLICY_MODE_DENY_NETWORK | \
|
||||
SECURITY_ACCESS_DENY_BATCH_LOGON | \
|
||||
SECURITY_ACCESS_DENY_SERVICE_LOGON | \
|
||||
POLICY_MODE_REMOTE_INTERACTIVE | \
|
||||
POLICY_MODE_DENY_REMOTE_INTERACTIVE \
|
||||
)
|
||||
|
||||
typedef struct _POLICY_PRIVILEGE_DEFINITION
|
||||
{
|
||||
LSA_UNICODE_STRING Name;
|
||||
LUID LocalValue;
|
||||
} POLICY_PRIVILEGE_DEFINITION, *PPOLICY_PRIVILEGE_DEFINITION;
|
||||
|
||||
NTSTATUS NTAPI LsaOpenPolicySce(
|
||||
__in_opt PLSA_UNICODE_STRING SystemName,
|
||||
__in PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE PolicyHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaClearAuditLog(
|
||||
__in LSA_HANDLE PolicyHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumeratePrivileges(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__inout PLSA_ENUMERATION_HANDLE EnumerationContext,
|
||||
__out PVOID *Buffer, // PPOLICY_PRIVILEGE_DEFINITION *Buffer
|
||||
__in ULONG PreferedMaximumLength,
|
||||
__out PULONG CountReturned
|
||||
);
|
||||
|
||||
#define LSA_LOOKUP_ISOLATED_AS_LOCAL 0x80000000
|
||||
|
||||
// Account
|
||||
|
||||
#define ACCOUNT_VIEW 0x00000001
|
||||
#define ACCOUNT_ADJUST_PRIVILEGES 0x00000002
|
||||
#define ACCOUNT_ADJUST_QUOTAS 0x00000004
|
||||
@@ -20,6 +114,66 @@
|
||||
ACCOUNT_ADJUST_SYSTEM_ACCESS)
|
||||
#define ACCOUNT_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
NTSTATUS NTAPI LsaCreateAccount(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PSID AccountSid,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE AccountHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaOpenAccount(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PSID AccountSid,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE AccountHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumerateAccounts(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__inout PLSA_ENUMERATION_HANDLE EnumerationContext,
|
||||
__out PVOID *Buffer, // PSID **Buffer
|
||||
__in ULONG PreferedMaximumLength,
|
||||
__out PULONG CountReturned
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaAddPrivilegesToAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in PPRIVILEGE_SET Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaRemovePrivilegesFromAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in BOOLEAN AllPrivileges,
|
||||
__in_opt PPRIVILEGE_SET Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumeratePrivilegesOfAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PPRIVILEGE_SET *Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaGetQuotasForAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PQUOTA_LIMITS QuotaLimits
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetQuotasForAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in PQUOTA_LIMITS QuotaLimits
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaGetSystemAccessAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PULONG SystemAccess
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetSystemAccessAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in ULONG SystemAccess
|
||||
);
|
||||
|
||||
// Trusted Domain
|
||||
|
||||
#define TRUSTED_QUERY_DOMAIN_NAME 0x00000001
|
||||
#define TRUSTED_QUERY_CONTROLLERS 0x00000002
|
||||
#define TRUSTED_SET_CONTROLLERS 0x00000004
|
||||
@@ -45,56 +199,6 @@
|
||||
TRUSTED_QUERY_CONTROLLERS | \
|
||||
TRUSTED_QUERY_POSIX)
|
||||
|
||||
#define SECRET_SET_VALUE 0x00000001
|
||||
#define SECRET_QUERY_VALUE 0x00000002
|
||||
#define SECRET_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \
|
||||
SECRET_SET_VALUE | \
|
||||
SECRET_QUERY_VALUE)
|
||||
#define SECRET_READ (STANDARD_RIGHTS_READ | \
|
||||
SECRET_QUERY_VALUE)
|
||||
#define SECRET_WRITE (STANDARD_RIGHTS_WRITE | \
|
||||
SECRET_SET_VALUE)
|
||||
#define SECRET_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
NTSTATUS NTAPI LsaDelete(
|
||||
__in LSA_HANDLE ObjectHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaQuerySecurityObject(
|
||||
__in LSA_HANDLE ObjectHandle,
|
||||
__in SECURITY_INFORMATION SecurityInformation,
|
||||
__out PSECURITY_DESCRIPTOR *SecurityDescriptor
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetSecurityObject(
|
||||
__in LSA_HANDLE ObjectHandle,
|
||||
__in SECURITY_INFORMATION SecurityInformation,
|
||||
__in PSECURITY_DESCRIPTOR SecurityDescriptor
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaChangePassword(
|
||||
__in PLSA_UNICODE_STRING ServerName,
|
||||
__in PLSA_UNICODE_STRING DomainName,
|
||||
__in PLSA_UNICODE_STRING AccountName,
|
||||
__in PLSA_UNICODE_STRING OldPassword,
|
||||
__in PLSA_UNICODE_STRING NewPassword
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaCreateAccount(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PSID AccountSid,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE AccountHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumerateAccounts(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__inout PLSA_ENUMERATION_HANDLE EnumerationContext,
|
||||
__out PVOID *Buffer,
|
||||
__in ULONG PreferedMaximumLength,
|
||||
__out PULONG CountReturned
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaCreateTrustedDomain(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PLSA_TRUST_INFORMATION TrustedDomainInformation,
|
||||
@@ -102,64 +206,6 @@ NTSTATUS NTAPI LsaCreateTrustedDomain(
|
||||
__out PLSA_HANDLE TrustedDomainHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumeratePrivileges(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__inout PLSA_ENUMERATION_HANDLE EnumerationContext,
|
||||
__out PVOID *Buffer,
|
||||
__in ULONG PreferedMaximumLength,
|
||||
__out PULONG CountReturned
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaCreateSecret(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PLSA_UNICODE_STRING SecretName,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE SecretHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaOpenAccount(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PSID AccountSid,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE AccountHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaEnumeratePrivilegesOfAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PPRIVILEGE_SET *Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaAddPrivilegesToAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in PPRIVILEGE_SET Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaRemovePrivilegesFromAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in BOOLEAN AllPrivileges,
|
||||
__in_opt PPRIVILEGE_SET Privileges
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaGetQuotasForAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PQUOTA_LIMITS QuotaLimits
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetQuotasForAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in PQUOTA_LIMITS QuotaLimits
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaGetSystemAccessAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__out PULONG SystemAccess
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaSetSystemAccessAccount(
|
||||
__in LSA_HANDLE AccountHandle,
|
||||
__in ULONG SystemAccess
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaOpenTrustedDomain(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PSID TrustedDomainSid,
|
||||
@@ -179,6 +225,39 @@ NTSTATUS NTAPI LsaSetInformationTrustedDomain(
|
||||
__in PVOID Buffer
|
||||
);
|
||||
|
||||
// Secret
|
||||
|
||||
#define SECRET_SET_VALUE 0x00000001
|
||||
#define SECRET_QUERY_VALUE 0x00000002
|
||||
#define SECRET_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \
|
||||
SECRET_SET_VALUE | \
|
||||
SECRET_QUERY_VALUE)
|
||||
#define SECRET_READ (STANDARD_RIGHTS_READ | \
|
||||
SECRET_QUERY_VALUE)
|
||||
#define SECRET_WRITE (STANDARD_RIGHTS_WRITE | \
|
||||
SECRET_SET_VALUE)
|
||||
#define SECRET_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
#define LSA_GLOBAL_SECRET_PREFIX L"G$"
|
||||
#define LSA_GLOBAL_SECRET_PREFIX_LENGTH 2
|
||||
|
||||
#define LSA_LOCAL_SECRET_PREFIX L"L$"
|
||||
#define LSA_LOCAL_SECRET_PREFIX_LENGTH 2
|
||||
|
||||
#define LSA_MACHINE_SECRET_PREFIX L"M$"
|
||||
#define LSA_MACHINE_SECRET_PREFIX_LENGTH \
|
||||
((sizeof(LSA_MACHINE_SECRET_PREFIX) - sizeof(WCHAR)) / sizeof(WCHAR))
|
||||
|
||||
#define LSA_SECRET_MAXIMUM_COUNT 0x00001000L
|
||||
#define LSA_SECRET_MAXIMUM_LENGTH 0x00000200L
|
||||
|
||||
NTSTATUS NTAPI LsaCreateSecret(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PLSA_UNICODE_STRING SecretName,
|
||||
__in ACCESS_MASK DesiredAccess,
|
||||
__out PLSA_HANDLE SecretHandle
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaOpenSecret(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PLSA_UNICODE_STRING SecretName,
|
||||
@@ -200,6 +279,8 @@ NTSTATUS NTAPI LsaQuerySecret(
|
||||
__out_opt PLARGE_INTEGER OldValueSetTime
|
||||
);
|
||||
|
||||
// Privilege
|
||||
|
||||
NTSTATUS NTAPI LsaLookupPrivilegeValue(
|
||||
__in LSA_HANDLE PolicyHandle,
|
||||
__in PLSA_UNICODE_STRING Name,
|
||||
@@ -219,6 +300,16 @@ NTSTATUS NTAPI LsaLookupPrivilegeDisplayName(
|
||||
__out PSHORT LanguageReturned
|
||||
);
|
||||
|
||||
// Misc.
|
||||
|
||||
NTSTATUS NTAPI LsaChangePassword(
|
||||
__in PLSA_UNICODE_STRING ServerName,
|
||||
__in PLSA_UNICODE_STRING DomainName,
|
||||
__in PLSA_UNICODE_STRING AccountName,
|
||||
__in PLSA_UNICODE_STRING OldPassword,
|
||||
__in PLSA_UNICODE_STRING NewPassword
|
||||
);
|
||||
|
||||
NTSTATUS NTAPI LsaGetUserName(
|
||||
__deref_out PLSA_UNICODE_STRING *UserName,
|
||||
__deref_opt_out PLSA_UNICODE_STRING *DomainName
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -686,6 +686,10 @@
|
||||
RelativePath=".\include\ntrtl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\include\ntsam.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\include\ntseapi.h"
|
||||
>
|
||||
|
||||
Reference in New Issue
Block a user