diff --git a/mingw-w64-headers/include/winhvplatform.h b/mingw-w64-headers/include/winhvplatform.h
index 2f38a8c..61f20f6 100644
--- a/mingw-w64-headers/include/winhvplatform.h
+++ b/mingw-w64-headers/include/winhvplatform.h
@@ -44,11 +44,15 @@
 HRESULT WINAPI WHvQueryGpaRangeDirtyBitmap(WHV_PARTITION_HANDLE Partition, WHV_GUEST_PHYSICAL_ADDRESS GuestAddress, UINT64 RangeSizeInBytes, UINT64 *Bitmap, UINT32 BitmapSizeInBytes);
 HRESULT WINAPI WHvGetPartitionCounters(WHV_PARTITION_HANDLE Partition, WHV_PARTITION_COUNTER_SET CounterSet, VOID *Buffer, UINT32 BufferSizeInBytes, UINT32 *BytesWritten);
 HRESULT WINAPI WHvGetVirtualProcessorCounters(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, WHV_PROCESSOR_COUNTER_SET CounterSet, VOID *Buffer, UINT32 BufferSizeInBytes, UINT32 *BytesWritten);
+HRESULT WINAPI WHvGetVirtualProcessorInterruptControllerState2(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, VOID *State, UINT32 StateSize, UINT32 *WrittenSize);
+HRESULT WINAPI WHvSetVirtualProcessorInterruptControllerState2(WHV_PARTITION_HANDLE Partition, UINT32 VpIndex, const VOID *State, UINT32 StateSize);
+HRESULT WINAPI WHvRegisterPartitionDoorbellEvent(WHV_PARTITION_HANDLE Partition, const WHV_DOORBELL_MATCH_DATA *MatchData, HANDLE EventHandle);
+HRESULT WINAPI WHvUnregisterPartitionDoorbellEvent(WHV_PARTITION_HANDLE Partition, const WHV_DOORBELL_MATCH_DATA *MatchData);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
 
-#endif
+#endif /* _WINHVAPI_H_ */
diff --git a/mingw-w64-headers/include/winhvplatformdefs.h b/mingw-w64-headers/include/winhvplatformdefs.h
index ea7d94f..2b62e7e 100644
--- a/mingw-w64-headers/include/winhvplatformdefs.h
+++ b/mingw-w64-headers/include/winhvplatformdefs.h
@@ -11,10 +11,14 @@
     WHvCapabilityCodeFeatures = 0x00000001,
     WHvCapabilityCodeExtendedVmExits = 0x00000002,
     WHvCapabilityCodeExceptionExitBitmap = 0x00000003,
+    WHvCapabilityCodeX64MsrExitBitmap = 0x00000004,
     WHvCapabilityCodeProcessorVendor = 0x00001000,
     WHvCapabilityCodeProcessorFeatures = 0x00001001,
     WHvCapabilityCodeProcessorClFlushSize = 0x00001002,
-    WHvCapabilityCodeProcessorXsaveFeatures = 0x00001003
+    WHvCapabilityCodeProcessorXsaveFeatures = 0x00001003,
+    WHvCapabilityCodeProcessorClockFrequency = 0x00001004,
+    WHvCapabilityCodeInterruptClockFrequency = 0x00001005,
+    WHvCapabilityCodeProcessorFeaturesBanks = 0x00001006
 } WHV_CAPABILITY_CODE;
 
 typedef union WHV_CAPABILITY_FEATURES {
@@ -24,7 +28,9 @@
         UINT64 Xsave : 1;
         UINT64 DirtyPageTracking : 1;
         UINT64 SpeculationControl : 1;
-        UINT64 Reserved : 59;
+        UINT64 ApicRemoteRead : 1;
+        UINT64 IdleSuspend : 1;
+        UINT64 Reserved : 57;
     };
     UINT64 AsUINT64;
 } WHV_CAPABILITY_FEATURES;
@@ -36,7 +42,11 @@
         UINT64 X64CpuidExit : 1;
         UINT64 X64MsrExit : 1;
         UINT64 ExceptionExit : 1;
-        UINT64 Reserved : 61;
+        UINT64 X64RdtscExit : 1;
+        UINT64 X64ApicSmiExitTrap : 1;
+        UINT64 HypercallExit : 1;
+        UINT64 X64ApicInitSipiExitTrap : 1;
+        UINT64 Reserved : 57;
     };
     UINT64 AsUINT64;
 } WHV_EXTENDED_VM_EXITS;
@@ -106,13 +116,45 @@
         UINT64 Reserved4 : 1;
         UINT64 SsbNo : 1;
         UINT64 RsbANo : 1;
-        UINT64 Reserved5 : 8;
+        UINT64 Reserved5 : 1;
+        UINT64 RdPidSupport : 1;
+        UINT64 UmipSupport : 1;
+        UINT64 MdsNoSupport : 1;
+        UINT64 MdClearSupport : 1;
+        UINT64 Reserved6 : 3;
     };
     UINT64 AsUINT64;
 } WHV_PROCESSOR_FEATURES;
 
 C_ASSERT(sizeof(WHV_PROCESSOR_FEATURES) == sizeof(UINT64));
 
+typedef union WHV_PROCESSOR_FEATURES1 {
+    __C89_NAMELESS struct {
+        UINT64 Reserved1 : 2;
+        UINT64 ClZeroSupport : 1;
+        UINT64 Reserved2 : 61;
+    };
+    UINT64 AsUINT64;
+} WHV_PROCESSOR_FEATURES1;
+
+C_ASSERT(sizeof(WHV_PROCESSOR_FEATURES1) == sizeof(UINT64));
+
+#define WHV_PROCESSOR_FEATURES_BANKS_COUNT 2
+
+typedef struct WHV_PROCESSOR_FEATURES_BANKS {
+    UINT32 BanksCount;
+    UINT32 Reserved0;
+    __C89_NAMELESS union {
+        __C89_NAMELESS struct {
+            WHV_PROCESSOR_FEATURES Bank0;
+            WHV_PROCESSOR_FEATURES1 Bank1;
+        };
+        UINT64 AsUINT64[WHV_PROCESSOR_FEATURES_BANKS_COUNT];
+    };
+} WHV_PROCESSOR_FEATURES_BANKS;
+
+C_ASSERT(sizeof(WHV_PROCESSOR_FEATURES_BANKS) == sizeof(UINT64) * (WHV_PROCESSOR_FEATURES_BANKS_COUNT + 1));
+
 typedef union _WHV_PROCESSOR_XSAVE_FEATURES {
     __C89_NAMELESS struct {
         UINT64 XsaveSupport : 1;
@@ -138,13 +180,28 @@
         UINT64 VaesSupport : 1;
         UINT64 Avx512VPopcntdqSupport : 1;
         UINT64 VpclmulqdqSupport : 1;
-        UINT64 Reserved : 41;
+        UINT64 Avx512Bf16Support : 1;
+        UINT64 Avx512Vp2IntersectSupport : 1;
+        UINT64 Reserved : 39;
     };
     UINT64 AsUINT64;
 } WHV_PROCESSOR_XSAVE_FEATURES, *PWHV_PROCESSOR_XSAVE_FEATURES;
 
 C_ASSERT(sizeof(WHV_PROCESSOR_XSAVE_FEATURES) == sizeof(UINT64));
 
+typedef union WHV_X64_MSR_EXIT_BITMAP {
+    UINT64 AsUINT64;
+    __C89_NAMELESS struct {
+        UINT64 UnhandledMsrs : 1;
+        UINT64 TscMsrWrite : 1;
+        UINT64 TscMsrRead : 1;
+        UINT64 ApicBaseMsrWrite : 1;
+        UINT64 Reserved : 60;
+    };
+} WHV_X64_MSR_EXIT_BITMAP;
+
+C_ASSERT(sizeof(WHV_X64_MSR_EXIT_BITMAP) == sizeof(UINT64));
+
 typedef union WHV_CAPABILITY {
     WINBOOL HypervisorPresent;
     WHV_CAPABILITY_FEATURES Features;
@@ -154,6 +211,10 @@
     WHV_PROCESSOR_XSAVE_FEATURES ProcessorXsaveFeatures;
     UINT8 ProcessorClFlushSize;
     UINT64 ExceptionExitBitmap;
+    WHV_X64_MSR_EXIT_BITMAP X64MsrExitBitmap;
+    UINT64 ProcessorClockFrequency;
+    UINT64 InterruptClockFrequency;
+    WHV_PROCESSOR_FEATURES_BANKS ProcessorFeaturesBanks;
 } WHV_CAPABILITY;
 
 typedef VOID* WHV_PARTITION_HANDLE;
@@ -162,12 +223,19 @@
     WHvPartitionPropertyCodeExtendedVmExits = 0x00000001,
     WHvPartitionPropertyCodeExceptionExitBitmap = 0x00000002,
     WHvPartitionPropertyCodeSeparateSecurityDomain = 0x00000003,
+    WHvPartitionPropertyCodeNestedVirtualization = 0x00000004,
+    WHvPartitionPropertyCodeX64MsrExitBitmap = 0x00000005,
     WHvPartitionPropertyCodeProcessorFeatures = 0x00001001,
     WHvPartitionPropertyCodeProcessorClFlushSize = 0x00001002,
     WHvPartitionPropertyCodeCpuidExitList = 0x00001003,
     WHvPartitionPropertyCodeCpuidResultList = 0x00001004,
     WHvPartitionPropertyCodeLocalApicEmulationMode = 0x00001005,
     WHvPartitionPropertyCodeProcessorXsaveFeatures = 0x00001006,
+    WHvPartitionPropertyCodeProcessorClockFrequency = 0x00001007,
+    WHvPartitionPropertyCodeInterruptClockFrequency = 0x00001008,
+    WHvPartitionPropertyCodeApicRemoteReadSupport = 0x00001009,
+    WHvPartitionPropertyCodeProcessorFeaturesBanks = 0x0000100A,
+    WHvPartitionPropertyCodeReferenceTime = 0x0000100B,
     WHvPartitionPropertyCodeProcessorCount = 0x00001fff
 } WHV_PARTITION_PROPERTY_CODE;
 
@@ -202,7 +270,8 @@
 
 typedef enum WHV_X64_LOCAL_APIC_EMULATION_MODE {
     WHvX64LocalApicEmulationModeNone,
-    WHvX64LocalApicEmulationModeXApic
+    WHvX64LocalApicEmulationModeXApic,
+    WHvX64LocalApicEmulationModeX2Apic
 } WHV_X64_LOCAL_APIC_EMULATION_MODE;
 
 typedef union WHV_PARTITION_PROPERTY {
@@ -216,6 +285,13 @@
     UINT64 ExceptionExitBitmap;
     WHV_X64_LOCAL_APIC_EMULATION_MODE LocalApicEmulationMode;
     WINBOOL SeparateSecurityDomain;
+    WINBOOL NestedVirtualization;
+    WHV_X64_MSR_EXIT_BITMAP X64MsrExitBitmap;
+    UINT64 ProcessorClockFrequency;
+    UINT64 InterruptClockFrequency;
+    WINBOOL ApicRemoteRead;
+    WHV_PROCESSOR_FEATURES_BANKS ProcessorFeaturesBanks;
+    UINT64 ReferenceTime;
 } WHV_PARTITION_PROPERTY;
 
 typedef UINT64 WHV_GUEST_PHYSICAL_ADDRESS;
@@ -338,6 +414,7 @@
     WHvX64RegisterLstar = 0x00002009,
     WHvX64RegisterCstar = 0x0000200A,
     WHvX64RegisterSfmask = 0x0000200B,
+    WHvX64RegisterInitialApicId = 0x0000200C,
     WHvX64RegisterMsrMtrrCap = 0x0000200D,
     WHvX64RegisterMsrMtrrDefType = 0x0000200E,
     WHvX64RegisterMsrMtrrPhysBase0 = 0x00002010,
@@ -386,13 +463,15 @@
     WHvX64RegisterTscAux = 0x0000207B,
     WHvX64RegisterSpecCtrl = 0x00002084,
     WHvX64RegisterPredCmd = 0x00002085,
+    WHvX64RegisterTscVirtualOffset = 0x00002087,
     WHvX64RegisterApicId = 0x00003002,
     WHvX64RegisterApicVersion = 0x00003003,
     WHvRegisterPendingInterruption = 0x80000000,
     WHvRegisterInterruptState = 0x80000001,
     WHvRegisterPendingEvent = 0x80000002,
     WHvX64RegisterDeliverabilityNotifications = 0x80000004,
-    WHvRegisterInternalActivityState = 0x80000005
+    WHvRegisterInternalActivityState = 0x80000005,
+    WHvX64RegisterPendingDebugException = 0x80000006
 } WHV_REGISTER_NAME;
 
 typedef union DECLSPEC_ALIGN(16) WHV_UINT128 {
@@ -547,6 +626,32 @@
 
 C_ASSERT(sizeof(WHV_X64_PENDING_EXT_INT_EVENT) == sizeof(WHV_UINT128));
 
+typedef union WHV_INTERNAL_ACTIVITY_REGISTER {
+    __C89_NAMELESS struct {
+        UINT64 StartupSuspend : 1;
+        UINT64 HaltSuspend : 1;
+        UINT64 IdleSuspend : 1;
+        UINT64 Reserved :61;
+    };
+    UINT64 AsUINT64;
+} WHV_INTERNAL_ACTIVITY_REGISTER;
+
+C_ASSERT(sizeof(WHV_INTERNAL_ACTIVITY_REGISTER) == sizeof(UINT64));
+
+typedef union WHV_X64_PENDING_DEBUG_EXCEPTION {
+    UINT64 AsUINT64;
+    __C89_NAMELESS struct {
+        UINT64 Breakpoint0 : 1;
+        UINT64 Breakpoint1 : 1;
+        UINT64 Breakpoint2 : 1;
+        UINT64 Breakpoint3 : 1;
+        UINT64 SingleStep : 1;
+        UINT64 Reserved0 : 59;
+    };
+} WHV_X64_PENDING_DEBUG_EXCEPTION;
+
+C_ASSERT(sizeof(WHV_X64_PENDING_DEBUG_EXCEPTION) == sizeof(UINT64));
+
 typedef union WHV_REGISTER_VALUE {
     WHV_UINT128 Reg128;
     UINT64 Reg64;
@@ -563,6 +668,8 @@
     WHV_X64_DELIVERABILITY_NOTIFICATIONS_REGISTER DeliverabilityNotifications;
     WHV_X64_PENDING_EXCEPTION_EVENT ExceptionEvent;
     WHV_X64_PENDING_EXT_INT_EVENT ExtIntEvent;
+    WHV_INTERNAL_ACTIVITY_REGISTER InternalActivity;
+    WHV_X64_PENDING_DEBUG_EXCEPTION PendingDebugException;
 } WHV_REGISTER_VALUE;
 
 typedef enum WHV_RUN_VP_EXIT_REASON {
@@ -578,6 +685,10 @@
     WHvRunVpExitReasonX64MsrAccess = 0x00001000,
     WHvRunVpExitReasonX64Cpuid = 0x00001001,
     WHvRunVpExitReasonException = 0x00001002,
+    WHvRunVpExitReasonX64Rdtsc = 0x00001003,
+    WHvRunVpExitReasonX64ApicSmiTrap = 0x00001004,
+    WHvRunVpExitReasonHypercall = 0x00001005,
+    WHvRunVpExitReasonX64ApicInitSipiTrap = 0x00001006,
     WHvRunVpExitReasonCanceled = 0x00002001
 } WHV_RUN_VP_EXIT_REASON;
 
@@ -745,6 +856,45 @@
     UINT32 InterruptVector;
 } WHV_X64_APIC_EOI_CONTEXT;
 
+typedef union WHV_X64_RDTSC_INFO {
+    __C89_NAMELESS struct {
+        UINT64 IsRdtscp : 1;
+        UINT64 Reserved : 63;
+    };
+    UINT64 AsUINT64;
+} WHV_X64_RDTSC_INFO;
+
+typedef struct WHV_X64_RDTSC_CONTEXT {
+    UINT64 TscAux;
+    UINT64 VirtualOffset;
+    UINT64 Tsc;
+    UINT64 ReferenceTime;
+    WHV_X64_RDTSC_INFO RdtscInfo;
+} WHV_X64_RDTSC_CONTEXT;
+
+typedef struct WHV_X64_APIC_SMI_CONTEXT {
+    UINT64 ApicIcr;
+} WHV_X64_APIC_SMI_CONTEXT;
+
+#define WHV_HYPERCALL_CONTEXT_MAX_XMM_REGISTERS 6
+
+typedef struct _WHV_HYPERCALL_CONTEXT {
+    UINT64 Rax;
+    UINT64 Rbx;
+    UINT64 Rcx;
+    UINT64 Rdx;
+    UINT64 R8;
+    UINT64 Rsi;
+    UINT64 Rdi;
+    UINT64 Reserved0;
+    WHV_UINT128 XmmRegisters[WHV_HYPERCALL_CONTEXT_MAX_XMM_REGISTERS];
+    UINT64 Reserved1[2];
+} WHV_HYPERCALL_CONTEXT, *PWHV_HYPERCALL_CONTEXT;
+
+typedef struct WHV_X64_APIC_INIT_SIPI_CONTEXT {
+    UINT64 ApicIcr;
+} WHV_X64_APIC_INIT_SIPI_CONTEXT;
+
 typedef struct WHV_RUN_VP_EXIT_CONTEXT {
     WHV_RUN_VP_EXIT_REASON ExitReason;
     UINT32 Reserved;
@@ -759,6 +909,10 @@
         WHV_X64_UNSUPPORTED_FEATURE_CONTEXT UnsupportedFeature;
         WHV_RUN_VP_CANCELED_CONTEXT CancelReason;
         WHV_X64_APIC_EOI_CONTEXT ApicEoi;
+        WHV_X64_RDTSC_CONTEXT ReadTsc;
+        WHV_X64_APIC_SMI_CONTEXT ApicSmi;
+        WHV_HYPERCALL_CONTEXT Hypercall;
+        WHV_X64_APIC_INIT_SIPI_CONTEXT ApicInitSipi;
     };
 } WHV_RUN_VP_EXIT_CONTEXT;
 
@@ -790,6 +944,15 @@
     UINT32 Vector;
 } WHV_INTERRUPT_CONTROL;
 
+typedef struct WHV_DOORBELL_MATCH_DATA {
+    WHV_GUEST_PHYSICAL_ADDRESS GuestAddress;
+    UINT64 Value;
+    UINT32 Length;
+    UINT32 MatchOnValue : 1;
+    UINT32 MatchOnLength : 1;
+    UINT32 Reserved : 30;
+} WHV_DOORBELL_MATCH_DATA;
+
 typedef enum WHV_PARTITION_COUNTER_SET {
     WHvPartitionCounterSetMemory
 } WHV_PARTITION_COUNTER_SET;
@@ -845,4 +1008,4 @@
     UINT64 SelfIpiCount;
 } WHV_PROCESSOR_APIC_COUNTERS;
 
-#endif
+#endif /* _WINHVAPIDEFS_H_ */
