- ntsecpkg.h : merge recent changes from trunk.
- winnt.h : Add missing PROCESSOR_NUMBER, introduce _ANONYMOUS_UNION in NT_TIB{32,64}, update WELL_KNOWN_SID_TYPE & SID_NAME_USE, ULONG -> DWORD in LDT_ENTRY and TOKEN_GROUPS_AND_PRIVILEGES and a consistent formatting for the rest.
[FREELDR]
- setupldr.rbuild : merge recent changes from trunk.

svn path=/branches/header-work/; revision=47221
This commit is contained in:
Amine Khaldi 2010-05-15 16:53:39 +00:00
parent eeb2e93d2d
commit fc4066c4cc
3 changed files with 502 additions and 400 deletions

View file

@ -11,7 +11,9 @@
<library>cmlib</library> <library>cmlib</library>
<library>rtl</library> <library>rtl</library>
<library>libcntpr</library> <library>libcntpr</library>
<if property="ARCH" value="i386">
<library>mini_hal</library> <library>mini_hal</library>
</if>
<group linkerset="ld"> <group linkerset="ld">
<linkerflag>-nostartfiles</linkerflag> <linkerflag>-nostartfiles</linkerflag>
<linkerflag>-nostdlib</linkerflag> <linkerflag>-nostdlib</linkerflag>

View file

@ -19,6 +19,10 @@
#ifndef _NTSECPKG_H #ifndef _NTSECPKG_H
#define _NTSECPKG_H #define _NTSECPKG_H
#ifdef __cplusplus
extern "C" {
#endif
/* Flags for the MachineState field in SECPKG_PARAMETERS */ /* Flags for the MachineState field in SECPKG_PARAMETERS */
#define SECPKG_STATE_ENCRYPTION_PERMITTED 0x01 #define SECPKG_STATE_ENCRYPTION_PERMITTED 0x01
#define SECPKG_STATE_STRONG_ENCRYPTION_PERMITTED 0x02 #define SECPKG_STATE_STRONG_ENCRYPTION_PERMITTED 0x02
@ -30,6 +34,9 @@
#define SECPKG_INTERFACE_VERSION 0x10000 #define SECPKG_INTERFACE_VERSION 0x10000
#define SECPKG_INTERFACE_VERSION_2 0x20000 #define SECPKG_INTERFACE_VERSION_2 0x20000
#define SECPKG_INTERFACE_VERSION_3 0x40000 #define SECPKG_INTERFACE_VERSION_3 0x40000
#define SECPKG_INTERFACE_VERSION_4 0x80000
#define SECPKG_INTERFACE_VERSION_5 0x100000
#define SECPKG_INTERFACE_VERSION_6 0x200000
/* enum definitions for Secure Service Provider/Authentication Packages */ /* enum definitions for Secure Service Provider/Authentication Packages */
typedef enum _LSA_TOKEN_INFORMATION_TYPE { typedef enum _LSA_TOKEN_INFORMATION_TYPE {
@ -140,6 +147,11 @@ typedef struct _SECPKG_EXTENDED_INFORMATION {
} Info; } Info;
} SECPKG_EXTENDED_INFORMATION, *PSECPKG_EXTENDED_INFORMATION; } SECPKG_EXTENDED_INFORMATION, *PSECPKG_EXTENDED_INFORMATION;
typedef struct _SECPKG_TARGETINFO {
PSID DomainSid;
PCWSTR ComputerName;
} SECPKG_TARGETINFO, *PSECPKG_TARGETINFO;
/* callbacks implemented by SSP/AP dlls and called by the LSA */ /* callbacks implemented by SSP/AP dlls and called by the LSA */
typedef VOID (NTAPI *PLSA_CALLBACK_FUNCTION)(ULONG_PTR, ULONG_PTR, PSecBuffer, typedef VOID (NTAPI *PLSA_CALLBACK_FUNCTION)(ULONG_PTR, ULONG_PTR, PSecBuffer,
PSecBuffer); PSecBuffer);
@ -341,6 +353,18 @@ typedef NTSTATUS (NTAPI SpSetContextAttributesFn)(LSA_SEC_HANDLE, ULONG, PVOID,
ULONG); ULONG);
typedef NTSTATUS (NTAPI SpSetCredentialsAttributesFn)(LSA_SEC_HANDLE, ULONG, typedef NTSTATUS (NTAPI SpSetCredentialsAttributesFn)(LSA_SEC_HANDLE, ULONG,
PVOID, ULONG); PVOID, ULONG);
typedef NTSTATUS (NTAPI SpChangeAccountPasswordFn)(PUNICODE_STRING,
PUNICODE_STRING, PUNICODE_STRING, PUNICODE_STRING, BOOLEAN, PSecBufferDesc);
typedef NTSTATUS (NTAPI SpQueryMetaDataFn)(LSA_SEC_HANDLE, PUNICODE_STRING,
ULONG, PULONG, PUCHAR *, PLSA_SEC_HANDLE);
typedef NTSTATUS (NTAPI SpExchangeMetaDataFn)(LSA_SEC_HANDLE, PUNICODE_STRING,
ULONG, ULONG, PUCHAR, PLSA_SEC_HANDLE);
typedef NTSTATUS (NTAPI SpGetCredUIContextFn)(LSA_SEC_HANDLE, GUID *, PULONG,
PUCHAR *);
typedef NTSTATUS (NTAPI SpUpdateCredentialsFn)(LSA_SEC_HANDLE, GUID *, ULONG,
PUCHAR);
typedef NTSTATUS (NTAPI SpValidateTargetInfoFn)(PLSA_CLIENT_REQUEST, PVOID,
PVOID, ULONG, PSECPKG_TARGETINFO);
/* User-mode functions implemented by SSP/AP obtainable by a dispatch table */ /* User-mode functions implemented by SSP/AP obtainable by a dispatch table */
typedef NTSTATUS (NTAPI SpInstanceInitFn)(ULONG, PSECPKG_DLL_FUNCTIONS, typedef NTSTATUS (NTAPI SpInstanceInitFn)(ULONG, PSECPKG_DLL_FUNCTIONS,
@ -402,6 +426,15 @@ typedef struct SECPKG_FUNCTION_TABLE {
/* Packages with version SECPKG_INTERFACE_VERSION_2 end here */ /* Packages with version SECPKG_INTERFACE_VERSION_2 end here */
SpSetCredentialsAttributesFn *SetCredentialsAttributes; SpSetCredentialsAttributesFn *SetCredentialsAttributes;
/* Packages with version SECPKG_INTERFACE_VERSION_3 end here */ /* Packages with version SECPKG_INTERFACE_VERSION_3 end here */
SpChangeAccountPasswordFn *ChangeAccountPassword;
/* Packages with version SECPKG_INTERFACE_VERSION_4 end here */
SpQueryMetaDataFn *QueryMetaData;
SpExchangeMetaDataFn *ExchangeMetaData;
SpGetCredUIContextFn *GetCredUIContext;
SpUpdateCredentialsFn *UpdateCredentials;
/* Packages with version SECPKG_INTERFACE_VERSION_5 end here */
SpValidateTargetInfoFn *ValidateTargetInfo;
/* Packages with version SECPKG_INTERFACE_VERSION_6 end here */
} SECPKG_FUNCTION_TABLE, } SECPKG_FUNCTION_TABLE,
*PSECPKG_FUNCTION_TABLE; *PSECPKG_FUNCTION_TABLE;
@ -432,4 +465,7 @@ typedef NTSTATUS (NTAPI *SpLsaModeInitializeFn)(ULONG, PULONG,
typedef NTSTATUS (WINAPI *SpUserModeInitializeFn)(ULONG, PULONG, typedef NTSTATUS (WINAPI *SpUserModeInitializeFn)(ULONG, PULONG,
PSECPKG_USER_FUNCTION_TABLE *, PULONG); PSECPKG_USER_FUNCTION_TABLE *, PULONG);
#ifdef __cplusplus
}
#endif
#endif /* _NTSECPKG_H */ #endif /* _NTSECPKG_H */

View file

@ -723,7 +723,13 @@ typedef enum {
WinNonCacheablePrincipalsGroupSid = 73, WinNonCacheablePrincipalsGroupSid = 73,
WinEnterpriseReadonlyControllersSid = 74, WinEnterpriseReadonlyControllersSid = 74,
WinAccountReadonlyControllersSid = 75, WinAccountReadonlyControllersSid = 75,
WinBuiltinEventLogReadersGroup = 76 WinBuiltinEventLogReadersGroup = 76,
WinNewEnterpriseReadonlyControllersSid = 77,
WinBuiltinCertSvcDComAccessGroup = 78,
WinMediumPlusLabelSid = 79,
WinLocalLogonSid = 80,
WinConsoleLogonSid = 81,
WinThisOrganizationCertificateSid = 82,
} WELL_KNOWN_SID_TYPE; } WELL_KNOWN_SID_TYPE;
#define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege") #define SE_CREATE_TOKEN_NAME TEXT("SeCreateTokenPrivilege")
@ -1919,12 +1925,14 @@ typedef struct _GUID {
#define SYSTEM_MANDATORY_LABEL_ACE_TYPE (0x11) #define SYSTEM_MANDATORY_LABEL_ACE_TYPE (0x11)
#define ACCESS_MAX_MS_V5_ACE_TYPE (0x11) #define ACCESS_MAX_MS_V5_ACE_TYPE (0x11)
/* end ntifs.h */ /* end ntifs.h */
typedef struct _GENERIC_MAPPING { typedef struct _GENERIC_MAPPING {
ACCESS_MASK GenericRead; ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite; ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute; ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll; ACCESS_MASK GenericAll;
} GENERIC_MAPPING, *PGENERIC_MAPPING; } GENERIC_MAPPING, *PGENERIC_MAPPING;
typedef struct _ACE_HEADER { typedef struct _ACE_HEADER {
BYTE AceType; BYTE AceType;
BYTE AceFlags; BYTE AceFlags;
@ -1936,31 +1944,36 @@ typedef struct _ACCESS_ALLOWED_ACE {
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} ACCESS_ALLOWED_ACE, *PACCESS_ALLOWED_ACE; } ACCESS_ALLOWED_ACE, *PACCESS_ALLOWED_ACE;
typedef struct _ACCESS_DENIED_ACE { typedef struct _ACCESS_DENIED_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} ACCESS_DENIED_ACE, *PACCESS_DENIED_ACE; } ACCESS_DENIED_ACE, *PACCESS_DENIED_ACE;
typedef struct _SYSTEM_AUDIT_ACE { typedef struct _SYSTEM_AUDIT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} SYSTEM_AUDIT_ACE; } SYSTEM_AUDIT_ACE, *PSYSTEM_AUDIT_ACE;
typedef SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
typedef struct _SYSTEM_ALARM_ACE { typedef struct _SYSTEM_ALARM_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE; } SYSTEM_ALARM_ACE,*PSYSTEM_ALARM_ACE;
typedef struct _SYSTEM_MANDATORY_LABEL_ACE { typedef struct _SYSTEM_MANDATORY_LABEL_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE; } SYSTEM_MANDATORY_LABEL_ACE, *PSYSTEM_MANDATORY_LABEL_ACE;
#define SYSTEM_MANDATORY_LABEL_NO_WRITE_UP 0x1 #define SYSTEM_MANDATORY_LABEL_NO_WRITE_UP 0x1
#define SYSTEM_MANDATORY_LABEL_NO_READ_UP 0x2 #define SYSTEM_MANDATORY_LABEL_NO_READ_UP 0x2
#define SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP 0x4 #define SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP 0x4
#define SYSTEM_MANDATORY_LABEL_VALID_MASK (SYSTEM_MANDATORY_LABEL_NO_WRITE_UP | SYSTEM_MANDATORY_LABEL_NO_READ_UP | SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP) #define SYSTEM_MANDATORY_LABEL_VALID_MASK (SYSTEM_MANDATORY_LABEL_NO_WRITE_UP | SYSTEM_MANDATORY_LABEL_NO_READ_UP | SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP)
typedef struct _ACCESS_ALLOWED_OBJECT_ACE { typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -1969,6 +1982,7 @@ typedef struct _ACCESS_ALLOWED_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} ACCESS_ALLOWED_OBJECT_ACE,*PACCESS_ALLOWED_OBJECT_ACE; } ACCESS_ALLOWED_OBJECT_ACE,*PACCESS_ALLOWED_OBJECT_ACE;
typedef struct _ACCESS_DENIED_OBJECT_ACE { typedef struct _ACCESS_DENIED_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -1977,6 +1991,7 @@ typedef struct _ACCESS_DENIED_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} ACCESS_DENIED_OBJECT_ACE,*PACCESS_DENIED_OBJECT_ACE; } ACCESS_DENIED_OBJECT_ACE,*PACCESS_DENIED_OBJECT_ACE;
typedef struct _SYSTEM_AUDIT_OBJECT_ACE { typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -1985,6 +2000,7 @@ typedef struct _SYSTEM_AUDIT_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} SYSTEM_AUDIT_OBJECT_ACE,*PSYSTEM_AUDIT_OBJECT_ACE; } SYSTEM_AUDIT_OBJECT_ACE,*PSYSTEM_AUDIT_OBJECT_ACE;
typedef struct _SYSTEM_ALARM_OBJECT_ACE { typedef struct _SYSTEM_ALARM_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -1993,26 +2009,31 @@ typedef struct _SYSTEM_ALARM_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE; } SYSTEM_ALARM_OBJECT_ACE,*PSYSTEM_ALARM_OBJECT_ACE;
typedef struct _ACCESS_ALLOWED_CALLBACK_ACE { typedef struct _ACCESS_ALLOWED_CALLBACK_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE; } ACCESS_ALLOWED_CALLBACK_ACE, *PACCESS_ALLOWED_CALLBACK_ACE;
typedef struct _ACCESS_DENIED_CALLBACK_ACE { typedef struct _ACCESS_DENIED_CALLBACK_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE; } ACCESS_DENIED_CALLBACK_ACE, *PACCESS_DENIED_CALLBACK_ACE;
typedef struct _SYSTEM_AUDIT_CALLBACK_ACE { typedef struct _SYSTEM_AUDIT_CALLBACK_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE; } SYSTEM_AUDIT_CALLBACK_ACE, *PSYSTEM_AUDIT_CALLBACK_ACE;
typedef struct _SYSTEM_ALARM_CALLBACK_ACE { typedef struct _SYSTEM_ALARM_CALLBACK_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
DWORD SidStart; DWORD SidStart;
} SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE; } SYSTEM_ALARM_CALLBACK_ACE, *PSYSTEM_ALARM_CALLBACK_ACE;
typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE { typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -2021,6 +2042,7 @@ typedef struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE; } ACCESS_ALLOWED_CALLBACK_OBJECT_ACE, *PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE { typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -2029,6 +2051,7 @@ typedef struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE; } ACCESS_DENIED_CALLBACK_OBJECT_ACE, *PACCESS_DENIED_CALLBACK_OBJECT_ACE;
typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE { typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -2037,6 +2060,7 @@ typedef struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
DWORD SidStart; DWORD SidStart;
} SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE; } SYSTEM_AUDIT_CALLBACK_OBJECT_ACE, *PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE { typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
ACE_HEADER Header; ACE_HEADER Header;
ACCESS_MASK Mask; ACCESS_MASK Mask;
@ -2045,6 +2069,7 @@ typedef struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
GUID InheritedObjectType; GUID InheritedObjectType;
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 _ACL { typedef struct _ACL {
BYTE AclRevision; BYTE AclRevision;
BYTE Sbz1; BYTE Sbz1;
@ -2052,14 +2077,16 @@ typedef struct _ACL {
WORD AceCount; WORD AceCount;
WORD Sbz2; WORD Sbz2;
} ACL,*PACL; } ACL,*PACL;
typedef enum _ACL_INFORMATION_CLASS
{ typedef enum _ACL_INFORMATION_CLASS {
AclRevisionInformation = 1, AclRevisionInformation = 1,
AclSizeInformation AclSizeInformation
} ACL_INFORMATION_CLASS; } ACL_INFORMATION_CLASS;
typedef struct _ACL_REVISION_INFORMATION { typedef struct _ACL_REVISION_INFORMATION {
DWORD AclRevision; DWORD AclRevision;
} ACL_REVISION_INFORMATION, *PACL_REVISION_INFORMATION; } ACL_REVISION_INFORMATION, *PACL_REVISION_INFORMATION;
typedef struct _ACL_SIZE_INFORMATION { typedef struct _ACL_SIZE_INFORMATION {
DWORD AceCount; DWORD AceCount;
DWORD AclBytesInUse; DWORD AclBytesInUse;
@ -2068,35 +2095,33 @@ typedef struct _ACL_SIZE_INFORMATION {
#ifndef _LDT_ENTRY_DEFINED #ifndef _LDT_ENTRY_DEFINED
#define _LDT_ENTRY_DEFINED #define _LDT_ENTRY_DEFINED
typedef struct _LDT_ENTRY
{ typedef struct _LDT_ENTRY {
USHORT LimitLow; WORD LimitLow;
USHORT BaseLow; WORD BaseLow;
union union {
{ struct {
struct BYTE BaseMid;
{ BYTE Flags1;
UCHAR BaseMid; BYTE Flags2;
UCHAR Flags1; BYTE BaseHi;
UCHAR Flags2;
UCHAR BaseHi;
} Bytes; } Bytes;
struct struct {
{ DWORD BaseMid:8;
ULONG BaseMid:8; DWORD Type:5;
ULONG Type:5; DWORD Dpl:2;
ULONG Dpl:2; DWORD Pres:1;
ULONG Pres:1; DWORD LimitHi:4;
ULONG LimitHi:4; DWORD Sys:1;
ULONG Sys:1; DWORD Reserved_0:1;
ULONG Reserved_0:1; DWORD Default_Big:1;
ULONG Default_Big:1; DWORD Granularity:1;
ULONG Granularity:1; DWORD BaseHi:8;
ULONG BaseHi:8;
} Bits; } Bits;
} HighWord; } HighWord;
} LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY; } LDT_ENTRY, *PLDT_ENTRY, *LPLDT_ENTRY;
#endif
#endif /* _LDT_ENTRY_DEFINED */
/* FIXME: add more machines */ /* FIXME: add more machines */
#if defined(_X86_) && !defined(__PowerPC__) #if defined(_X86_) && !defined(__PowerPC__)
@ -2127,6 +2152,7 @@ typedef struct _FLOATING_SAVE_AREA {
BYTE RegisterArea[80]; BYTE RegisterArea[80];
DWORD Cr0NpxState; DWORD Cr0NpxState;
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA; } FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
typedef struct _CONTEXT { typedef struct _CONTEXT {
DWORD ContextFlags; DWORD ContextFlags;
DWORD Dr0; DWORD Dr0;
@ -2892,27 +2918,25 @@ typedef CONTEXT *PCONTEXT,*LPCONTEXT;
#define EXCEPTION_NONCONTINUABLE 1 #define EXCEPTION_NONCONTINUABLE 1
#define EXCEPTION_MAXIMUM_PARAMETERS 15 #define EXCEPTION_MAXIMUM_PARAMETERS 15
typedef struct _EXCEPTION_RECORD { typedef struct _EXCEPTION_RECORD {
DWORD ExceptionCode; DWORD ExceptionCode;
DWORD ExceptionFlags; DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord; struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress; PVOID ExceptionAddress;
DWORD NumberParameters; DWORD NumberParameters;
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD; } EXCEPTION_RECORD, *PEXCEPTION_RECORD;
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; typedef struct _EXCEPTION_RECORD32 {
typedef struct _EXCEPTION_RECORD32 {
DWORD ExceptionCode; DWORD ExceptionCode;
DWORD ExceptionFlags; DWORD ExceptionFlags;
DWORD ExceptionRecord; DWORD ExceptionRecord;
DWORD ExceptionAddress; DWORD ExceptionAddress;
DWORD NumberParameters; DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD32,*PEXCEPTION_RECORD32; } EXCEPTION_RECORD32,*PEXCEPTION_RECORD32;
typedef struct _EXCEPTION_RECORD64 { typedef struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode; DWORD ExceptionCode;
DWORD ExceptionFlags; DWORD ExceptionFlags;
DWORD64 ExceptionRecord; DWORD64 ExceptionRecord;
@ -2920,12 +2944,12 @@ typedef CONTEXT *PCONTEXT,*LPCONTEXT;
DWORD NumberParameters; DWORD NumberParameters;
DWORD __unusedAlignment; DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD64,*PEXCEPTION_RECORD64; } EXCEPTION_RECORD64,*PEXCEPTION_RECORD64;
typedef struct _EXCEPTION_POINTERS { typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord; PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord; PCONTEXT ContextRecord;
} EXCEPTION_POINTERS,*PEXCEPTION_POINTERS, *LPEXCEPTION_POINTERS; } EXCEPTION_POINTERS,*PEXCEPTION_POINTERS, *LPEXCEPTION_POINTERS;
#ifdef _M_PPC #ifdef _M_PPC
#define LARGE_INTEGER_ORDER(x) x HighPart; DWORD LowPart; #define LARGE_INTEGER_ORDER(x) x HighPart; DWORD LowPart;
@ -2960,110 +2984,132 @@ typedef struct _LUID {
} LUID, *PLUID; } LUID, *PLUID;
#include <pshpack4.h> #include <pshpack4.h>
typedef struct _LUID_AND_ATTRIBUTES { typedef struct _LUID_AND_ATTRIBUTES {
LUID Luid; LUID Luid;
DWORD Attributes; DWORD Attributes;
} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES; } LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
#include <poppack.h>
typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY; typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
#include <poppack.h>
typedef struct _PRIVILEGE_SET { typedef struct _PRIVILEGE_SET {
DWORD PrivilegeCount; DWORD PrivilegeCount;
DWORD Control; DWORD Control;
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY]; LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
} PRIVILEGE_SET,*PPRIVILEGE_SET; } PRIVILEGE_SET,*PPRIVILEGE_SET;
typedef struct _SECURITY_ATTRIBUTES { typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength; DWORD nLength;
LPVOID lpSecurityDescriptor; LPVOID lpSecurityDescriptor;
BOOL bInheritHandle; BOOL bInheritHandle;
} SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES; } SECURITY_ATTRIBUTES,*PSECURITY_ATTRIBUTES,*LPSECURITY_ATTRIBUTES;
typedef enum _SECURITY_IMPERSONATION_LEVEL { typedef enum _SECURITY_IMPERSONATION_LEVEL {
SecurityAnonymous, SecurityAnonymous,
SecurityIdentification, SecurityIdentification,
SecurityImpersonation, SecurityImpersonation,
SecurityDelegation SecurityDelegation
} SECURITY_IMPERSONATION_LEVEL,*PSECURITY_IMPERSONATION_LEVEL; } SECURITY_IMPERSONATION_LEVEL,*PSECURITY_IMPERSONATION_LEVEL;
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE; typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE,*PSECURITY_CONTEXT_TRACKING_MODE;
typedef struct _SECURITY_QUALITY_OF_SERVICE { typedef struct _SECURITY_QUALITY_OF_SERVICE {
DWORD Length; DWORD Length;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode; SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
BOOLEAN EffectiveOnly; BOOLEAN EffectiveOnly;
} SECURITY_QUALITY_OF_SERVICE,*PSECURITY_QUALITY_OF_SERVICE; } SECURITY_QUALITY_OF_SERVICE,*PSECURITY_QUALITY_OF_SERVICE;
typedef PVOID PACCESS_TOKEN; typedef PVOID PACCESS_TOKEN;
typedef struct _SE_IMPERSONATION_STATE { typedef struct _SE_IMPERSONATION_STATE {
PACCESS_TOKEN Token; PACCESS_TOKEN Token;
BOOLEAN CopyOnOpen; BOOLEAN CopyOnOpen;
BOOLEAN EffectiveOnly; BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level; SECURITY_IMPERSONATION_LEVEL Level;
} SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE; } SE_IMPERSONATION_STATE,*PSE_IMPERSONATION_STATE;
typedef struct _SID_IDENTIFIER_AUTHORITY { typedef struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6]; BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY; } SID_IDENTIFIER_AUTHORITY,*PSID_IDENTIFIER_AUTHORITY,*LPSID_IDENTIFIER_AUTHORITY;
typedef PVOID PSID; typedef PVOID PSID;
typedef struct _SID { typedef struct _SID {
BYTE Revision; BYTE Revision;
BYTE SubAuthorityCount; BYTE SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority; SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
DWORD SubAuthority[ANYSIZE_ARRAY]; DWORD SubAuthority[ANYSIZE_ARRAY];
} SID, *PISID; } SID, *PISID;
#define SECURITY_MIN_SID_SIZE (sizeof(SID)) #define SECURITY_MIN_SID_SIZE (sizeof(SID))
#define SECURITY_MAX_SID_SIZE (FIELD_OFFSET(SID, SubAuthority) + SID_MAX_SUB_AUTHORITIES * sizeof(DWORD)) #define SECURITY_MAX_SID_SIZE (FIELD_OFFSET(SID, SubAuthority) + SID_MAX_SUB_AUTHORITIES * sizeof(DWORD))
typedef struct _SID_AND_ATTRIBUTES { typedef struct _SID_AND_ATTRIBUTES {
PSID Sid; PSID Sid;
DWORD Attributes; DWORD Attributes;
} SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES; } SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY]; typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY; typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
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_CONTROL { typedef struct _TOKEN_CONTROL {
LUID TokenId; LUID TokenId;
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_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 { typedef struct _TOKEN_GROUPS {
DWORD GroupCount; DWORD GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY]; SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS; } TOKEN_GROUPS,*PTOKEN_GROUPS,*LPTOKEN_GROUPS;
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES { typedef struct _TOKEN_GROUPS_AND_PRIVILEGES {
ULONG SidCount; DWORD SidCount;
ULONG SidLength; DWORD SidLength;
PSID_AND_ATTRIBUTES Sids; PSID_AND_ATTRIBUTES Sids;
ULONG RestrictedSidCount; DWORD RestrictedSidCount;
ULONG RestrictedSidLength; DWORD RestrictedSidLength;
PSID_AND_ATTRIBUTES RestrictedSids; PSID_AND_ATTRIBUTES RestrictedSids;
ULONG PrivilegeCount; DWORD PrivilegeCount;
ULONG PrivilegeLength; DWORD 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;
typedef struct _TOKEN_ORIGIN { typedef struct _TOKEN_ORIGIN {
LUID OriginatingLogonSession; LUID OriginatingLogonSession;
} TOKEN_ORIGIN, *PTOKEN_ORIGIN; } TOKEN_ORIGIN, *PTOKEN_ORIGIN;
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_PRIVILEGES { typedef struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount; DWORD 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 enum tagTOKEN_TYPE { typedef enum tagTOKEN_TYPE {
TokenPrimary = 1, TokenPrimary = 1,
TokenImpersonation TokenImpersonation
} TOKEN_TYPE,*PTOKEN_TYPE; } TOKEN_TYPE,*PTOKEN_TYPE;
#include <pshpack4.h>
typedef struct _TOKEN_STATISTICS { typedef struct _TOKEN_STATISTICS {
LUID TokenId; LUID TokenId;
LUID AuthenticationId; LUID AuthenticationId;
@ -3076,11 +3122,11 @@ typedef struct _TOKEN_STATISTICS {
DWORD PrivilegeCount; DWORD PrivilegeCount;
LUID ModifiedId; LUID ModifiedId;
} TOKEN_STATISTICS, *PTOKEN_STATISTICS; } TOKEN_STATISTICS, *PTOKEN_STATISTICS;
#include <poppack.h>
typedef struct _TOKEN_USER { typedef struct _TOKEN_USER {
SID_AND_ATTRIBUTES User; SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER; } TOKEN_USER, *PTOKEN_USER;
typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION; typedef DWORD SECURITY_INFORMATION,*PSECURITY_INFORMATION;
typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL; typedef WORD SECURITY_DESCRIPTOR_CONTROL,*PSECURITY_DESCRIPTOR_CONTROL;
@ -3097,6 +3143,7 @@ typedef struct _SECURITY_DESCRIPTOR {
} SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR; } SECURITY_DESCRIPTOR, *PISECURITY_DESCRIPTOR;
typedef PVOID PSECURITY_DESCRIPTOR; typedef PVOID PSECURITY_DESCRIPTOR;
#endif #endif
typedef struct _SECURITY_DESCRIPTOR_RELATIVE { typedef struct _SECURITY_DESCRIPTOR_RELATIVE {
BYTE Revision; BYTE Revision;
BYTE Sbz1; BYTE Sbz1;
@ -3140,10 +3187,18 @@ typedef enum _TOKEN_INFORMATION_CLASS {
} TOKEN_INFORMATION_CLASS; } TOKEN_INFORMATION_CLASS;
typedef enum _SID_NAME_USE { typedef enum _SID_NAME_USE {
SidTypeUser=1,SidTypeGroup,SidTypeDomain,SidTypeAlias, SidTypeUser=1,
SidTypeWellKnownGroup,SidTypeDeletedAccount,SidTypeInvalid, SidTypeGroup,
SidTypeUnknown SidTypeDomain,
SidTypeAlias,
SidTypeWellKnownGroup,
SidTypeDeletedAccount,
SidTypeInvalid,
SidTypeUnknown,
SidTypeComputer,
SidTypeLabel
} SID_NAME_USE,*PSID_NAME_USE; } SID_NAME_USE,*PSID_NAME_USE;
typedef struct _QUOTA_LIMITS { typedef struct _QUOTA_LIMITS {
SIZE_T PagedPoolLimit; SIZE_T PagedPoolLimit;
SIZE_T NonPagedPoolLimit; SIZE_T NonPagedPoolLimit;
@ -3152,6 +3207,7 @@ typedef struct _QUOTA_LIMITS {
SIZE_T PagefileLimit; SIZE_T PagefileLimit;
LARGE_INTEGER TimeLimit; LARGE_INTEGER TimeLimit;
} QUOTA_LIMITS,*PQUOTA_LIMITS; } QUOTA_LIMITS,*PQUOTA_LIMITS;
typedef struct _IO_COUNTERS { typedef struct _IO_COUNTERS {
ULONGLONG ReadOperationCount; ULONGLONG ReadOperationCount;
ULONGLONG WriteOperationCount; ULONGLONG WriteOperationCount;
@ -3248,14 +3304,17 @@ typedef struct _MESSAGE_RESOURCE_DATA {
DWORD NumberOfBlocks; DWORD NumberOfBlocks;
MESSAGE_RESOURCE_BLOCK Blocks[1]; MESSAGE_RESOURCE_BLOCK Blocks[1];
} MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA; } MESSAGE_RESOURCE_DATA,*PMESSAGE_RESOURCE_DATA;
typedef struct _LIST_ENTRY { typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink; struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY; } LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
typedef struct _LIST_ENTRY32 { typedef struct _LIST_ENTRY32 {
DWORD Flink; DWORD Flink;
DWORD Blink; DWORD Blink;
} LIST_ENTRY32,*PLIST_ENTRY32; } LIST_ENTRY32,*PLIST_ENTRY32;
typedef struct _LIST_ENTRY64 { typedef struct _LIST_ENTRY64 {
ULONGLONG Flink; ULONGLONG Flink;
ULONGLONG Blink; ULONGLONG Blink;
@ -3432,6 +3491,12 @@ typedef LONG
struct _EXCEPTION_POINTERS *ExceptionInfo struct _EXCEPTION_POINTERS *ExceptionInfo
); );
typedef struct _PROCESSOR_NUMBER {
WORD Group;
BYTE Number;
BYTE Reserved;
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
typedef struct _GROUP_AFFINITY { typedef struct _GROUP_AFFINITY {
KAFFINITY Mask; KAFFINITY Mask;
WORD Group; WORD Group;
@ -4196,10 +4261,10 @@ typedef struct _NT_TIB32 {
DWORD StackBase; DWORD StackBase;
DWORD StackLimit; DWORD StackLimit;
DWORD SubSystemTib; DWORD SubSystemTib;
union { _ANONYMOUS_UNION union {
DWORD FiberData; DWORD FiberData;
DWORD Version; DWORD Version;
}; } DUMMYUNIONNAME;
DWORD ArbitraryUserPointer; DWORD ArbitraryUserPointer;
DWORD Self; DWORD Self;
} NT_TIB32,*PNT_TIB32; } NT_TIB32,*PNT_TIB32;
@ -4209,10 +4274,10 @@ typedef struct _NT_TIB64 {
DWORD64 StackBase; DWORD64 StackBase;
DWORD64 StackLimit; DWORD64 StackLimit;
DWORD64 SubSystemTib; DWORD64 SubSystemTib;
union { _ANONYMOUS_UNION union {
DWORD64 FiberData; DWORD64 FiberData;
DWORD Version; DWORD Version;
}; } DUMMYUNIONNAME;
DWORD64 ArbitraryUserPointer; DWORD64 ArbitraryUserPointer;
DWORD64 Self; DWORD64 Self;
} NT_TIB64,*PNT_TIB64; } NT_TIB64,*PNT_TIB64;
@ -4303,8 +4368,7 @@ typedef enum _JOBOBJECTINFOCLASS {
MaxJobObjectInfoClass MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS; } JOBOBJECTINFOCLASS;
typedef struct _JOB_SET_ARRAY typedef struct _JOB_SET_ARRAY {
{
HANDLE JobHandle; HANDLE JobHandle;
DWORD MemberLevel; DWORD MemberLevel;
DWORD Flags; DWORD Flags;