[CMAKE]
[reactos.git] / include / psdk / winnt.h
index 469b5f8..50dbd6b 100644 (file)
@@ -79,7 +79,7 @@ extern "C" {
 #elif (_MSC_VER)
 #define FORCEINLINE __inline
 #else
-#define FORCEINLINE static __inline__ __attribute__((always_inline))
+#define FORCEINLINE extern __inline__ __attribute__((always_inline))
 #endif
 #endif
 
@@ -148,8 +148,8 @@ typedef void* __ptr64 PVOID64;
 #endif
 
 typedef wchar_t WCHAR;
-typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR;
-typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR;
+typedef WCHAR *PWCHAR,*LPWCH,*PWCH,*NWPSTR,*LPWSTR,*PWSTR,*PZZWSTR;
+typedef CONST WCHAR *LPCWCH,*PCWCH,*LPCWSTR,*PCWSTR,*PCZZWSTR;
 typedef CHAR *PCHAR,*LPCH,*PCH,*NPSTR,*LPSTR,*PSTR;
 typedef CONST CHAR *LPCCH,*PCCH,*PCSTR,*LPCSTR;
 typedef PWSTR *PZPWSTR;
@@ -161,6 +161,7 @@ typedef PSTR *PZPSTR;
 typedef CONST PSTR *PCZPSTR;
 typedef PCSTR *PZPCSTR;
 
+
 #ifdef UNICODE
 #ifndef _TCHAR_DEFINED
 #define _TCHAR_DEFINED
@@ -742,7 +743,12 @@ typedef enum {
 #define SE_SYSTEM_ENVIRONMENT_NAME     TEXT("SeSystemEnvironmentPrivilege")
 #define SE_CHANGE_NOTIFY_NAME  TEXT("SeChangeNotifyPrivilege")
 #define SE_REMOTE_SHUTDOWN_NAME        TEXT("SeRemoteShutdownPrivilege")
-#define SE_CREATE_GLOBAL_NAME TEXT("SeCreateGlobalPrivilege")
+#define SE_UNDOCK_NAME TEXT("SeUndockPrivilege")
+#define SE_SYNC_AGENT_NAME     TEXT("SeSyncAgentPrivilege")
+#define SE_ENABLE_DELEGATION_NAME      TEXT("SeEnableDelegationPrivilege")
+#define SE_MANAGE_VOLUME_NAME  TEXT("SeManageVolumePrivilege")
+#define SE_IMPERSONATE_NAME    TEXT("SeImpersonatePrivilege")
+#define SE_CREATE_GLOBAL_NAME  TEXT("SeCreateGlobalPrivilege")
 #define SE_GROUP_MANDATORY 1
 #define SE_GROUP_ENABLED_BY_DEFAULT 2
 #define SE_GROUP_ENABLED 4
@@ -981,6 +987,7 @@ typedef enum {
 #define SUBLANG_GREENLANDIC_GREENLAND   0x01
 #define SUBLANG_GUJARATI_INDIA   0x01
 #define SUBLANG_HAUSA_NIGERIA_LATIN   0x01
+#define SUBLANG_HAUSA_NIGERIA   0x01
 #define SUBLANG_HEBREW_ISRAEL   0x01
 #define SUBLANG_HINDI_INDIA   0x01
 #define SUBLANG_HUNGARIAN_HUNGARY   0x01
@@ -1004,8 +1011,10 @@ typedef enum {
 #define SUBLANG_KOREAN   0x01
 #define SUBLANG_KYRGYZ_KYRGYZSTAN   0x01
 #define SUBLANG_LAO_LAO   0x01
+#define SUBLANG_LAO_LAO_PDR  0x01
 #define SUBLANG_LATVIAN_LATVIA   0x01
 #define SUBLANG_LITHUANIAN_LITHUANIA   0x01
+#define SUBLANG_LITHUANIAN   0x01
 #define SUBLANG_LOWER_SORBIAN_GERMANY   0x02
 #define SUBLANG_LUXEMBOURGISH_LUXEMBOURG   0x01
 #define SUBLANG_MACEDONIAN_MACEDONIA   0x01
@@ -1082,6 +1091,7 @@ typedef enum {
 #define SUBLANG_SPANISH_URUGUAY   0x0e
 #define SUBLANG_SPANISH_VENEZUELA   0x08
 #define SUBLANG_SWAHILI   0x01
+#define SUBLANG_SWAHILI_KENYA   0x01
 #define SUBLANG_SWEDISH_FINLAND   0x02
 #define SUBLANG_SWEDISH   0x01
 #define SUBLANG_SWEDISH_SWEDEN   0x01
@@ -1165,6 +1175,21 @@ typedef enum {
 #define PROCESSOR_PPC_603 603
 #define PROCESSOR_PPC_604 604
 #define PROCESSOR_PPC_620 620
+#define PROCESSOR_INTEL_860 860
+#define PROCESSOR_AMD_X8664 8664
+#define PROCESSOR_MIPS_R2000 2000
+#define PROCESSOR_MIPS_R3000 3000
+#define PROCESSOR_HITACHI_SH3 10003
+#define PROCESSOR_HITACHI_SH3E 10004
+#define PROCESSOR_HITACHI_SH4 10005
+#define PROCESSOR_MOTOROLA_821 821
+#define PROCESSOR_SHx_SH3 103
+#define PROCESSOR_SHx_SH4 104
+#define PROCESSOR_STRONGARM 2577
+#define PROCESSOR_ARM720 1824
+#define PROCESSOR_ARM820 2080
+#define PROCESSOR_ARM920 2336
+#define PROCESSOR_ARM_7TDMI 70001
 #define PROCESSOR_ARCHITECTURE_INTEL 0
 #define PROCESSOR_ARCHITECTURE_MIPS 1
 #define PROCESSOR_ARCHITECTURE_ALPHA 2
@@ -1280,6 +1305,8 @@ typedef enum {
 #define SEC_RESERVE    0x04000000
 #define SEC_COMMIT     0x08000000
 #define SEC_NOCACHE    0x10000000
+#define SEC_WRITECOMBINE 0x40000000     
+#define SEC_LARGE_PAGES  0x80000000
 #define SECTION_EXTEND_SIZE 16
 #define SECTION_MAP_READ 4
 #define SECTION_MAP_WRITE 2
@@ -1348,6 +1375,18 @@ typedef enum {
 #define IMAGE_FILE_MACHINE_TRICORE    0x0520
 #define IMAGE_FILE_MACHINE_CEF        0x0CEF
 
+#define IMAGE_FILE_EXPORT_DIRECTORY            0
+#define IMAGE_FILE_IMPORT_DIRECTORY            1
+#define IMAGE_FILE_RESOURCE_DIRECTORY          2
+#define IMAGE_FILE_EXCEPTION_DIRECTORY         3
+#define IMAGE_FILE_SECURITY_DIRECTORY          4
+#define IMAGE_FILE_BASE_RELOCATION_TABLE       5
+#define IMAGE_FILE_DEBUG_DIRECTORY             6
+#define IMAGE_FILE_DESCRIPTION_STRING          7
+#define IMAGE_FILE_MACHINE_VALUE               8  /* Mips */
+#define IMAGE_FILE_THREAD_LOCAL_STORAGE                9
+#define IMAGE_FILE_CALLBACK_DIRECTORY          10
+
 #define IMAGE_DOS_SIGNATURE 0x5A4D
 #define IMAGE_OS2_SIGNATURE 0x454E
 #define IMAGE_OS2_SIGNATURE_LE 0x454C
@@ -1390,6 +1429,9 @@ typedef enum {
 #define IMAGE_SUBSYSTEM_EFI_ROM                     13
 #define IMAGE_SUBSYSTEM_XBOX                        14
 
+#define IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE 0x0040
+#define IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY 0x0080
+#define IMAGE_DLLCHARACTERISTICS_NX_COMPAT 0x0100
 #define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION 0x0200
 #define IMAGE_DLLCHARACTERISTICS_NO_SEH 0x0400
 #define IMAGE_DLLCHARACTERISTICS_NO_BIND 0x0800
@@ -1804,6 +1846,8 @@ typedef enum {
 #define VER_AND 6
 #define VER_OR 7
 #endif
+#define VER_SERVER_NT 0x80000000
+#define VER_WORKSTATION_NT 0x40000000
 #define VER_PLATFORM_WIN32s 0
 #define VER_PLATFORM_WIN32_WINDOWS 1
 #define VER_PLATFORM_WIN32_NT 2
@@ -1813,6 +1857,7 @@ typedef enum {
 #define VER_SUITE_SMALLBUSINESS 1
 #define VER_SUITE_ENTERPRISE 2
 #define VER_SUITE_BACKOFFICE 4
+#define VER_SUITE_COMMUNICATIONS 8
 #define VER_SUITE_TERMINAL 16
 #define VER_SUITE_SMALLBUSINESS_RESTRICTED 32
 #define VER_SUITE_EMBEDDEDNT 64
@@ -1820,6 +1865,11 @@ typedef enum {
 #define VER_SUITE_SINGLEUSERTS 256
 #define VER_SUITE_PERSONAL 512
 #define VER_SUITE_BLADE 1024
+#define VER_SUITE_EMBEDDED_RESTRICTED 2048
+#define VER_SUITE_SECURITY_APPLIANCE 4096
+#define VER_SUITE_STORAGE_SERVER 8192
+#define VER_SUITE_COMPUTE_SERVER 16384
+#define VER_SUITE_WH_SERVER 32768
 #define WT_EXECUTEDEFAULT 0x00000000
 #define WT_EXECUTEINIOTHREAD 0x00000001
 #define WT_EXECUTEINUITHREAD 0x00000002
@@ -2168,7 +2218,6 @@ typedef struct _CONTEXT {
 } CONTEXT;
 #elif defined(__x86_64__)
 
-
 #define CONTEXT_AMD64 0x100000
 
 #if !defined(RC_INVOKED)
@@ -3335,11 +3384,9 @@ typedef struct _SINGLE_LIST_ENTRY {
 
 #if defined(_WIN64)
 
-typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY *PSLIST_ENTRY;
-
 typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
-  PSLIST_ENTRY Next;
-} SLIST_ENTRY;
+  struct _SLIST_ENTRY *Next;
+} SLIST_ENTRY, *PSLIST_ENTRY;
 
 typedef struct _SLIST_ENTRY32 {
   DWORD Next;
@@ -4143,16 +4190,16 @@ typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
     _ANONYMOUS_STRUCT struct {
       DWORD NameOffset:31;
       DWORD NameIsString:1;
-    } DUMMYSTRUCTNAME;
+    } DUMMYSTRUCTNAME1;
     DWORD Name;
     WORD Id;
-  } DUMMYUNIONNAME;
+  } DUMMYUNIONNAME1;
   _ANONYMOUS_UNION union {
     DWORD OffsetToData;
     _ANONYMOUS_STRUCT struct {
       DWORD OffsetToDirectory:31;
       DWORD DataIsDirectory:1;
-    } DUMMYSTRUCTNAME;
+    } DUMMYSTRUCTNAME3;
   } DUMMYUNIONNAME2;
 } IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
 
@@ -4911,50 +4958,6 @@ typedef enum _HEAP_INFORMATION_CLASS {
   HeapEnableTerminationOnCorruption
 } HEAP_INFORMATION_CLASS;
 
-NTSYSAPI
-DWORD
-NTAPI
-RtlSetHeapInformation (
-    IN PVOID HeapHandle,
-    IN HEAP_INFORMATION_CLASS HeapInformationClass,
-    IN PVOID HeapInformation OPTIONAL,
-    IN SIZE_T HeapInformationLength OPTIONAL
-    );
-
-NTSYSAPI
-DWORD
-NTAPI
-RtlQueryHeapInformation (
-    IN PVOID HeapHandle,
-    IN HEAP_INFORMATION_CLASS HeapInformationClass,
-    OUT PVOID HeapInformation OPTIONAL,
-    IN SIZE_T HeapInformationLength OPTIONAL,
-    OUT PSIZE_T ReturnLength OPTIONAL
-    );
-
-//
-//  Multiple alloc-free APIS
-//
-
-DWORD
-NTAPI
-RtlMultipleAllocateHeap (
-    IN PVOID HeapHandle,
-    IN DWORD Flags,
-    IN SIZE_T Size,
-    IN DWORD Count,
-    OUT PVOID * Array
-    );
-
-DWORD
-NTAPI
-RtlMultipleFreeHeap (
-    IN PVOID HeapHandle,
-    IN DWORD Flags,
-    IN DWORD Count,
-    OUT PVOID * Array
-    );
-
 typedef enum _PROCESSOR_CACHE_TYPE {
   CacheUnified,
   CacheInstruction,
@@ -5083,43 +5086,6 @@ static __inline__ PVOID GetCurrentFiber(void)
 }
 #endif
 
-#if defined(_M_IX86)
-static __inline__ struct _TEB * NtCurrentTeb(void)
-{
-    struct _TEB *ret;
-
-    __asm__ __volatile__ (
-        "movl %%fs:0x18, %0\n"
-        : "=r" (ret)
-        : /* no inputs */
-    );
-
-    return ret;
-}
-#elif defined(_M_ARM)
-
-//
-// NT-ARM is not documented
-//
-#include <armddk.h>
-
-#elif defined(_M_AMD64)
-FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
-{
-    return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB, Self));
-}
-#elif defined(_M_PPC)
-static __inline__ struct _TEB * NtCurrentTeb(void)
-{
-    return __readfsdword_winnt(0x18);
-}
-#else
-static __inline__ struct _TEB * NtCurrentTeb(void)
-{
-    return __readfsdword_winnt(0x18);
-}
-#endif
-
 #elif defined(__WATCOMC__)
 
 extern PVOID GetCurrentFiber(void);
@@ -5128,18 +5094,11 @@ extern PVOID GetCurrentFiber(void);
         value [eax] \
         modify [eax];
 
-extern struct _TEB * NtCurrentTeb(void);
-#pragma aux NtCurrentTeb = \
-        "mov   eax, dword ptr fs:0x18" \
-        value [eax] \
-        modify [eax];
-
 #elif defined(_MSC_VER)
 
 #if (_MSC_FULL_VER >= 13012035)
 
 __inline PVOID GetCurrentFiber(void) { return (PVOID)(ULONG_PTR)__readfsdword(0x10); }
-__inline struct _TEB * NtCurrentTeb(void) { return (struct _TEB *)(ULONG_PTR)__readfsdword(0x18); }
 
 #else
 
@@ -5151,18 +5110,12 @@ static __inline PVOID GetCurrentFiber(void)
     return p;
 }
 
-static __inline struct _TEB * NtCurrentTeb(void)
-{
-    struct _TEB *p;
-       __asm mov eax, fs:[18h]
-       __asm mov [p], eax
-    return p;
-}
-
 #endif /* _MSC_FULL_VER */
 
 #endif /* __GNUC__/__WATCOMC__/_MSC_VER */
 
+#include "inline_ntcurrentteb.h"
+
 static __inline PVOID GetFiberData(void)
 {
        return *((PVOID *)GetCurrentFiber());
@@ -5206,11 +5159,11 @@ InterlockedBitTestAndReset(IN LONG volatile *Base,
 #endif
 }
 
+#endif
+
 #define BitScanForward _BitScanForward
 #define BitScanReverse _BitScanReverse
 
-#endif
-
 /* TODO: Other architectures than X86 */
 #if defined(_M_IX86)
 #define PF_TEMPORAL_LEVEL_1