Fix include of winnt.h and ntdef.h together ... git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@3952 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/ntdef.h b/mingw-w64-headers/include/ntdef.h index e298abf..42e6600 100644 --- a/mingw-w64-headers/include/ntdef.h +++ b/mingw-w64-headers/include/ntdef.h
@@ -43,7 +43,7 @@ #include <excpt.h> #include <sdkddkver.h> -// FIXME: Shouldn't be included! +/* FIXME: Shouldn't be included! */ #include <stdarg.h> #include <string.h> @@ -374,6 +374,8 @@ } DUMMYUNIONNAME; } QUAD, *PQUAD, UQUAD, *PUQUAD; +#ifndef _LARGE_INTEGER_DEFINED +#define _LARGE_INTEGER_DEFINED /* Large Integer Unions */ #if defined(MIDL_PASS) typedef struct _LARGE_INTEGER { @@ -416,6 +418,8 @@ LONG HighPart; } LUID, *PLUID; +#endif /* _LARGE_INTEGER_DEFINED */ + /* Native API Return Value Macros */ #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) #define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1) @@ -539,6 +543,9 @@ WaitAny } WAIT_TYPE; +#ifndef _LIST_ENTRY_DEFINED +#define _LIST_ENTRY_DEFINED + /* Doubly Linked Lists */ typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; @@ -560,6 +567,8 @@ struct _SINGLE_LIST_ENTRY *Next; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; +#endif /* _LIST_ENTRY_DEFINED */ + typedef struct _PROCESSOR_NUMBER { USHORT Group; UCHAR Number; @@ -569,12 +578,15 @@ struct _CONTEXT; struct _EXCEPTION_RECORD; +#ifndef __PEXCEPTION_ROUTINE_DEFINED +#define __PEXCEPTION_ROUTINE_DEFINED typedef EXCEPTION_DISPOSITION (NTAPI *PEXCEPTION_ROUTINE)( struct _EXCEPTION_RECORD *ExceptionRecord, PVOID EstablisherFrame, struct _CONTEXT *ContextRecord, PVOID DispatcherContext); +#endif /* __PEXCEPTION_ROUTINE_DEFINED */ typedef struct _GROUP_AFFINITY { KAFFINITY Mask;
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h index 203c7e5..96caa7c 100644 --- a/mingw-w64-headers/include/winnt.h +++ b/mingw-w64-headers/include/winnt.h
@@ -302,6 +302,9 @@ typedef LONGLONG USN; +#ifndef _LARGE_INTEGER_DEFINED +#define _LARGE_INTEGER_DEFINED + typedef union _LARGE_INTEGER { __MINGW_EXTENSION struct { DWORD LowPart; @@ -335,6 +338,8 @@ LONG HighPart; } LUID,*PLUID; +#endif /* _LARGE_INTEGER_DEFINED */ + #define _DWORDLONG_ typedef ULONGLONG DWORDLONG; typedef DWORDLONG *PDWORDLONG; @@ -412,6 +417,9 @@ #endif typedef BOOLEAN *PBOOLEAN; +#ifndef _LIST_ENTRY_DEFINED +#define _LIST_ENTRY_DEFINED + typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Blink; @@ -433,6 +441,8 @@ } LIST_ENTRY64; typedef LIST_ENTRY64 *PLIST_ENTRY64; +#endif /* _LIST_ENTRY_DEFINED */ + #include <guiddef.h> #ifndef __OBJECTID_DEFINED @@ -2381,11 +2391,15 @@ typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT; typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT; - typedef EXCEPTION_DISPOSITION (*PEXCEPTION_ROUTINE) +#ifndef __PEXCEPTION_ROUTINE_DEFINED +#define __PEXCEPTION_ROUTINE_DEFINED + + typedef EXCEPTION_DISPOSITION (NTAPI *PEXCEPTION_ROUTINE) (PEXCEPTION_RECORD ExceptionRecord, ULONG64 EstablisherFrame, PCONTEXT ContextRecord, PDISPATCHER_CONTEXT DispatcherContext); +#endif /* __PEXCEPTION_ROUTINE_DEFINED */ struct _DISPATCHER_CONTEXT { ULONG64 ControlPc;
diff --git a/mingw-w64-headers/include/winternl.h b/mingw-w64-headers/include/winternl.h index 767d069..832479f 100644 --- a/mingw-w64-headers/include/winternl.h +++ b/mingw-w64-headers/include/winternl.h
@@ -100,9 +100,15 @@ typedef struct _OBJECT_ATTRIBUTES { ULONG Length; +#ifdef _WIN64 + ULONG pad1; +#endif HANDLE RootDirectory; PUNICODE_STRING ObjectName; ULONG Attributes; +#ifdef _WIN64 + ULONG pad2; +#endif PVOID SecurityDescriptor; PVOID SecurityQualityOfService; } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; @@ -709,8 +715,26 @@ } PROCESSINFOCLASS; typedef enum _THREADINFOCLASS { - ThreadIsIoPending = 16 + ThreadBasicInformation, + ThreadTimes, + ThreadPriority, + ThreadBasePriority, + ThreadAffinityMask, + ThreadImpersonationToken, + ThreadDescriptorTableEntry, + ThreadEnableAlignmentFaultFixup, + ThreadEventPair, + ThreadQuerySetWin32StartAddress, + ThreadZeroTlsCell, + ThreadPerformanceCount, + ThreadAmILastThread, + ThreadIdealProcessor, + ThreadPriorityBoost, + ThreadSetTlsArrayAddress, + ThreadIsIoPending, + ThreadHideFromDebugger } THREADINFOCLASS; + typedef THREADINFOCLASS THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS; typedef enum _SYSTEM_INFORMATION_CLASS { SystemBasicInformation = 0,SystemProcessorInformation = 1,SystemPerformanceInformation = 2,SystemTimeOfDayInformation = 3,SystemProcessInformation = 5,