headers: Add new symbols in winnt.h

Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/winnt.h b/mingw-w64-headers/include/winnt.h
index 1b33b07..df87eb1 100644
--- a/mingw-w64-headers/include/winnt.h
+++ b/mingw-w64-headers/include/winnt.h
@@ -411,6 +411,18 @@
 } GROUP_AFFINITY, *PGROUP_AFFINITY;
 #endif /* !___GROUP_AFFINITY_DEFINED */
 
+typedef struct _GROUP_AFFINITY32 {
+  DWORD Mask;
+  WORD Group;
+  WORD Reserved[3];
+} GROUP_AFFINITY32, *PGROUP_AFFINITY32;
+
+typedef struct _GROUP_AFFINITY64 {
+  unsigned __int64 Mask;
+  WORD Group;
+  WORD Reserved[3];
+} GROUP_AFFINITY64, *PGROUP_AFFINITY64;
+
 #ifdef STRICT
   typedef void *HANDLE;
 #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
@@ -916,6 +928,13 @@
 #define PRODUCT_AZURE_SERVER_CLOUDMOS             0xC8
 #define PRODUCT_CLOUDEDITIONN                     0xCA
 #define PRODUCT_CLOUDEDITION                      0xCB
+#define PRODUCT_VALIDATION                        0xCC
+#define PRODUCT_IOTENTERPRISESK                   0xCD
+#define PRODUCT_IOTENTERPRISEK                    0xCE
+#define PRODUCT_IOTENTERPRISESEVAL                0xCF
+#define PRODUCT_AZURE_SERVER_AGENTBRIDGE          0xD0
+#define PRODUCT_AZURE_SERVER_NANOHOST             0xD1
+#define PRODUCT_WNC                               0xD2
 #define PRODUCT_AZURESTACKHCI_SERVER_CORE         0x196
 #define PRODUCT_DATACENTER_SERVER_AZURE_EDITION   0x197
 #define PRODUCT_DATACENTER_SERVER_CORE_AZURE_EDITION 0x198
@@ -1502,6 +1521,13 @@
       DWORD64 Ia32Pl3SspMsr;
     } XSAVE_CET_U_FORMAT, *PXSAVE_CET_U_FORMAT;
 
+    typedef struct _XSAVE_ARM64_SVE_HEADER {
+      DWORD VectorLength;
+      DWORD VectorRegisterOffset;
+      DWORD PredicateRegisterOffset;
+      DWORD Reserved[5];
+    } XSAVE_ARM64_SVE_HEADER, *PXSAVE_ARM64_SVE_HEADER;
+
     typedef struct DECLSPEC_ALIGN (8) _XSAVE_AREA_HEADER {
       DWORD64 Mask;
       DWORD64 Reserved[7];
@@ -1512,10 +1538,13 @@
       XSAVE_AREA_HEADER Header;
     } XSAVE_AREA,*PXSAVE_AREA;
 
+#define XSTATE_CONTEXT_FLAG_LOOKASIDE 0x1
+
     typedef struct _XSTATE_CONTEXT {
       DWORD64 Mask;
       DWORD Length;
-      DWORD Reserved1;
+      BYTE Flags;
+      BYTE Reserved0[3];
       PXSAVE_AREA Area;
 #if defined (__i386__)
       DWORD Reserved2;
@@ -3099,6 +3128,11 @@
       SID_HASH_ENTRY Hash[SID_HASH_SIZE];
     } SID_AND_ATTRIBUTES_HASH, *PSID_AND_ATTRIBUTES_HASH;
 
+    typedef struct _ATTRIBUTES_AND_SID {
+      UINT32 Attributes;
+      DWORD SidStart;
+    } ATTRIBUTES_AND_SID, *PATTRIBUTES_AND_SID;
+
 #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
 #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
 #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
@@ -3202,9 +3236,15 @@
 
 #define SECURITY_CCG_ID_BASE_RID (__MSABI_LONG(0x0000005f))
 #define SECURITY_UMFD_BASE_RID (__MSABI_LONG(0x00000060))
+#define SECURITY_UNIQUIFIED_SERVICE_BASE_RID (__MSABI_LONG(0x00000061))
 
 #define SECURITY_VIRTUALACCOUNT_ID_RID_COUNT (__MSABI_LONG(6))
 
+#define SECURITY_EDGE_CLOUD_INFRASTRUCTURE_SERVICE_ID_BASE_RID (__MSABI_LONG(0x00000062))
+
+#define SECURITY_RESTRICTED_SERVICES_BASE_RID  (__MSABI_LONG(0x00000063))
+#define SECURITY_RESTRICTED_SERVICES_RID_COUNT (__MSABI_LONG(6))
+
 #define SECURITY_MAX_BASE_RID (__MSABI_LONG(0x0000006f))
 
 #define SECURITY_MAX_ALWAYS_FILTERED (__MSABI_LONG(0x000003E7))
@@ -3251,6 +3291,8 @@
 #define DOMAIN_GROUP_RID_PROTECTED_USERS (__MSABI_LONG(0x0000020d))
 #define DOMAIN_GROUP_RID_KEY_ADMINS (__MSABI_LONG(0x0000020e))
 #define DOMAIN_GROUP_RID_ENTERPRISE_KEY_ADMINS (__MSABI_LONG(0x0000020f))
+#define DOMAIN_GROUP_RID_FOREST_TRUSTS (__MSABI_LONG(0x00000210))
+#define DOMAIN_GROUP_RID_EXTERNAL_TRUSTS (__MSABI_LONG(0x00000211))
 
 #define DOMAIN_ALIAS_RID_ADMINS (__MSABI_LONG(0x00000220))
 #define DOMAIN_ALIAS_RID_USERS (__MSABI_LONG(0x00000221))
@@ -3290,6 +3332,8 @@
 #define DOMAIN_ALIAS_RID_DEFAULT_ACCOUNT (__MSABI_LONG(0x00000245))
 #define DOMAIN_ALIAS_RID_STORAGE_REPLICA_ADMINS (__MSABI_LONG(0x00000246))
 #define DOMAIN_ALIAS_RID_DEVICE_OWNERS (__MSABI_LONG(0x00000247))
+#define DOMAIN_ALIAS_RID_USER_MODE_HARDWARE_OPERATORS (__MSABI_LONG(0x00000248))
+#define DOMAIN_ALIAS_RID_OPENSSH_USERS (__MSABI_LONG(0x00000249))
 
 #define SECURITY_APP_PACKAGE_AUTHORITY {0, 0, 0, 0, 0, 15}
 
@@ -3435,7 +3479,9 @@
       WinAuthenticationKeyPropertyMFASid = 116,
       WinAuthenticationKeyPropertyAttestationSid = 117,
       WinAuthenticationFreshKeyAuthSid = 118,
-      WinBuiltinDeviceOwnersSid = 119
+      WinBuiltinDeviceOwnersSid = 119,
+      WinBuiltinUserModeHardwareOperatorsSid = 120,
+      WinBuiltinOpenSSHUsersSid = 121
 } WELL_KNOWN_SID_TYPE;
 
 #define SYSTEM_LUID { 0x3e7, 0x0 }
@@ -6111,8 +6157,72 @@
     } FILE_NOTIFY_FULL_INFORMATION,*PFILE_NOTIFY_FULL_INFORMATION;
 #endif
 
+    typedef struct _FILE_STAT_INFORMATION {
+      LARGE_INTEGER FileId;
+      LARGE_INTEGER CreationTime;
+      LARGE_INTEGER LastAccessTime;
+      LARGE_INTEGER LastWriteTime;
+      LARGE_INTEGER ChangeTime;
+      LARGE_INTEGER AllocationSize;
+      LARGE_INTEGER EndOfFile;
+      DWORD FileAttributes;
+      DWORD ReparseTag;
+      DWORD NumberOfLinks;
+      ACCESS_MASK EffectiveAccess;
+    } FILE_STAT_INFORMATION, *PFILE_STAT_INFORMATION;
+
+#define LX_FILE_METADATA_HAS_UID 0x1
+#define LX_FILE_METADATA_HAS_GID 0x2
+#define LX_FILE_METADATA_HAS_MODE 0x4
+#define LX_FILE_METADATA_HAS_DEVICE_ID 0x8
+#define LX_FILE_CASE_SENSITIVE_DIR 0x10
+
+    typedef struct _FILE_STAT_LX_INFORMATION {
+      LARGE_INTEGER FileId;
+      LARGE_INTEGER CreationTime;
+      LARGE_INTEGER LastAccessTime;
+      LARGE_INTEGER LastWriteTime;
+      LARGE_INTEGER ChangeTime;
+      LARGE_INTEGER AllocationSize;
+      LARGE_INTEGER EndOfFile;
+      DWORD FileAttributes;
+      DWORD ReparseTag;
+      DWORD NumberOfLinks;
+      ACCESS_MASK EffectiveAccess;
+      DWORD LxFlags;
+      DWORD LxUid;
+      DWORD LxGid;
+      DWORD LxMode;
+      DWORD LxDeviceIdMajor;
+      DWORD LxDeviceIdMinor;
+    } FILE_STAT_LX_INFORMATION, *PFILE_STAT_LX_INFORMATION;
+
+#if NTDDI_VERSION >= NTDDI_WIN11_ZN
+    typedef struct _FILE_STAT_BASIC_INFORMATION {
+      LARGE_INTEGER FileId;
+      LARGE_INTEGER CreationTime;
+      LARGE_INTEGER LastAccessTime;
+      LARGE_INTEGER LastWriteTime;
+      LARGE_INTEGER ChangeTime;
+      LARGE_INTEGER AllocationSize;
+      LARGE_INTEGER EndOfFile;
+      DWORD FileAttributes;
+      DWORD ReparseTag;
+      DWORD NumberOfLinks;
+      DWORD DeviceType;
+      DWORD DeviceCharacteristics;
+      DWORD Reserved;
+      LARGE_INTEGER VolumeSerialNumber;
+      FILE_ID_128 FileId128;
+    } FILE_STAT_BASIC_INFORMATION, *PFILE_STAT_BASIC_INFORMATION;
+#endif
+
 #define FILE_CS_FLAG_CASE_SENSITIVE_DIR 0x00000001
 
+    typedef struct _FILE_CASE_SENSITIVE_INFORMATION {
+      DWORD Flags;
+    } FILE_CASE_SENSITIVE_INFORMATION, *PFILE_CASE_SENSITIVE_INFORMATION;
+
     typedef union _FILE_SEGMENT_ELEMENT {
       PVOID64 Buffer;
       ULONGLONG Alignment;
@@ -9240,10 +9350,22 @@
     typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER) (struct _EXCEPTION_POINTERS *ExceptionInfo);
 
     typedef enum _HEAP_INFORMATION_CLASS {
-      HeapCompatibilityInformation,
-      HeapEnableTerminationOnCorruption
+      HeapCompatibilityInformation = 0,
+      HeapEnableTerminationOnCorruption = 1
+#if ((NTDDI_VERSION > NTDDI_WINBLUE) || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+      ,HeapOptimizeResources = 3
+#endif
+      ,HeapTag = 7
     } HEAP_INFORMATION_CLASS;
 
+#if ((NTDDI_VERSION > NTDDI_WINBLUE) || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+#define HEAP_OPTIMIZE_RESOURCES_CURRENT_VERSION 1
+    typedef struct _HEAP_OPTIMIZE_RESOURCES_INFORMATION {
+      DWORD Version;
+      DWORD Flags;
+    } HEAP_OPTIMIZE_RESOURCES_INFORMATION, *PHEAP_OPTIMIZE_RESOURCES_INFORMATION;
+#endif
+
     typedef VOID (NTAPI *WORKERCALLBACKFUNC) (PVOID);
     typedef VOID (NTAPI *APC_CALLBACK_FUNCTION) (DWORD, PVOID, PVOID);
     typedef VOID (NTAPI *WAITORTIMERCALLBACKFUNC) (PVOID, BOOLEAN);