mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[XDK][PSDK][DDK] Share more Se types between winnt and ntifs. Also add missing and improve some existing types and definitions in winnt to match the other.
svn path=/trunk/; revision=68063
This commit is contained in:
parent
071eb9ad40
commit
c88d661b1b
4 changed files with 405 additions and 499 deletions
|
@ -483,9 +483,9 @@ typedef struct _ACCESS_REASONS {
|
|||
ACCESS_REASON Data[32];
|
||||
} ACCESS_REASONS, *PACCESS_REASONS;
|
||||
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
|
||||
typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||
ULONG Size;
|
||||
|
@ -493,7 +493,6 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
|||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
||||
|
||||
|
||||
typedef struct _SE_ACCESS_REQUEST {
|
||||
ULONG Size;
|
||||
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
||||
|
@ -505,87 +504,45 @@ typedef struct _SE_ACCESS_REQUEST {
|
|||
POBJECT_TYPE_LIST ObjectTypeList;
|
||||
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
|
||||
|
||||
typedef struct _SE_ACCESS_REPLY {
|
||||
ULONG Size;
|
||||
ULONG ResultListCount;
|
||||
PACCESS_MASK GrantedAccess;
|
||||
PNTSTATUS AccessStatus;
|
||||
PACCESS_REASONS AccessReason;
|
||||
PPRIVILEGE_SET* Privileges;
|
||||
} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY;
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
|
||||
typedef enum _SE_AUDIT_OPERATION {
|
||||
AuditPrivilegeObject,
|
||||
AuditPrivilegeService,
|
||||
AuditAccessCheck,
|
||||
AuditOpenObject,
|
||||
AuditOpenObjectWithTransaction,
|
||||
AuditCloseObject,
|
||||
AuditDeleteObject,
|
||||
AuditOpenObjectForDelete,
|
||||
AuditOpenObjectForDeleteWithTransaction,
|
||||
AuditCloseNonObject,
|
||||
AuditOpenNonObject,
|
||||
AuditObjectReference,
|
||||
AuditHandleCreation,
|
||||
} SE_AUDIT_OPERATION, *PSE_AUDIT_OPERATION;
|
||||
|
||||
typedef struct _SE_AUDIT_INFO {
|
||||
ULONG Size;
|
||||
AUDIT_EVENT_TYPE AuditType;
|
||||
SE_AUDIT_OPERATION AuditOperation;
|
||||
ULONG AuditFlags;
|
||||
UNICODE_STRING SubsystemName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
UNICODE_STRING ObjectName;
|
||||
PVOID HandleId;
|
||||
GUID* TransactionId;
|
||||
LUID* OperationId;
|
||||
BOOLEAN ObjectCreation;
|
||||
BOOLEAN GenerateOnClose;
|
||||
} SE_AUDIT_INFO, *PSE_AUDIT_INFO;
|
||||
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
|
||||
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT )
|
||||
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\
|
||||
TOKEN_ADJUST_SESSIONID )
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID)
|
||||
#else
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||
#endif
|
||||
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
||||
TOKEN_QUERY)
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ | TOKEN_QUERY)
|
||||
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
typedef enum _TOKEN_TYPE {
|
||||
TokenPrimary = 1,
|
||||
TokenImpersonation
|
||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
||||
} TOKEN_TYPE, *PTOKEN_TYPE;
|
||||
|
||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
TokenUser = 1,
|
||||
|
@ -630,24 +587,24 @@ typedef struct _TOKEN_GROUPS {
|
|||
#else
|
||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||
#endif
|
||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
||||
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
|
||||
|
||||
typedef struct _TOKEN_PRIVILEGES {
|
||||
ULONG PrivilegeCount;
|
||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
||||
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_OWNER {
|
||||
PSID Owner;
|
||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
||||
} TOKEN_OWNER, *PTOKEN_OWNER;
|
||||
|
||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||
PSID PrimaryGroup;
|
||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
||||
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
|
||||
|
||||
typedef struct _TOKEN_DEFAULT_DACL {
|
||||
PACL DefaultDacl;
|
||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
||||
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
|
||||
|
||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||
ULONG SidCount;
|
||||
|
@ -678,25 +635,10 @@ typedef struct _TOKEN_MANDATORY_LABEL {
|
|||
#define TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x1
|
||||
#define TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x2
|
||||
|
||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
||||
ULONG Policy;
|
||||
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
|
||||
|
||||
typedef struct _TOKEN_ACCESS_INFORMATION {
|
||||
PSID_AND_ATTRIBUTES_HASH SidHash;
|
||||
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
|
||||
PTOKEN_PRIVILEGES Privileges;
|
||||
LUID AuthenticationId;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
TOKEN_MANDATORY_POLICY MandatoryPolicy;
|
||||
ULONG Flags;
|
||||
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
|
||||
|
||||
#define POLICY_AUDIT_SUBCATEGORY_COUNT (53)
|
||||
#define POLICY_AUDIT_SUBCATEGORY_COUNT (56)
|
||||
|
||||
typedef struct _TOKEN_AUDIT_POLICY {
|
||||
UCHAR PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
||||
|
@ -707,7 +649,7 @@ typedef struct _TOKEN_AUDIT_POLICY {
|
|||
typedef struct _TOKEN_SOURCE {
|
||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||
LUID SourceIdentifier;
|
||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
||||
} TOKEN_SOURCE, *PTOKEN_SOURCE;
|
||||
|
||||
typedef struct _TOKEN_STATISTICS {
|
||||
LUID TokenId;
|
||||
|
@ -727,7 +669,7 @@ typedef struct _TOKEN_CONTROL {
|
|||
LUID AuthenticationId;
|
||||
LUID ModifiedId;
|
||||
TOKEN_SOURCE TokenSource;
|
||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
||||
} TOKEN_CONTROL, *PTOKEN_CONTROL;
|
||||
|
||||
typedef struct _TOKEN_ORIGIN {
|
||||
LUID OriginatingLogonSession;
|
||||
|
@ -743,6 +685,62 @@ typedef enum _MANDATORY_LEVEL {
|
|||
MandatoryLevelCount
|
||||
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
|
||||
|
||||
|
||||
typedef struct _SE_ACCESS_REPLY {
|
||||
ULONG Size;
|
||||
ULONG ResultListCount;
|
||||
PACCESS_MASK GrantedAccess;
|
||||
PNTSTATUS AccessStatus;
|
||||
PACCESS_REASONS AccessReason;
|
||||
PPRIVILEGE_SET* Privileges;
|
||||
} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY;
|
||||
|
||||
typedef enum _SE_AUDIT_OPERATION {
|
||||
AuditPrivilegeObject,
|
||||
AuditPrivilegeService,
|
||||
AuditAccessCheck,
|
||||
AuditOpenObject,
|
||||
AuditOpenObjectWithTransaction,
|
||||
AuditCloseObject,
|
||||
AuditDeleteObject,
|
||||
AuditOpenObjectForDelete,
|
||||
AuditOpenObjectForDeleteWithTransaction,
|
||||
AuditCloseNonObject,
|
||||
AuditOpenNonObject,
|
||||
AuditObjectReference,
|
||||
AuditHandleCreation,
|
||||
} SE_AUDIT_OPERATION, *PSE_AUDIT_OPERATION;
|
||||
|
||||
typedef struct _SE_AUDIT_INFO {
|
||||
ULONG Size;
|
||||
AUDIT_EVENT_TYPE AuditType;
|
||||
SE_AUDIT_OPERATION AuditOperation;
|
||||
ULONG AuditFlags;
|
||||
UNICODE_STRING SubsystemName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
UNICODE_STRING ObjectName;
|
||||
PVOID HandleId;
|
||||
GUID* TransactionId;
|
||||
LUID* OperationId;
|
||||
BOOLEAN ObjectCreation;
|
||||
BOOLEAN GenerateOnClose;
|
||||
} SE_AUDIT_INFO, *PSE_AUDIT_INFO;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
||||
ULONG Policy;
|
||||
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
|
||||
|
||||
typedef struct _TOKEN_ACCESS_INFORMATION {
|
||||
PSID_AND_ATTRIBUTES_HASH SidHash;
|
||||
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
|
||||
PTOKEN_PRIVILEGES Privileges;
|
||||
LUID AuthenticationId;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
TOKEN_MANDATORY_POLICY MandatoryPolicy;
|
||||
ULONG Flags;
|
||||
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
|
||||
|
||||
#define TOKEN_HAS_TRAVERSE_PRIVILEGE 0x0001
|
||||
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
||||
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
||||
|
|
|
@ -2832,36 +2832,6 @@ _InterlockedBitTestAndComplement64(
|
|||
#define SERVICE_ERROR_SEVERE 2
|
||||
#define SERVICE_ERROR_CRITICAL 3
|
||||
|
||||
/* also in ddk/ntifs.h */
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
#define TOKEN_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT |\
|
||||
TOKEN_ADJUST_SESSIONID)
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
||||
TOKEN_QUERY)
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
#define TOKEN_SOURCE_LENGTH 8
|
||||
/* end ddk/ntifs.h */
|
||||
#define DLL_PROCESS_DETACH 0
|
||||
#define DLL_PROCESS_ATTACH 1
|
||||
#define DLL_THREAD_ATTACH 2
|
||||
|
@ -4635,9 +4605,9 @@ typedef struct _ACCESS_REASONS {
|
|||
ACCESS_REASON Data[32];
|
||||
} ACCESS_REASONS, *PACCESS_REASONS;
|
||||
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
|
||||
typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||
DWORD Size;
|
||||
|
@ -4645,6 +4615,198 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
|||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
||||
|
||||
typedef struct _SE_ACCESS_REQUEST {
|
||||
DWORD Size;
|
||||
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
||||
ACCESS_MASK DesiredAccess;
|
||||
ACCESS_MASK PreviouslyGrantedAccess;
|
||||
PSID PrincipalSelfSid;
|
||||
PGENERIC_MAPPING GenericMapping;
|
||||
DWORD ObjectTypeListCount;
|
||||
POBJECT_TYPE_LIST ObjectTypeList;
|
||||
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
|
||||
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
|
||||
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID)
|
||||
#else
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||
#endif
|
||||
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ | TOKEN_QUERY)
|
||||
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
typedef enum _TOKEN_TYPE {
|
||||
TokenPrimary = 1,
|
||||
TokenImpersonation
|
||||
} TOKEN_TYPE, *PTOKEN_TYPE;
|
||||
|
||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
TokenUser = 1,
|
||||
TokenGroups,
|
||||
TokenPrivileges,
|
||||
TokenOwner,
|
||||
TokenPrimaryGroup,
|
||||
TokenDefaultDacl,
|
||||
TokenSource,
|
||||
TokenType,
|
||||
TokenImpersonationLevel,
|
||||
TokenStatistics,
|
||||
TokenRestrictedSids,
|
||||
TokenSessionId,
|
||||
TokenGroupsAndPrivileges,
|
||||
TokenSessionReference,
|
||||
TokenSandBoxInert,
|
||||
TokenAuditPolicy,
|
||||
TokenOrigin,
|
||||
TokenElevationType,
|
||||
TokenLinkedToken,
|
||||
TokenElevation,
|
||||
TokenHasRestrictions,
|
||||
TokenAccessInformation,
|
||||
TokenVirtualizationAllowed,
|
||||
TokenVirtualizationEnabled,
|
||||
TokenIntegrityLevel,
|
||||
TokenUIAccess,
|
||||
TokenMandatoryPolicy,
|
||||
TokenLogonSid,
|
||||
MaxTokenInfoClass
|
||||
} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _TOKEN_USER {
|
||||
SID_AND_ATTRIBUTES User;
|
||||
} TOKEN_USER, *PTOKEN_USER;
|
||||
|
||||
typedef struct _TOKEN_GROUPS {
|
||||
DWORD GroupCount;
|
||||
#ifdef MIDL_PASS
|
||||
[size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*];
|
||||
#else
|
||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||
#endif
|
||||
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
|
||||
|
||||
typedef struct _TOKEN_PRIVILEGES {
|
||||
DWORD PrivilegeCount;
|
||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_OWNER {
|
||||
PSID Owner;
|
||||
} TOKEN_OWNER, *PTOKEN_OWNER;
|
||||
|
||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||
PSID PrimaryGroup;
|
||||
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
|
||||
|
||||
typedef struct _TOKEN_DEFAULT_DACL {
|
||||
PACL DefaultDacl;
|
||||
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
|
||||
|
||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||
DWORD SidCount;
|
||||
DWORD SidLength;
|
||||
PSID_AND_ATTRIBUTES Sids;
|
||||
DWORD RestrictedSidCount;
|
||||
DWORD RestrictedSidLength;
|
||||
PSID_AND_ATTRIBUTES RestrictedSids;
|
||||
DWORD PrivilegeCount;
|
||||
DWORD PrivilegeLength;
|
||||
PLUID_AND_ATTRIBUTES Privileges;
|
||||
LUID AuthenticationId;
|
||||
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_LINKED_TOKEN {
|
||||
HANDLE LinkedToken;
|
||||
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
|
||||
|
||||
typedef struct _TOKEN_ELEVATION {
|
||||
DWORD TokenIsElevated;
|
||||
} TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_LABEL {
|
||||
SID_AND_ATTRIBUTES Label;
|
||||
} TOKEN_MANDATORY_LABEL, *PTOKEN_MANDATORY_LABEL;
|
||||
|
||||
#define TOKEN_MANDATORY_POLICY_OFF 0x0
|
||||
#define TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x1
|
||||
#define TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x2
|
||||
|
||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||
|
||||
#define POLICY_AUDIT_SUBCATEGORY_COUNT (56)
|
||||
|
||||
typedef struct _TOKEN_AUDIT_POLICY {
|
||||
BYTE PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
||||
} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY;
|
||||
|
||||
#define TOKEN_SOURCE_LENGTH 8
|
||||
|
||||
typedef struct _TOKEN_SOURCE {
|
||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||
LUID SourceIdentifier;
|
||||
} TOKEN_SOURCE, *PTOKEN_SOURCE;
|
||||
|
||||
typedef struct _TOKEN_STATISTICS {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LARGE_INTEGER ExpirationTime;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
DWORD DynamicCharged;
|
||||
DWORD DynamicAvailable;
|
||||
DWORD GroupCount;
|
||||
DWORD PrivilegeCount;
|
||||
LUID ModifiedId;
|
||||
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
||||
|
||||
typedef struct _TOKEN_CONTROL {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LUID ModifiedId;
|
||||
TOKEN_SOURCE TokenSource;
|
||||
} TOKEN_CONTROL, *PTOKEN_CONTROL;
|
||||
|
||||
typedef struct _TOKEN_ORIGIN {
|
||||
LUID OriginatingLogonSession;
|
||||
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
|
||||
|
||||
typedef enum _MANDATORY_LEVEL {
|
||||
MandatoryLevelUntrusted = 0,
|
||||
MandatoryLevelLow,
|
||||
MandatoryLevelMedium,
|
||||
MandatoryLevelHigh,
|
||||
MandatoryLevelSystem,
|
||||
MandatoryLevelSecureProcess,
|
||||
MandatoryLevelCount
|
||||
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
|
||||
|
||||
|
||||
typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
|
||||
ACE_HEADER Header;
|
||||
|
@ -4742,123 +4904,12 @@ typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
|
|||
DWORD SidStart;
|
||||
} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
|
||||
|
||||
typedef struct _TOKEN_SOURCE {
|
||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||
LUID SourceIdentifier;
|
||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
||||
|
||||
typedef struct _TOKEN_CONTROL {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LUID ModifiedId;
|
||||
TOKEN_SOURCE TokenSource;
|
||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
||||
|
||||
typedef struct _TOKEN_DEFAULT_DACL {
|
||||
PACL DefaultDacl;
|
||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
||||
|
||||
typedef struct _TOKEN_GROUPS {
|
||||
DWORD GroupCount;
|
||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
||||
|
||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||
DWORD SidCount;
|
||||
DWORD SidLength;
|
||||
PSID_AND_ATTRIBUTES Sids;
|
||||
DWORD RestrictedSidCount;
|
||||
DWORD RestrictedSidLength;
|
||||
PSID_AND_ATTRIBUTES RestrictedSids;
|
||||
DWORD PrivilegeCount;
|
||||
DWORD PrivilegeLength;
|
||||
PLUID_AND_ATTRIBUTES Privileges;
|
||||
LUID AuthenticationId;
|
||||
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_ORIGIN {
|
||||
LUID OriginatingLogonSession;
|
||||
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
|
||||
|
||||
typedef struct _TOKEN_OWNER {
|
||||
PSID Owner;
|
||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
||||
|
||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||
PSID PrimaryGroup;
|
||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
||||
|
||||
typedef struct _TOKEN_PRIVILEGES {
|
||||
DWORD PrivilegeCount;
|
||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
||||
|
||||
typedef enum tagTOKEN_TYPE {
|
||||
TokenPrimary = 1,
|
||||
TokenImpersonation
|
||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
||||
|
||||
typedef enum _TOKEN_ELEVATION_TYPE {
|
||||
TokenElevationTypeDefault = 1,
|
||||
TokenElevationTypeFull,
|
||||
TokenElevationTypeLimited,
|
||||
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_LABEL {
|
||||
SID_AND_ATTRIBUTES Label;
|
||||
} TOKEN_MANDATORY_LABEL, * PTOKEN_MANDATORY_LABEL;
|
||||
|
||||
#include <pshpack4.h>
|
||||
typedef struct _TOKEN_STATISTICS {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LARGE_INTEGER ExpirationTime;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
DWORD DynamicCharged;
|
||||
DWORD DynamicAvailable;
|
||||
DWORD GroupCount;
|
||||
DWORD PrivilegeCount;
|
||||
LUID ModifiedId;
|
||||
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
||||
#include <poppack.h>
|
||||
|
||||
typedef struct _TOKEN_USER {
|
||||
SID_AND_ATTRIBUTES User;
|
||||
} TOKEN_USER, *PTOKEN_USER;
|
||||
|
||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
TokenUser = 1,
|
||||
TokenGroups,
|
||||
TokenPrivileges,
|
||||
TokenOwner,
|
||||
TokenPrimaryGroup,
|
||||
TokenDefaultDacl,
|
||||
TokenSource,
|
||||
TokenType,
|
||||
TokenImpersonationLevel,
|
||||
TokenStatistics,
|
||||
TokenRestrictedSids,
|
||||
TokenSessionId,
|
||||
TokenGroupsAndPrivileges,
|
||||
TokenSessionReference,
|
||||
TokenSandBoxInert,
|
||||
TokenAuditPolicy,
|
||||
TokenOrigin,
|
||||
TokenElevationType,
|
||||
TokenLinkedToken,
|
||||
TokenElevation,
|
||||
TokenHasRestrictions,
|
||||
TokenAccessInformation,
|
||||
TokenVirtualizationAllowed,
|
||||
TokenVirtualizationEnabled,
|
||||
TokenIntegrityLevel,
|
||||
TokenUIAccess,
|
||||
TokenMandatoryPolicy,
|
||||
TokenLogonSid,
|
||||
MaxTokenInfoClass
|
||||
} TOKEN_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _QUOTA_LIMITS {
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
|
|
|
@ -822,9 +822,9 @@ typedef struct _ACCESS_REASONS {
|
|||
ACCESS_REASON Data[32];
|
||||
} ACCESS_REASONS, *PACCESS_REASONS;
|
||||
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE 0x00000001
|
||||
#define SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE 0x00000002
|
||||
#define SE_SECURITY_DESCRIPTOR_VALID_FLAGS 0x00000003
|
||||
|
||||
typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||
$ULONG Size;
|
||||
|
@ -832,101 +832,56 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
|||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
||||
|
||||
$endif(_NTIFS_ || _WINNT_)
|
||||
$if(_NTIFS_)
|
||||
|
||||
typedef struct _SE_ACCESS_REQUEST {
|
||||
ULONG Size;
|
||||
$ULONG Size;
|
||||
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
||||
ACCESS_MASK DesiredAccess;
|
||||
ACCESS_MASK PreviouslyGrantedAccess;
|
||||
PSID PrincipalSelfSid;
|
||||
PGENERIC_MAPPING GenericMapping;
|
||||
ULONG ObjectTypeListCount;
|
||||
$ULONG ObjectTypeListCount;
|
||||
POBJECT_TYPE_LIST ObjectTypeList;
|
||||
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
|
||||
|
||||
typedef struct _SE_ACCESS_REPLY {
|
||||
ULONG Size;
|
||||
ULONG ResultListCount;
|
||||
PACCESS_MASK GrantedAccess;
|
||||
PNTSTATUS AccessStatus;
|
||||
PACCESS_REASONS AccessReason;
|
||||
PPRIVILEGE_SET* Privileges;
|
||||
} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY;
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
|
||||
typedef enum _SE_AUDIT_OPERATION {
|
||||
AuditPrivilegeObject,
|
||||
AuditPrivilegeService,
|
||||
AuditAccessCheck,
|
||||
AuditOpenObject,
|
||||
AuditOpenObjectWithTransaction,
|
||||
AuditCloseObject,
|
||||
AuditDeleteObject,
|
||||
AuditOpenObjectForDelete,
|
||||
AuditOpenObjectForDeleteWithTransaction,
|
||||
AuditCloseNonObject,
|
||||
AuditOpenNonObject,
|
||||
AuditObjectReference,
|
||||
AuditHandleCreation,
|
||||
} SE_AUDIT_OPERATION, *PSE_AUDIT_OPERATION;
|
||||
|
||||
typedef struct _SE_AUDIT_INFO {
|
||||
ULONG Size;
|
||||
AUDIT_EVENT_TYPE AuditType;
|
||||
SE_AUDIT_OPERATION AuditOperation;
|
||||
ULONG AuditFlags;
|
||||
UNICODE_STRING SubsystemName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
UNICODE_STRING ObjectName;
|
||||
PVOID HandleId;
|
||||
GUID* TransactionId;
|
||||
LUID* OperationId;
|
||||
BOOLEAN ObjectCreation;
|
||||
BOOLEAN GenerateOnClose;
|
||||
} SE_AUDIT_INFO, *PSE_AUDIT_INFO;
|
||||
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
|
||||
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT )
|
||||
#define TOKEN_ALL_ACCESS_P (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\
|
||||
TOKEN_ADJUST_SESSIONID )
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID)
|
||||
#else
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||
#endif
|
||||
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
||||
TOKEN_QUERY)
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ | TOKEN_QUERY)
|
||||
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
typedef enum _TOKEN_TYPE {
|
||||
TokenPrimary = 1,
|
||||
TokenImpersonation
|
||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
||||
} TOKEN_TYPE, *PTOKEN_TYPE;
|
||||
|
||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
TokenUser = 1,
|
||||
|
@ -965,40 +920,40 @@ typedef struct _TOKEN_USER {
|
|||
} TOKEN_USER, *PTOKEN_USER;
|
||||
|
||||
typedef struct _TOKEN_GROUPS {
|
||||
ULONG GroupCount;
|
||||
$ULONG GroupCount;
|
||||
#ifdef MIDL_PASS
|
||||
[size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*];
|
||||
#else
|
||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||
#endif
|
||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
||||
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
|
||||
|
||||
typedef struct _TOKEN_PRIVILEGES {
|
||||
ULONG PrivilegeCount;
|
||||
$ULONG PrivilegeCount;
|
||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
||||
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_OWNER {
|
||||
PSID Owner;
|
||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
||||
} TOKEN_OWNER, *PTOKEN_OWNER;
|
||||
|
||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||
PSID PrimaryGroup;
|
||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
||||
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
|
||||
|
||||
typedef struct _TOKEN_DEFAULT_DACL {
|
||||
PACL DefaultDacl;
|
||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
||||
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
|
||||
|
||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||
ULONG SidCount;
|
||||
ULONG SidLength;
|
||||
$ULONG SidCount;
|
||||
$ULONG SidLength;
|
||||
PSID_AND_ATTRIBUTES Sids;
|
||||
ULONG RestrictedSidCount;
|
||||
ULONG RestrictedSidLength;
|
||||
$ULONG RestrictedSidCount;
|
||||
$ULONG RestrictedSidLength;
|
||||
PSID_AND_ATTRIBUTES RestrictedSids;
|
||||
ULONG PrivilegeCount;
|
||||
ULONG PrivilegeLength;
|
||||
$ULONG PrivilegeCount;
|
||||
$ULONG PrivilegeLength;
|
||||
PLUID_AND_ATTRIBUTES Privileges;
|
||||
LUID AuthenticationId;
|
||||
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
||||
|
@ -1008,7 +963,7 @@ typedef struct _TOKEN_LINKED_TOKEN {
|
|||
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
|
||||
|
||||
typedef struct _TOKEN_ELEVATION {
|
||||
ULONG TokenIsElevated;
|
||||
$ULONG TokenIsElevated;
|
||||
} TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_LABEL {
|
||||
|
@ -1019,28 +974,13 @@ typedef struct _TOKEN_MANDATORY_LABEL {
|
|||
#define TOKEN_MANDATORY_POLICY_NO_WRITE_UP 0x1
|
||||
#define TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN 0x2
|
||||
|
||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
||||
ULONG Policy;
|
||||
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
|
||||
|
||||
typedef struct _TOKEN_ACCESS_INFORMATION {
|
||||
PSID_AND_ATTRIBUTES_HASH SidHash;
|
||||
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
|
||||
PTOKEN_PRIVILEGES Privileges;
|
||||
LUID AuthenticationId;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
TOKEN_MANDATORY_POLICY MandatoryPolicy;
|
||||
ULONG Flags;
|
||||
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
|
||||
|
||||
#define POLICY_AUDIT_SUBCATEGORY_COUNT (53)
|
||||
#define POLICY_AUDIT_SUBCATEGORY_COUNT (56)
|
||||
|
||||
typedef struct _TOKEN_AUDIT_POLICY {
|
||||
UCHAR PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
||||
$UCHAR PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
||||
} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY;
|
||||
|
||||
#define TOKEN_SOURCE_LENGTH 8
|
||||
|
@ -1048,7 +988,7 @@ typedef struct _TOKEN_AUDIT_POLICY {
|
|||
typedef struct _TOKEN_SOURCE {
|
||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||
LUID SourceIdentifier;
|
||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
||||
} TOKEN_SOURCE, *PTOKEN_SOURCE;
|
||||
|
||||
typedef struct _TOKEN_STATISTICS {
|
||||
LUID TokenId;
|
||||
|
@ -1056,10 +996,10 @@ typedef struct _TOKEN_STATISTICS {
|
|||
LARGE_INTEGER ExpirationTime;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
ULONG DynamicCharged;
|
||||
ULONG DynamicAvailable;
|
||||
ULONG GroupCount;
|
||||
ULONG PrivilegeCount;
|
||||
$ULONG DynamicCharged;
|
||||
$ULONG DynamicAvailable;
|
||||
$ULONG GroupCount;
|
||||
$ULONG PrivilegeCount;
|
||||
LUID ModifiedId;
|
||||
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
||||
|
||||
|
@ -1068,7 +1008,7 @@ typedef struct _TOKEN_CONTROL {
|
|||
LUID AuthenticationId;
|
||||
LUID ModifiedId;
|
||||
TOKEN_SOURCE TokenSource;
|
||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
||||
} TOKEN_CONTROL, *PTOKEN_CONTROL;
|
||||
|
||||
typedef struct _TOKEN_ORIGIN {
|
||||
LUID OriginatingLogonSession;
|
||||
|
@ -1084,6 +1024,64 @@ typedef enum _MANDATORY_LEVEL {
|
|||
MandatoryLevelCount
|
||||
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
|
||||
|
||||
$endif(_NTIFS_ || _WINNT_)
|
||||
$if(_NTIFS_)
|
||||
|
||||
typedef struct _SE_ACCESS_REPLY {
|
||||
$ULONG Size;
|
||||
$ULONG ResultListCount;
|
||||
PACCESS_MASK GrantedAccess;
|
||||
PNTSTATUS AccessStatus;
|
||||
PACCESS_REASONS AccessReason;
|
||||
PPRIVILEGE_SET* Privileges;
|
||||
} SE_ACCESS_REPLY, *PSE_ACCESS_REPLY;
|
||||
|
||||
typedef enum _SE_AUDIT_OPERATION {
|
||||
AuditPrivilegeObject,
|
||||
AuditPrivilegeService,
|
||||
AuditAccessCheck,
|
||||
AuditOpenObject,
|
||||
AuditOpenObjectWithTransaction,
|
||||
AuditCloseObject,
|
||||
AuditDeleteObject,
|
||||
AuditOpenObjectForDelete,
|
||||
AuditOpenObjectForDeleteWithTransaction,
|
||||
AuditCloseNonObject,
|
||||
AuditOpenNonObject,
|
||||
AuditObjectReference,
|
||||
AuditHandleCreation,
|
||||
} SE_AUDIT_OPERATION, *PSE_AUDIT_OPERATION;
|
||||
|
||||
typedef struct _SE_AUDIT_INFO {
|
||||
ULONG Size;
|
||||
AUDIT_EVENT_TYPE AuditType;
|
||||
SE_AUDIT_OPERATION AuditOperation;
|
||||
ULONG AuditFlags;
|
||||
UNICODE_STRING SubsystemName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
UNICODE_STRING ObjectName;
|
||||
PVOID HandleId;
|
||||
GUID* TransactionId;
|
||||
LUID* OperationId;
|
||||
BOOLEAN ObjectCreation;
|
||||
BOOLEAN GenerateOnClose;
|
||||
} SE_AUDIT_INFO, *PSE_AUDIT_INFO;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
||||
$ULONG Policy;
|
||||
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
|
||||
|
||||
typedef struct _TOKEN_ACCESS_INFORMATION {
|
||||
PSID_AND_ATTRIBUTES_HASH SidHash;
|
||||
PSID_AND_ATTRIBUTES_HASH RestrictedSidHash;
|
||||
PTOKEN_PRIVILEGES Privileges;
|
||||
LUID AuthenticationId;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
TOKEN_MANDATORY_POLICY MandatoryPolicy;
|
||||
$ULONG Flags;
|
||||
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
|
||||
|
||||
#define TOKEN_HAS_TRAVERSE_PRIVILEGE 0x0001
|
||||
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
||||
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
||||
|
|
|
@ -937,36 +937,6 @@
|
|||
#define SERVICE_ERROR_SEVERE 2
|
||||
#define SERVICE_ERROR_CRITICAL 3
|
||||
|
||||
/* also in ddk/ntifs.h */
|
||||
#define TOKEN_ASSIGN_PRIMARY (0x0001)
|
||||
#define TOKEN_DUPLICATE (0x0002)
|
||||
#define TOKEN_IMPERSONATE (0x0004)
|
||||
#define TOKEN_QUERY (0x0008)
|
||||
#define TOKEN_QUERY_SOURCE (0x0010)
|
||||
#define TOKEN_ADJUST_PRIVILEGES (0x0020)
|
||||
#define TOKEN_ADJUST_GROUPS (0x0040)
|
||||
#define TOKEN_ADJUST_DEFAULT (0x0080)
|
||||
#define TOKEN_ADJUST_SESSIONID (0x0100)
|
||||
#define TOKEN_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
TOKEN_ASSIGN_PRIMARY |\
|
||||
TOKEN_DUPLICATE |\
|
||||
TOKEN_IMPERSONATE |\
|
||||
TOKEN_QUERY |\
|
||||
TOKEN_QUERY_SOURCE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT |\
|
||||
TOKEN_ADJUST_SESSIONID)
|
||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
||||
TOKEN_QUERY)
|
||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TOKEN_ADJUST_PRIVILEGES |\
|
||||
TOKEN_ADJUST_GROUPS |\
|
||||
TOKEN_ADJUST_DEFAULT)
|
||||
|
||||
#define TOKEN_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
#define TOKEN_SOURCE_LENGTH 8
|
||||
/* end ddk/ntifs.h */
|
||||
#define DLL_PROCESS_DETACH 0
|
||||
#define DLL_PROCESS_ATTACH 1
|
||||
#define DLL_THREAD_ATTACH 2
|
||||
|
@ -2200,123 +2170,12 @@ typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
|
|||
DWORD SidStart;
|
||||
} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
|
||||
|
||||
typedef struct _TOKEN_SOURCE {
|
||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||
LUID SourceIdentifier;
|
||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
||||
|
||||
typedef struct _TOKEN_CONTROL {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LUID ModifiedId;
|
||||
TOKEN_SOURCE TokenSource;
|
||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
||||
|
||||
typedef struct _TOKEN_DEFAULT_DACL {
|
||||
PACL DefaultDacl;
|
||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
||||
|
||||
typedef struct _TOKEN_GROUPS {
|
||||
DWORD GroupCount;
|
||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
||||
|
||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||
DWORD SidCount;
|
||||
DWORD SidLength;
|
||||
PSID_AND_ATTRIBUTES Sids;
|
||||
DWORD RestrictedSidCount;
|
||||
DWORD RestrictedSidLength;
|
||||
PSID_AND_ATTRIBUTES RestrictedSids;
|
||||
DWORD PrivilegeCount;
|
||||
DWORD PrivilegeLength;
|
||||
PLUID_AND_ATTRIBUTES Privileges;
|
||||
LUID AuthenticationId;
|
||||
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
||||
|
||||
typedef struct _TOKEN_ORIGIN {
|
||||
LUID OriginatingLogonSession;
|
||||
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
|
||||
|
||||
typedef struct _TOKEN_OWNER {
|
||||
PSID Owner;
|
||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
||||
|
||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||
PSID PrimaryGroup;
|
||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
||||
|
||||
typedef struct _TOKEN_PRIVILEGES {
|
||||
DWORD PrivilegeCount;
|
||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
||||
|
||||
typedef enum tagTOKEN_TYPE {
|
||||
TokenPrimary = 1,
|
||||
TokenImpersonation
|
||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
||||
|
||||
typedef enum _TOKEN_ELEVATION_TYPE {
|
||||
TokenElevationTypeDefault = 1,
|
||||
TokenElevationTypeFull,
|
||||
TokenElevationTypeLimited,
|
||||
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
|
||||
|
||||
typedef struct _TOKEN_MANDATORY_LABEL {
|
||||
SID_AND_ATTRIBUTES Label;
|
||||
} TOKEN_MANDATORY_LABEL, * PTOKEN_MANDATORY_LABEL;
|
||||
|
||||
#include <pshpack4.h>
|
||||
typedef struct _TOKEN_STATISTICS {
|
||||
LUID TokenId;
|
||||
LUID AuthenticationId;
|
||||
LARGE_INTEGER ExpirationTime;
|
||||
TOKEN_TYPE TokenType;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
DWORD DynamicCharged;
|
||||
DWORD DynamicAvailable;
|
||||
DWORD GroupCount;
|
||||
DWORD PrivilegeCount;
|
||||
LUID ModifiedId;
|
||||
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
||||
#include <poppack.h>
|
||||
|
||||
typedef struct _TOKEN_USER {
|
||||
SID_AND_ATTRIBUTES User;
|
||||
} TOKEN_USER, *PTOKEN_USER;
|
||||
|
||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||
TokenUser = 1,
|
||||
TokenGroups,
|
||||
TokenPrivileges,
|
||||
TokenOwner,
|
||||
TokenPrimaryGroup,
|
||||
TokenDefaultDacl,
|
||||
TokenSource,
|
||||
TokenType,
|
||||
TokenImpersonationLevel,
|
||||
TokenStatistics,
|
||||
TokenRestrictedSids,
|
||||
TokenSessionId,
|
||||
TokenGroupsAndPrivileges,
|
||||
TokenSessionReference,
|
||||
TokenSandBoxInert,
|
||||
TokenAuditPolicy,
|
||||
TokenOrigin,
|
||||
TokenElevationType,
|
||||
TokenLinkedToken,
|
||||
TokenElevation,
|
||||
TokenHasRestrictions,
|
||||
TokenAccessInformation,
|
||||
TokenVirtualizationAllowed,
|
||||
TokenVirtualizationEnabled,
|
||||
TokenIntegrityLevel,
|
||||
TokenUIAccess,
|
||||
TokenMandatoryPolicy,
|
||||
TokenLogonSid,
|
||||
MaxTokenInfoClass
|
||||
} TOKEN_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _QUOTA_LIMITS {
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
|
|
Loading…
Reference in a new issue