Merge winnt.h
[reactos.git] / reactos / include / psdk / winnt.h
index 149332b..f856b07 100644 (file)
@@ -226,12 +226,7 @@ typedef BYTE FCHAR;
 typedef WORD FSHORT;
 typedef DWORD FLONG;
 
-#define __C_ASSERT_JOIN(X, Y) __C_ASSERT_DO_JOIN(X, Y)
-#define __C_ASSERT_DO_JOIN(X, Y) __C_ASSERT_DO_JOIN2(X, Y)
-#define __C_ASSERT_DO_JOIN2(X, Y) X##Y
-
-#define C_ASSERT(e) typedef char __C_ASSERT_JOIN(__C_ASSERT__, __LINE__)[(e) ? 1 : -1]
-
+#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
 
 #include "intrin.h"
 
@@ -405,7 +400,7 @@ typedef DWORD FLONG;
 #define FILE_CREATE_TREE_CONNECTION    0x00000080
 #define FILE_COMPLETE_IF_OPLOCKED      0x00000100
 #define FILE_NO_EA_KNOWLEDGE           0x00000200
-#define FILE_OPEN_FOR_RECOVERY         0x00000400
+#define FILE_OPEN_REMOTE_INSTANCE      0x00000400
 #define FILE_RANDOM_ACCESS             0x00000800
 #define FILE_DELETE_ON_CLOSE           0x00001000
 #define FILE_OPEN_BY_FILE_ID           0x00002000
@@ -1129,6 +1124,7 @@ typedef enum {
 #define LANG_SYSTEM_DEFAULT    MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT)
 #define LANG_USER_DEFAULT      MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT)
 #define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT)
+#define LOCALE_INVARIANT MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT)
 #define ACL_REVISION   2
 #define ACL_REVISION_DS 4
 #define ACL_REVISION1 1
@@ -3235,6 +3231,15 @@ typedef struct _LIST_ENTRY {
        struct _LIST_ENTRY *Flink;
        struct _LIST_ENTRY *Blink;
 } LIST_ENTRY,*PLIST_ENTRY;
+typedef struct _LIST_ENTRY32 {
+       DWORD Flink;
+       DWORD Blink;
+} LIST_ENTRY32,*PLIST_ENTRY32;
+typedef struct _LIST_ENTRY64 {
+       ULONGLONG Flink;
+       ULONGLONG Blink;
+} LIST_ENTRY64,*PLIST_ENTRY64;
+
 typedef struct _SINGLE_LIST_ENTRY {
        struct _SINGLE_LIST_ENTRY *Next;
 } SINGLE_LIST_ENTRY,*PSINGLE_LIST_ENTRY;
@@ -3245,11 +3250,11 @@ typedef struct _SINGLE_LIST_ENTRY {
 #ifndef _SLIST_HEADER_
 #define _SLIST_HEADER_
 
-#define SLIST_ENTRY SINGLE_LIST_ENTRY
-#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
-#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
-
 #if defined(_WIN64)
+typedef struct _SLIST_ENTRY *PSLIST_ENTRY;
+typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
+       PSLIST_ENTRY Next;
+} SLIST_ENTRY;
 typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
     struct {
         ULONGLONG Alignment;
@@ -3274,6 +3279,9 @@ typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
     } Header16;
 } SLIST_HEADER, *PSLIST_HEADER;
 #else
+#define SLIST_ENTRY SINGLE_LIST_ENTRY
+#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
+#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
 typedef union _SLIST_HEADER {
     ULONGLONG Alignment;
     struct {
@@ -3403,6 +3411,12 @@ typedef LONG
     struct _EXCEPTION_POINTERS *ExceptionInfo
 );
 
+typedef struct _GROUP_AFFINITY {
+  KAFFINITY Mask;
+  WORD Group;
+  WORD Reserved[3];
+} GROUP_AFFINITY, *PGROUP_AFFINITY;
+
 typedef struct _EVENTLOGRECORD {
        DWORD Length;
        DWORD Reserved;
@@ -4154,6 +4168,32 @@ typedef struct _NT_TIB {
        struct _NT_TIB *Self;
 } NT_TIB,*PNT_TIB;
 
+typedef struct _NT_TIB32 {
+       DWORD ExceptionList;
+       DWORD StackBase;
+       DWORD StackLimit;
+       DWORD SubSystemTib;
+       union {
+               DWORD FiberData;
+               DWORD Version;
+       };
+       DWORD ArbitraryUserPointer;
+       DWORD Self;
+} NT_TIB32,*PNT_TIB32;
+
+typedef struct _NT_TIB64 {
+       DWORD64 ExceptionList;
+       DWORD64 StackBase;
+       DWORD64 StackLimit;
+       DWORD64 SubSystemTib;
+       union {
+               DWORD64 FiberData;
+               DWORD Version;
+       };
+       DWORD64 ArbitraryUserPointer;
+       DWORD64 Self;
+} NT_TIB64,*PNT_TIB64;
+
 typedef struct _REPARSE_GUID_DATA_BUFFER {
        DWORD  ReparseTag;
        WORD   ReparseDataLength;