#ifndef NTOS_MODE_USER\r
#define _NTIFS_\r
\r
+#define TOKEN_SOURCE_LENGTH 8\r
+\r
+typedef enum _TOKEN_TYPE\r
+{\r
+ TokenPrimary = 1,\r
+ TokenImpersonation\r
+} TOKEN_TYPE, *PTOKEN_TYPE;\r
+\r
typedef PVOID PRTL_HEAP_PARAMETERS;\r
+typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;\r
\r
typedef struct _RTL_SPLAY_LINKS\r
{\r
typedef struct _KAPC_STATE\r
{\r
LIST_ENTRY ApcListHead[2];\r
- PKPROCESS Process;\r
+ struct _KPROCESS *Process;\r
BOOLEAN KernelApcInProgress;\r
BOOLEAN KernelApcPending;\r
BOOLEAN UserApcPending;\r
LIST_ENTRY ThreadListHead;\r
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;\r
\r
-typedef PVOID EX_RUNDOWN_REF;\r
-typedef PVOID EX_PUSH_LOCK;\r
+typedef enum _RTL_GENERIC_COMPARE_RESULTS\r
+{\r
+ GenericLessThan,\r
+ GenericGreaterThan,\r
+ GenericEqual\r
+} RTL_GENERIC_COMPARE_RESULTS;\r
+\r
+typedef struct _SID_IDENTIFIER_AUTHORITY\r
+{\r
+ UCHAR Value[6];\r
+} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;\r
+\r
+typedef struct _SID_AND_ATTRIBUTES\r
+{\r
+ PSID Sid;\r
+ ULONG Attributes;\r
+} SID_AND_ATTRIBUTES, * PSID_AND_ATTRIBUTES;\r
+\r
+typedef struct _TOKEN_SOURCE\r
+{\r
+ CHAR SourceName[TOKEN_SOURCE_LENGTH];\r
+ LUID SourceIdentifier;\r
+} TOKEN_SOURCE, *PTOKEN_SOURCE;\r
+\r
+typedef struct _TOKEN_CONTROL\r
+{\r
+ LUID TokenId;\r
+ LUID AuthenticationId;\r
+ LUID ModifiedId;\r
+ TOKEN_SOURCE TokenSource;\r
+} TOKEN_CONTROL, *PTOKEN_CONTROL;\r
\r
typedef struct _SECURITY_CLIENT_CONTEXT\r
{\r
TOKEN_CONTROL ClientTokenControl;\r
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;\r
\r
-typedef enum _RTL_GENERIC_COMPARE_RESULTS\r
+typedef struct _SECURITY_DESCRIPTOR_RELATIVE\r
{\r
- GenericLessThan,\r
- GenericGreaterThan,\r
- GenericEqual\r
-} RTL_GENERIC_COMPARE_RESULTS;\r
+ UCHAR Revision;\r
+ UCHAR Sbz1;\r
+ SECURITY_DESCRIPTOR_CONTROL Control;\r
+ ULONG Owner;\r
+ ULONG Group;\r
+ ULONG Sacl;\r
+ ULONG Dacl;\r
+} SECURITY_DESCRIPTOR_RELATIVE, *PISECURITY_DESCRIPTOR_RELATIVE;\r
+\r
+typedef struct _TOKEN_GROUPS\r
+{\r
+ ULONG GroupCount;\r
+ SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];\r
+} TOKEN_GROUPS, *PTOKEN_GROUPS;\r
+\r
+typedef struct _TOKEN_PRIVILEGES\r
+{\r
+ ULONG PrivilegeCount;\r
+ LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];\r
+} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;\r
+\r
+typedef struct _TOKEN_USER\r
+{\r
+ SID_AND_ATTRIBUTES User;\r
+} TOKEN_USER, *PTOKEN_USER;\r
+\r
+typedef enum _TOKEN_INFORMATION_CLASS\r
+{\r
+ TokenUser = 1,\r
+ TokenGroups,\r
+ TokenPrivileges,\r
+ TokenOwner,\r
+ TokenPrimaryGroup,\r
+ TokenDefaultDacl,\r
+ TokenSource,\r
+ TokenType,\r
+ TokenImpersonationLevel,\r
+ TokenStatistics,\r
+ TokenRestrictedSids,\r
+ TokenSessionId,\r
+ TokenGroupsAndPrivileges,\r
+ TokenSessionReference,\r
+ TokenSandBoxInert,\r
+ TokenAuditPolicy,\r
+ TokenOrigin,\r
+ TokenElevationType,\r
+ TokenLinkedToken,\r
+ TokenElevation,\r
+ TokenIsRestricted,\r
+ TokenAccessInformation,\r
+ TokenVirtualization,\r
+ TokenIntegrityLevel,\r
+ TokenIntegrityLevelDesktop,\r
+ TokenMandatoryPolicy,\r
+ MaxTokenInfoClass\r
+} TOKEN_INFORMATION_CLASS, *PTOKEN_INFORMATION_CLASS;\r
+\r
+typedef struct _TOKEN_OWNER\r
+{\r
+ PSID Owner;\r
+} TOKEN_OWNER, *PTOKEN_OWNER;\r
+\r
+typedef struct _TOKEN_PRIMARY_GROUP\r
+{\r
+ PSID PrimaryGroup;\r
+} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;\r
+\r
+typedef struct _TOKEN_DEFAULT_DACL\r
+{\r
+ PACL DefaultDacl;\r
+} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;\r
\r
#endif // !NTOS_MODE_USER\r
#endif // _NTIFS_\r