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,