mirror of
https://github.com/reactos/reactos.git
synced 2024-11-02 12:53: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
|
@ -493,7 +493,6 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
||||||
|
|
||||||
|
|
||||||
typedef struct _SE_ACCESS_REQUEST {
|
typedef struct _SE_ACCESS_REQUEST {
|
||||||
ULONG Size;
|
ULONG Size;
|
||||||
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
||||||
|
@ -505,46 +504,6 @@ typedef struct _SE_ACCESS_REQUEST {
|
||||||
POBJECT_TYPE_LIST ObjectTypeList;
|
POBJECT_TYPE_LIST ObjectTypeList;
|
||||||
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
|
} 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;
|
|
||||||
|
|
||||||
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_ASSIGN_PRIMARY (0x0001)
|
||||||
#define TOKEN_DUPLICATE (0x0002)
|
#define TOKEN_DUPLICATE (0x0002)
|
||||||
#define TOKEN_IMPERSONATE (0x0004)
|
#define TOKEN_IMPERSONATE (0x0004)
|
||||||
|
@ -563,17 +522,15 @@ typedef struct _SE_AUDIT_INFO {
|
||||||
TOKEN_QUERY_SOURCE |\
|
TOKEN_QUERY_SOURCE |\
|
||||||
TOKEN_ADJUST_PRIVILEGES |\
|
TOKEN_ADJUST_PRIVILEGES |\
|
||||||
TOKEN_ADJUST_GROUPS |\
|
TOKEN_ADJUST_GROUPS |\
|
||||||
TOKEN_ADJUST_DEFAULT )
|
TOKEN_ADJUST_DEFAULT)
|
||||||
|
|
||||||
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
||||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\
|
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID)
|
||||||
TOKEN_ADJUST_SESSIONID )
|
|
||||||
#else
|
#else
|
||||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
#define TOKEN_READ (STANDARD_RIGHTS_READ | TOKEN_QUERY)
|
||||||
TOKEN_QUERY)
|
|
||||||
|
|
||||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||||
TOKEN_ADJUST_PRIVILEGES |\
|
TOKEN_ADJUST_PRIVILEGES |\
|
||||||
|
@ -585,7 +542,7 @@ typedef struct _SE_AUDIT_INFO {
|
||||||
typedef enum _TOKEN_TYPE {
|
typedef enum _TOKEN_TYPE {
|
||||||
TokenPrimary = 1,
|
TokenPrimary = 1,
|
||||||
TokenImpersonation
|
TokenImpersonation
|
||||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
} TOKEN_TYPE, *PTOKEN_TYPE;
|
||||||
|
|
||||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||||
TokenUser = 1,
|
TokenUser = 1,
|
||||||
|
@ -630,24 +587,24 @@ typedef struct _TOKEN_GROUPS {
|
||||||
#else
|
#else
|
||||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||||
#endif
|
#endif
|
||||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
|
||||||
|
|
||||||
typedef struct _TOKEN_PRIVILEGES {
|
typedef struct _TOKEN_PRIVILEGES {
|
||||||
ULONG PrivilegeCount;
|
ULONG PrivilegeCount;
|
||||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
|
||||||
|
|
||||||
typedef struct _TOKEN_OWNER {
|
typedef struct _TOKEN_OWNER {
|
||||||
PSID Owner;
|
PSID Owner;
|
||||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
} TOKEN_OWNER, *PTOKEN_OWNER;
|
||||||
|
|
||||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||||
PSID PrimaryGroup;
|
PSID PrimaryGroup;
|
||||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
|
||||||
|
|
||||||
typedef struct _TOKEN_DEFAULT_DACL {
|
typedef struct _TOKEN_DEFAULT_DACL {
|
||||||
PACL DefaultDacl;
|
PACL DefaultDacl;
|
||||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
|
||||||
|
|
||||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||||
ULONG SidCount;
|
ULONG SidCount;
|
||||||
|
@ -681,22 +638,7 @@ typedef struct _TOKEN_MANDATORY_LABEL {
|
||||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||||
|
|
||||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
#define POLICY_AUDIT_SUBCATEGORY_COUNT (56)
|
||||||
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)
|
|
||||||
|
|
||||||
typedef struct _TOKEN_AUDIT_POLICY {
|
typedef struct _TOKEN_AUDIT_POLICY {
|
||||||
UCHAR PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
UCHAR PerUserPolicy[((POLICY_AUDIT_SUBCATEGORY_COUNT) >> 1) + 1];
|
||||||
|
@ -707,7 +649,7 @@ typedef struct _TOKEN_AUDIT_POLICY {
|
||||||
typedef struct _TOKEN_SOURCE {
|
typedef struct _TOKEN_SOURCE {
|
||||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||||
LUID SourceIdentifier;
|
LUID SourceIdentifier;
|
||||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
} TOKEN_SOURCE, *PTOKEN_SOURCE;
|
||||||
|
|
||||||
typedef struct _TOKEN_STATISTICS {
|
typedef struct _TOKEN_STATISTICS {
|
||||||
LUID TokenId;
|
LUID TokenId;
|
||||||
|
@ -727,7 +669,7 @@ typedef struct _TOKEN_CONTROL {
|
||||||
LUID AuthenticationId;
|
LUID AuthenticationId;
|
||||||
LUID ModifiedId;
|
LUID ModifiedId;
|
||||||
TOKEN_SOURCE TokenSource;
|
TOKEN_SOURCE TokenSource;
|
||||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
} TOKEN_CONTROL, *PTOKEN_CONTROL;
|
||||||
|
|
||||||
typedef struct _TOKEN_ORIGIN {
|
typedef struct _TOKEN_ORIGIN {
|
||||||
LUID OriginatingLogonSession;
|
LUID OriginatingLogonSession;
|
||||||
|
@ -743,6 +685,62 @@ typedef enum _MANDATORY_LEVEL {
|
||||||
MandatoryLevelCount
|
MandatoryLevelCount
|
||||||
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
|
} 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_TRAVERSE_PRIVILEGE 0x0001
|
||||||
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
||||||
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
||||||
|
|
|
@ -2832,36 +2832,6 @@ _InterlockedBitTestAndComplement64(
|
||||||
#define SERVICE_ERROR_SEVERE 2
|
#define SERVICE_ERROR_SEVERE 2
|
||||||
#define SERVICE_ERROR_CRITICAL 3
|
#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_DETACH 0
|
||||||
#define DLL_PROCESS_ATTACH 1
|
#define DLL_PROCESS_ATTACH 1
|
||||||
#define DLL_THREAD_ATTACH 2
|
#define DLL_THREAD_ATTACH 2
|
||||||
|
@ -4645,6 +4615,198 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
} 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 {
|
typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
|
||||||
ACE_HEADER Header;
|
ACE_HEADER Header;
|
||||||
|
@ -4742,123 +4904,12 @@ typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
|
||||||
DWORD SidStart;
|
DWORD SidStart;
|
||||||
} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
|
} 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 {
|
typedef enum _TOKEN_ELEVATION_TYPE {
|
||||||
TokenElevationTypeDefault = 1,
|
TokenElevationTypeDefault = 1,
|
||||||
TokenElevationTypeFull,
|
TokenElevationTypeFull,
|
||||||
TokenElevationTypeLimited,
|
TokenElevationTypeLimited,
|
||||||
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
|
} 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 {
|
typedef struct _QUOTA_LIMITS {
|
||||||
SIZE_T PagedPoolLimit;
|
SIZE_T PagedPoolLimit;
|
||||||
SIZE_T NonPagedPoolLimit;
|
SIZE_T NonPagedPoolLimit;
|
||||||
|
|
|
@ -832,60 +832,17 @@ typedef struct _SE_SECURITY_DESCRIPTOR {
|
||||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||||
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
} SE_SECURITY_DESCRIPTOR, *PSE_SECURITY_DESCRIPTOR;
|
||||||
|
|
||||||
$endif(_NTIFS_ || _WINNT_)
|
|
||||||
$if(_NTIFS_)
|
|
||||||
|
|
||||||
typedef struct _SE_ACCESS_REQUEST {
|
typedef struct _SE_ACCESS_REQUEST {
|
||||||
ULONG Size;
|
$ULONG Size;
|
||||||
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
PSE_SECURITY_DESCRIPTOR SeSecurityDescriptor;
|
||||||
ACCESS_MASK DesiredAccess;
|
ACCESS_MASK DesiredAccess;
|
||||||
ACCESS_MASK PreviouslyGrantedAccess;
|
ACCESS_MASK PreviouslyGrantedAccess;
|
||||||
PSID PrincipalSelfSid;
|
PSID PrincipalSelfSid;
|
||||||
PGENERIC_MAPPING GenericMapping;
|
PGENERIC_MAPPING GenericMapping;
|
||||||
ULONG ObjectTypeListCount;
|
$ULONG ObjectTypeListCount;
|
||||||
POBJECT_TYPE_LIST ObjectTypeList;
|
POBJECT_TYPE_LIST ObjectTypeList;
|
||||||
} SE_ACCESS_REQUEST, *PSE_ACCESS_REQUEST;
|
} 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;
|
|
||||||
|
|
||||||
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_ASSIGN_PRIMARY (0x0001)
|
||||||
#define TOKEN_DUPLICATE (0x0002)
|
#define TOKEN_DUPLICATE (0x0002)
|
||||||
#define TOKEN_IMPERSONATE (0x0004)
|
#define TOKEN_IMPERSONATE (0x0004)
|
||||||
|
@ -904,17 +861,15 @@ typedef struct _SE_AUDIT_INFO {
|
||||||
TOKEN_QUERY_SOURCE |\
|
TOKEN_QUERY_SOURCE |\
|
||||||
TOKEN_ADJUST_PRIVILEGES |\
|
TOKEN_ADJUST_PRIVILEGES |\
|
||||||
TOKEN_ADJUST_GROUPS |\
|
TOKEN_ADJUST_GROUPS |\
|
||||||
TOKEN_ADJUST_DEFAULT )
|
TOKEN_ADJUST_DEFAULT)
|
||||||
|
|
||||||
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
#if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
|
||||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P |\
|
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID)
|
||||||
TOKEN_ADJUST_SESSIONID )
|
|
||||||
#else
|
#else
|
||||||
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
#define TOKEN_ALL_ACCESS (TOKEN_ALL_ACCESS_P)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define TOKEN_READ (STANDARD_RIGHTS_READ |\
|
#define TOKEN_READ (STANDARD_RIGHTS_READ | TOKEN_QUERY)
|
||||||
TOKEN_QUERY)
|
|
||||||
|
|
||||||
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
#define TOKEN_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||||
TOKEN_ADJUST_PRIVILEGES |\
|
TOKEN_ADJUST_PRIVILEGES |\
|
||||||
|
@ -926,7 +881,7 @@ typedef struct _SE_AUDIT_INFO {
|
||||||
typedef enum _TOKEN_TYPE {
|
typedef enum _TOKEN_TYPE {
|
||||||
TokenPrimary = 1,
|
TokenPrimary = 1,
|
||||||
TokenImpersonation
|
TokenImpersonation
|
||||||
} TOKEN_TYPE,*PTOKEN_TYPE;
|
} TOKEN_TYPE, *PTOKEN_TYPE;
|
||||||
|
|
||||||
typedef enum _TOKEN_INFORMATION_CLASS {
|
typedef enum _TOKEN_INFORMATION_CLASS {
|
||||||
TokenUser = 1,
|
TokenUser = 1,
|
||||||
|
@ -965,40 +920,40 @@ typedef struct _TOKEN_USER {
|
||||||
} TOKEN_USER, *PTOKEN_USER;
|
} TOKEN_USER, *PTOKEN_USER;
|
||||||
|
|
||||||
typedef struct _TOKEN_GROUPS {
|
typedef struct _TOKEN_GROUPS {
|
||||||
ULONG GroupCount;
|
$ULONG GroupCount;
|
||||||
#ifdef MIDL_PASS
|
#ifdef MIDL_PASS
|
||||||
[size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*];
|
[size_is(GroupCount)] SID_AND_ATTRIBUTES Groups[*];
|
||||||
#else
|
#else
|
||||||
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
|
||||||
#endif
|
#endif
|
||||||
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
|
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
|
||||||
|
|
||||||
typedef struct _TOKEN_PRIVILEGES {
|
typedef struct _TOKEN_PRIVILEGES {
|
||||||
ULONG PrivilegeCount;
|
$ULONG PrivilegeCount;
|
||||||
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
|
||||||
} TOKEN_PRIVILEGES,*PTOKEN_PRIVILEGES,*LPTOKEN_PRIVILEGES;
|
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
|
||||||
|
|
||||||
typedef struct _TOKEN_OWNER {
|
typedef struct _TOKEN_OWNER {
|
||||||
PSID Owner;
|
PSID Owner;
|
||||||
} TOKEN_OWNER,*PTOKEN_OWNER;
|
} TOKEN_OWNER, *PTOKEN_OWNER;
|
||||||
|
|
||||||
typedef struct _TOKEN_PRIMARY_GROUP {
|
typedef struct _TOKEN_PRIMARY_GROUP {
|
||||||
PSID PrimaryGroup;
|
PSID PrimaryGroup;
|
||||||
} TOKEN_PRIMARY_GROUP,*PTOKEN_PRIMARY_GROUP;
|
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
|
||||||
|
|
||||||
typedef struct _TOKEN_DEFAULT_DACL {
|
typedef struct _TOKEN_DEFAULT_DACL {
|
||||||
PACL DefaultDacl;
|
PACL DefaultDacl;
|
||||||
} TOKEN_DEFAULT_DACL,*PTOKEN_DEFAULT_DACL;
|
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
|
||||||
|
|
||||||
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
|
||||||
ULONG SidCount;
|
$ULONG SidCount;
|
||||||
ULONG SidLength;
|
$ULONG SidLength;
|
||||||
PSID_AND_ATTRIBUTES Sids;
|
PSID_AND_ATTRIBUTES Sids;
|
||||||
ULONG RestrictedSidCount;
|
$ULONG RestrictedSidCount;
|
||||||
ULONG RestrictedSidLength;
|
$ULONG RestrictedSidLength;
|
||||||
PSID_AND_ATTRIBUTES RestrictedSids;
|
PSID_AND_ATTRIBUTES RestrictedSids;
|
||||||
ULONG PrivilegeCount;
|
$ULONG PrivilegeCount;
|
||||||
ULONG PrivilegeLength;
|
$ULONG PrivilegeLength;
|
||||||
PLUID_AND_ATTRIBUTES Privileges;
|
PLUID_AND_ATTRIBUTES Privileges;
|
||||||
LUID AuthenticationId;
|
LUID AuthenticationId;
|
||||||
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
|
||||||
|
@ -1008,7 +963,7 @@ typedef struct _TOKEN_LINKED_TOKEN {
|
||||||
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
|
} TOKEN_LINKED_TOKEN, *PTOKEN_LINKED_TOKEN;
|
||||||
|
|
||||||
typedef struct _TOKEN_ELEVATION {
|
typedef struct _TOKEN_ELEVATION {
|
||||||
ULONG TokenIsElevated;
|
$ULONG TokenIsElevated;
|
||||||
} TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
} TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
||||||
|
|
||||||
typedef struct _TOKEN_MANDATORY_LABEL {
|
typedef struct _TOKEN_MANDATORY_LABEL {
|
||||||
|
@ -1022,25 +977,10 @@ typedef struct _TOKEN_MANDATORY_LABEL {
|
||||||
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
#define TOKEN_MANDATORY_POLICY_VALID_MASK (TOKEN_MANDATORY_POLICY_NO_WRITE_UP | \
|
||||||
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN)
|
||||||
|
|
||||||
typedef struct _TOKEN_MANDATORY_POLICY {
|
#define POLICY_AUDIT_SUBCATEGORY_COUNT (56)
|
||||||
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)
|
|
||||||
|
|
||||||
typedef struct _TOKEN_AUDIT_POLICY {
|
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;
|
} TOKEN_AUDIT_POLICY, *PTOKEN_AUDIT_POLICY;
|
||||||
|
|
||||||
#define TOKEN_SOURCE_LENGTH 8
|
#define TOKEN_SOURCE_LENGTH 8
|
||||||
|
@ -1048,7 +988,7 @@ typedef struct _TOKEN_AUDIT_POLICY {
|
||||||
typedef struct _TOKEN_SOURCE {
|
typedef struct _TOKEN_SOURCE {
|
||||||
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
CHAR SourceName[TOKEN_SOURCE_LENGTH];
|
||||||
LUID SourceIdentifier;
|
LUID SourceIdentifier;
|
||||||
} TOKEN_SOURCE,*PTOKEN_SOURCE;
|
} TOKEN_SOURCE, *PTOKEN_SOURCE;
|
||||||
|
|
||||||
typedef struct _TOKEN_STATISTICS {
|
typedef struct _TOKEN_STATISTICS {
|
||||||
LUID TokenId;
|
LUID TokenId;
|
||||||
|
@ -1056,10 +996,10 @@ typedef struct _TOKEN_STATISTICS {
|
||||||
LARGE_INTEGER ExpirationTime;
|
LARGE_INTEGER ExpirationTime;
|
||||||
TOKEN_TYPE TokenType;
|
TOKEN_TYPE TokenType;
|
||||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||||
ULONG DynamicCharged;
|
$ULONG DynamicCharged;
|
||||||
ULONG DynamicAvailable;
|
$ULONG DynamicAvailable;
|
||||||
ULONG GroupCount;
|
$ULONG GroupCount;
|
||||||
ULONG PrivilegeCount;
|
$ULONG PrivilegeCount;
|
||||||
LUID ModifiedId;
|
LUID ModifiedId;
|
||||||
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
|
||||||
|
|
||||||
|
@ -1068,7 +1008,7 @@ typedef struct _TOKEN_CONTROL {
|
||||||
LUID AuthenticationId;
|
LUID AuthenticationId;
|
||||||
LUID ModifiedId;
|
LUID ModifiedId;
|
||||||
TOKEN_SOURCE TokenSource;
|
TOKEN_SOURCE TokenSource;
|
||||||
} TOKEN_CONTROL,*PTOKEN_CONTROL;
|
} TOKEN_CONTROL, *PTOKEN_CONTROL;
|
||||||
|
|
||||||
typedef struct _TOKEN_ORIGIN {
|
typedef struct _TOKEN_ORIGIN {
|
||||||
LUID OriginatingLogonSession;
|
LUID OriginatingLogonSession;
|
||||||
|
@ -1084,6 +1024,64 @@ typedef enum _MANDATORY_LEVEL {
|
||||||
MandatoryLevelCount
|
MandatoryLevelCount
|
||||||
} MANDATORY_LEVEL, *PMANDATORY_LEVEL;
|
} 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_TRAVERSE_PRIVILEGE 0x0001
|
||||||
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
#define TOKEN_HAS_BACKUP_PRIVILEGE 0x0002
|
||||||
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
#define TOKEN_HAS_RESTORE_PRIVILEGE 0x0004
|
||||||
|
|
|
@ -937,36 +937,6 @@
|
||||||
#define SERVICE_ERROR_SEVERE 2
|
#define SERVICE_ERROR_SEVERE 2
|
||||||
#define SERVICE_ERROR_CRITICAL 3
|
#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_DETACH 0
|
||||||
#define DLL_PROCESS_ATTACH 1
|
#define DLL_PROCESS_ATTACH 1
|
||||||
#define DLL_THREAD_ATTACH 2
|
#define DLL_THREAD_ATTACH 2
|
||||||
|
@ -2200,123 +2170,12 @@ typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
|
||||||
DWORD SidStart;
|
DWORD SidStart;
|
||||||
} SYSTEM_ALARM_CALLBACK_OBJECT_ACE, *PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
|
} 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 {
|
typedef enum _TOKEN_ELEVATION_TYPE {
|
||||||
TokenElevationTypeDefault = 1,
|
TokenElevationTypeDefault = 1,
|
||||||
TokenElevationTypeFull,
|
TokenElevationTypeFull,
|
||||||
TokenElevationTypeLimited,
|
TokenElevationTypeLimited,
|
||||||
} TOKEN_ELEVATION_TYPE, *PTOKEN_ELEVATION_TYPE;
|
} 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 {
|
typedef struct _QUOTA_LIMITS {
|
||||||
SIZE_T PagedPoolLimit;
|
SIZE_T PagedPoolLimit;
|
||||||
SIZE_T NonPagedPoolLimit;
|
SIZE_T NonPagedPoolLimit;
|
||||||
|
|
Loading…
Reference in a new issue