include/cfg.h: add missing defines

Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/cfg.h b/mingw-w64-headers/include/cfg.h
index 878849d..16b3210 100644
--- a/mingw-w64-headers/include/cfg.h
+++ b/mingw-w64-headers/include/cfg.h
@@ -6,11 +6,26 @@
 #ifndef _CFG_INCLUDED_
 #define _CFG_INCLUDED_
 
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
 typedef enum _PNP_VETO_TYPE {
-  PNP_VetoTypeUnknown,PNP_VetoLegacyDevice,PNP_VetoPendingClose,PNP_VetoWindowsApp,PNP_VetoWindowsService,PNP_VetoOutstandingOpen,
-  PNP_VetoDevice,PNP_VetoDriver,PNP_VetoIllegalDeviceRequest,PNP_VetoInsufficientPower,PNP_VetoNonDisableable,PNP_VetoLegacyDriver,
-  PNP_VetoInsufficientRights
-} PNP_VETO_TYPE,*PPNP_VETO_TYPE;
+  PNP_VetoTypeUnknown,
+  PNP_VetoLegacyDevice,
+  PNP_VetoPendingClose,
+  PNP_VetoWindowsApp,
+  PNP_VetoWindowsService,
+  PNP_VetoOutstandingOpen,
+  PNP_VetoDevice,
+  PNP_VetoDriver,
+  PNP_VetoIllegalDeviceRequest,
+  PNP_VetoInsufficientPower,
+  PNP_VetoNonDisableable,
+  PNP_VetoLegacyDriver,
+  PNP_VetoInsufficientRights,
+  PNP_VetoAlreadyRemoved
+} PNP_VETO_TYPE, *PPNP_VETO_TYPE;
 
 #define CM_PROB_NOT_CONFIGURED (0x00000001)
 #define CM_PROB_DEVLOADER_FAILED (0x00000002)
@@ -62,13 +77,52 @@
 #define CM_PROB_DRIVER_BLOCKED (0x00000030)
 #define CM_PROB_REGISTRY_TOO_LARGE (0x00000031)
 #define CM_PROB_SETPROPERTIES_FAILED (0x00000032)
-#define NUM_CM_PROB (0x00000033)
+#define CM_PROB_WAITING_ON_DEPENDENCY (0x00000033)
+#define CM_PROB_UNSIGNED_DRIVER (0x00000034)
+#define CM_PROB_USED_BY_DEBUGGER (0x00000035)
+#define CM_PROB_DEVICE_RESET (0x00000036)
+#define CM_PROB_CONSOLE_LOCKED (0x00000037)
+#define CM_PROB_NEED_CLASS_CONFIG (0x00000038)
+#define CM_PROB_GUEST_ASSIGNMENT_FAILED (0x00000039)
 
 #define CM_GLOBAL_STATE_CAN_DO_UI (0x00000001)
 #define CM_GLOBAL_STATE_ON_BIG_STACK (0x00000002)
 #define CM_GLOBAL_STATE_SERVICES_AVAILABLE (0x00000004)
 #define CM_GLOBAL_STATE_SHUTTING_DOWN (0x00000008)
 #define CM_GLOBAL_STATE_DETECTION_PENDING (0x00000010)
+#if WINVER >= _WIN32_WINNT_WIN7
+#define CM_GLOBAL_STATE_REBOOT_REQUIRED (0x00000020)
+#endif
+
+#define NUM_CM_PROB_V1 (0x00000025)
+#define NUM_CM_PROB_V2 (0x00000032)
+#define NUM_CM_PROB_V3 (0x00000033)
+#define NUM_CM_PROB_V4 (0x00000034)
+#define NUM_CM_PROB_V5 (0x00000035)
+#define NUM_CM_PROB_V6 (0x00000036)
+#define NUM_CM_PROB_V7 (0x00000037)
+#define NUM_CM_PROB_V8 (0x00000039)
+#define NUM_CM_PROB_V9 (0x0000003A)
+
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+#define NUM_CM_PROB NUM_CM_PROB_V9
+#elif NTDDI_VERSION >= NTDDI_WIN10_RS3
+#define NUM_CM_PROB NUM_CM_PROB_V8
+#elif NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define NUM_CM_PROB NUM_CM_PROB_V7
+#elif NTDDI_VERSION >= NTDDI_WINBLUE
+#define NUM_CM_PROB NUM_CM_PROB_V6
+#elif NTDDI_VERSION >= NTDDI_WIN7
+#define NUM_CM_PROB NUM_CM_PROB_V5
+#elif NTDDI_VERSION >= NTDDI_WS08
+#define NUM_CM_PROB NUM_CM_PROB_V4
+#elif NTDDI_VERSION >= NTDDI_WS03
+#define NUM_CM_PROB NUM_CM_PROB_V3
+#elif NTDDI_VERSION >= NTDDI_WINXP
+#define NUM_CM_PROB NUM_CM_PROB_V2
+#elif NTDDI_VERSION >= NTDDI_WIN2K
+#define NUM_CM_PROB NUM_CM_PROB_V1
+#endif
 
 #define DN_ROOT_ENUMERATED (0x00000001)
 #define DN_DRIVER_LOADED (0x00000002)
@@ -105,10 +159,24 @@
 #define DN_NO_SHOW_IN_DM 0x40000000
 #define DN_BOOT_LOG_PROB 0x80000000
 
+#if NTDDI_VERSION >= NTDDI_WIN2K
 #define DN_NEED_RESTART DN_LIAR
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WINXP
 #define DN_DRIVER_BLOCKED DN_NOT_FIRST_TIME
 #define DN_LEGACY_DRIVER DN_MOVED
 #define DN_CHILD_WITH_INVALID_ID DN_HAS_MARK
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN8
+#define DN_DEVICE_DISCONNECTED DN_NEEDS_LOCKING
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10
+#define DN_QUERY_REMOVE_PENDING DN_MF_PARENT
+#define DN_QUERY_REMOVE_ACTIVE DN_MF_CHILD
+#endif
 
 #define DN_CHANGEABLE_FLAGS (DN_NOT_FIRST_TIME+ DN_HARDWARE_ENUM+ DN_HAS_MARK+ DN_DISABLEABLE+ DN_REMOVABLE+ DN_MF_CHILD+ DN_MF_PARENT+ DN_NOT_FIRST_TIMEE+ DN_STOP_FREE_RES+ DN_REBAL_CANDIDATE+ DN_NT_ENUMERATOR+ DN_NT_DRIVER+ DN_SILENT_INSTALL+ DN_NO_SHOW_IN_DM)
 
@@ -127,4 +195,34 @@
 #define LCPRI_IMPOSSIBLE (0x0000F000)
 #define LCPRI_DISABLED (0x0000FFFF)
 #define MAX_LCPRI (0x0000FFFF)
-#endif
+
+#define CM_DEVICE_PANEL_SIDE_UNKNOWN (0x00000000)
+#define CM_DEVICE_PANEL_SIDE_TOP (0x00000001)
+#define CM_DEVICE_PANEL_SIDE_BOTTOM (0x00000002)
+#define CM_DEVICE_PANEL_SIDE_LEFT (0x00000003)
+#define CM_DEVICE_PANEL_SIDE_RIGHT (0x00000004)
+#define CM_DEVICE_PANEL_SIDE_FRONT (0x00000005)
+#define CM_DEVICE_PANEL_SIDE_BACK (0x00000006)
+
+#define CM_DEVICE_PANEL_EDGE_UNKNOWN (0x00000000)
+#define CM_DEVICE_PANEL_EDGE_TOP (0x00000001)
+#define CM_DEVICE_PANEL_EDGE_BOTTOM (0x00000002)
+#define CM_DEVICE_PANEL_EDGE_LEFT (0x00000003)
+#define CM_DEVICE_PANEL_EDGE_RIGHT (0x00000004)
+
+#define CM_DEVICE_PANEL_SHAPE_UNKNOWN (0x00000000)
+#define CM_DEVICE_PANEL_SHAPE_RECTANGLE (0x00000001)
+#define CM_DEVICE_PANEL_SHAPE_OVAL (0x00000002)
+
+#define CM_DEVICE_PANEL_ORIENTATION_HORIZONTAL (0x00000000)
+#define CM_DEVICE_PANEL_ORIENTATION_VERTICAL (0x00000001)
+
+#define CM_DEVICE_PANEL_JOINT_TYPE_UNKNOWN (0x00000000)
+#define CM_DEVICE_PANEL_JOINT_TYPE_PLANAR (0x00000001)
+#define CM_DEVICE_PANEL_JOINT_TYPE_HINGE (0x00000002)
+#define CM_DEVICE_PANEL_JOINT_TYPE_PIVOT (0x00000003)
+#define CM_DEVICE_PANEL_JOINT_TYPE_SWIVEL (0x00000004)
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+
+#endif /* _CFG_INCLUDED_ */