wdm.h: Add some EX_TIMER definitions.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/ddk/include/ddk/wdm.h b/mingw-w64-headers/ddk/include/ddk/wdm.h
index f662678..d79e0e7 100644
--- a/mingw-w64-headers/ddk/include/ddk/wdm.h
+++ b/mingw-w64-headers/ddk/include/ddk/wdm.h
@@ -13453,8 +13453,26 @@
   return;
 }
 
+typedef void *PEXT_CANCEL_PARAMETERS;
+
+typedef void (NTAPI EXT_DELETE_CALLBACK)(void *context);
+typedef EXT_DELETE_CALLBACK *PEXT_DELETE_CALLBACK;
+
+typedef struct _EXT_DELETE_PARAMETERS
+{
+    ULONG Version;
+    ULONG Reserved;
+    PEXT_DELETE_CALLBACK DeleteCallback;
+    void *DeleteContext;
+} EXT_DELETE_PARAMETERS, *PEXT_DELETE_PARAMETERS;
 
 #if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+typedef struct _EX_TIMER *PEX_TIMER;
+
+typedef void (NTAPI EXT_CALLBACK)(PEX_TIMER, PVOID);
+typedef EXT_CALLBACK *PEXT_CALLBACK;
+
 NTKERNELAPI
 VOID
 FASTCALL
@@ -14070,6 +14088,13 @@
 
 #if (NTDDI_VERSION >= NTDDI_WIN7)
 
+typedef struct _EXT_SET_PARAMETERS_V0
+{
+    ULONG Version;
+    ULONG Reserved;
+    LONGLONG NoWakeTolerance;
+} EXT_SET_PARAMETERS, *PEXT_SET_PARAMETERS, KT2_SET_PARAMETERS, *PKT2_SET_PARAMETERS;
+
 NTKERNELAPI
 VOID
 NTAPI
@@ -14082,6 +14107,30 @@
 
 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
 
+#if NTDDI_VERSION >= NTDDI_WINBLUE
+
+#define EX_TIMER_HIGH_RESOLUTION 4
+#define EX_TIMER_NO_WAKE 8
+#define EX_TIMER_UNLIMITED_TOLERANCE ((LONGLONG)-1)
+#define EX_TIMER_NOTIFICATION (1ul << 31)
+
+NTKERNELAPI PEX_TIMER NTAPI ExAllocateTimer(PEXT_CALLBACK callback, void *context, ULONG attr);
+NTKERNELAPI BOOLEAN NTAPI ExCancelTimer(PEX_TIMER timer, PEXT_CANCEL_PARAMETERS params);
+NTKERNELAPI BOOLEAN NTAPI ExDeleteTimer(PEX_TIMER timer, BOOLEAN cancel, BOOLEAN wait, PEXT_DELETE_PARAMETERS params);
+NTKERNELAPI BOOLEAN NTAPI ExSetTimer(PEX_TIMER timer, LONGLONG due, LONGLONG period, EXT_SET_PARAMETERS *params);
+
+FORCEINLINE void KeInitializeTimer2SetParameters(KT2_SET_PARAMETERS *params)
+{
+    memset(params, 0, sizeof(*params));
+}
+
+FORCEINLINE void ExInitializeSetTimerParameters(EXT_SET_PARAMETERS *params)
+{
+    KeInitializeTimer2SetParameters(params);
+}
+
+#endif
+
 static __inline PVOID
 ExAllocateFromNPagedLookasideList(
   IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)