include/cfgmgr32.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/cfgmgr32.h b/mingw-w64-headers/include/cfgmgr32.h
index 9621dba..5a73af5 100644
--- a/mingw-w64-headers/include/cfgmgr32.h
+++ b/mingw-w64-headers/include/cfgmgr32.h
@@ -135,6 +135,9 @@
#define fMD_NonCacheable (0x0)
#define fMD_Cacheable (0x20)
+#define fMD_WINDOW_DECODE (0x40)
+#define fMD_MEMORY_BAR (0x80)
+
typedef struct Mem_Range_s {
DWORDLONG MR_Align;
ULONG MR_nBytes;
@@ -160,6 +163,31 @@
#define MType_Range sizeof(struct Mem_Range_s)
+ typedef struct Mem_Large_Range_s {
+ DWORDLONG MLR_Align;
+ ULONGLONG MLR_nBytes;
+ DWORDLONG MLR_Min;
+ DWORDLONG MLR_Max;
+ DWORD MLR_Flags;
+ DWORD MLR_Reserved;
+ } MEM_LARGE_RANGE, *PMEM_LARGE_RANGE;
+
+ typedef struct Mem_Large_Des_s {
+ DWORD MLD_Count;
+ DWORD MLD_Type;
+ DWORDLONG MLD_Alloc_Base;
+ DWORDLONG MLD_Alloc_End;
+ DWORD MLD_Flags;
+ DWORD MLD_Reserved;
+ } MEM_LARGE_DES, *PMEM_LARGE_DES;
+
+ typedef struct Mem_Large_Resource_s {
+ MEM_LARGE_DES MEM_LARGE_Header;
+ MEM_LARGE_RANGE MEM_LARGE_Data[ANYSIZE_ARRAY];
+ } MEM_LARGE_RESOURCE, *PMEM_LARGE_RESOURCE;
+
+#define MLType_Range sizeof(struct Mem_Large_Range_s)
+
#define fIOD_PortType (0x1)
#define fIOD_Memory (0x0)
#define fIOD_IO (0x1)
@@ -170,6 +198,7 @@
#define fIOD_POSITIVE_DECODE (0x0020)
#define fIOD_PASSIVE_DECODE (0x0040)
#define fIOD_WINDOW_DECODE (0x0080)
+#define fIOD_PORT_BAR (0x0100)
#define IO_ALIAS_10_BIT_DECODE (0x00000004)
#define IO_ALIAS_12_BIT_DECODE (0x00000010)
@@ -252,13 +281,23 @@
typedef struct IRQ_Range_s {
ULONG IRQR_Min;
ULONG IRQR_Max;
+#ifdef NT_PROCESSOR_GROUPS
+ USHORT IRQR_Flags;
+ USHORT IRQR_Rsvdz;
+#else
ULONG IRQR_Flags;
+#endif
} IRQ_RANGE,*PIRQ_RANGE;
typedef struct IRQ_Des_32_s {
DWORD IRQD_Count;
DWORD IRQD_Type;
+#ifdef NT_PROCESSOR_GROUPS
+ USHORT IRQD_Flags;
+ USHORT IRQD_Group;
+#else
DWORD IRQD_Flags;
+#endif
ULONG IRQD_Alloc_Num;
ULONG32 IRQD_Affinity;
} IRQ_DES_32,*PIRQ_DES_32;
@@ -266,7 +305,12 @@
typedef struct IRQ_Des_64_s {
DWORD IRQD_Count;
DWORD IRQD_Type;
+#if defined(NT_PROCESSOR_GROUPS)
+ USHORT IRQD_Flags;
+ USHORT IRQD_Group;
+#else
DWORD IRQD_Flags;
+#endif
ULONG IRQD_Alloc_Num;
ULONG64 IRQD_Affinity;
} IRQ_DES_64,*PIRQ_DES_64;
@@ -299,10 +343,12 @@
#define IRQType_Range sizeof(struct IRQ_Range_s)
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_RESDES_WIDTH_DEFAULT (0x00000000)
#define CM_RESDES_WIDTH_32 (0x00000001)
#define CM_RESDES_WIDTH_64 (0x00000002)
#define CM_RESDES_WIDTH_BITS (0x00000003)
+#endif
typedef struct DevPrivate_Range_s {
DWORD PR_Data1;
@@ -356,6 +402,7 @@
#define fPCD_MEM_WS_TWO (0x200)
#define fPCD_MEM_WS_THREE (0x300)
+#if WINVER >= _WIN32_WINNT_WINXP
#define fPCD_MEM_A (0x4)
#define fPCD_ATTRIBUTES_PER_WINDOW (0x8000)
@@ -384,6 +431,7 @@
#define PCD_MAX_MEMORY 2
#define PCD_MAX_IO 2
+#endif
typedef struct PcCard_Des_s {
DWORD PCD_Count;
@@ -393,9 +441,11 @@
BYTE PCD_Reserved[3];
DWORD PCD_MemoryCardBase1;
DWORD PCD_MemoryCardBase2;
+#if WINVER >= _WIN32_WINNT_WINXP
DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY];
WORD PCD_MemoryFlags[PCD_MAX_MEMORY];
BYTE PCD_IoFlags[PCD_MAX_IO];
+#endif
} PCCARD_DES,*PPCCARD_DES;
typedef struct PcCard_Resource_s {
@@ -441,6 +491,24 @@
#define BusNumberType_Range sizeof(struct BusNumber_Range_s)
+#if WINVER >= _WIN32_WINNT_WIN8
+
+ typedef struct Connection_Des_s {
+ DWORD COND_Type;
+ DWORD COND_Flags;
+ BYTE COND_Class;
+ BYTE COND_ClassType;
+ BYTE COND_Reserved1;
+ BYTE COND_Reserved2;
+ LARGE_INTEGER COND_Id;
+ } CONNECTION_DES, *PCONNECTION_DES;
+
+ typedef struct Connection_Resource_s {
+ CONNECTION_DES Connection_Header;
+ } CONNECTION_RESOURCE, *PCONNECTION_RESOURCE;
+
+#endif
+
#define CM_HWPI_NOT_DOCKABLE (0x00000000)
#define CM_HWPI_UNDOCKED (0x00000001)
#define CM_HWPI_DOCKED (0x00000002)
@@ -470,13 +538,18 @@
#define ResType_IRQ (0x00000004)
#define ResType_DoNotUse (0x00000005)
#define ResType_BusNumber (0x00000006)
-#define ResType_MAX (0x00000006)
+#define ResType_MemLarge (0x00000007)
+#define ResType_MAX (0x00000007)
+
#define ResType_Ignored_Bit (0x00008000)
#define ResType_ClassSpecific (0x0000FFFF)
#define ResType_Reserved (0x00008000)
#define ResType_DevicePrivate (0x00008001)
#define ResType_PcCardConfig (0x00008002)
#define ResType_MfCardConfig (0x00008003)
+#if WINVER >= _WIN32_WINNT_WIN8
+#define ResType_Connection (0x00008004)
+#endif
#define CM_ADD_RANGE_ADDIFCONFLICT (0x00000000)
#define CM_ADD_RANGE_DONOTADDIFCONFLICT (0x00000001)
@@ -519,7 +592,16 @@
#define CM_DELETE_CLASS_ONLY (0x00000000)
#define CM_DELETE_CLASS_SUBKEYS (0x00000001)
-#define CM_DELETE_CLASS_BITS (0x00000001)
+#if WINVER >= _WIN32_WINNT_LONGHORN
+#define CM_DELETE_CLASS_INTERFACE (0x00000002)
+#endif
+#define CM_DELETE_CLASS_BITS (0x00000003)
+
+#if WINVER >= _WIN32_WINNT_WIN8
+#define CM_ENUMERATE_CLASSES_INSTALLER (0x00000000)
+#define CM_ENUMERATE_CLASSES_INTERFACE (0x00000001)
+#define CM_ENUMERATE_CLASSES_BITS (0x00000001)
+#endif
#define CM_DETECT_NEW_PROFILE (0x00000001)
#define CM_DETECT_CRASHED (0x00000002)
@@ -531,6 +613,7 @@
#define CM_DISABLE_ABSOLUTE (0x00000001)
#define CM_DISABLE_HARDWARE (0x00000002)
#define CM_DISABLE_UI_NOT_OK (0x00000004)
+#define CM_DISABLE_PERSIST (0x00000008)
#define CM_DISABLE_BITS (0x00000007)
#define CM_GETIDLIST_FILTER_NONE (0x00000000)
@@ -541,7 +624,15 @@
#define CM_GETIDLIST_FILTER_POWERRELATIONS (0x00000010)
#define CM_GETIDLIST_FILTER_BUSRELATIONS (0x00000020)
#define CM_GETIDLIST_DONOTGENERATE (0x10000040)
+#if WINVER <= _WIN32_WINNT_LONGHORN
#define CM_GETIDLIST_FILTER_BITS (0x1000007F)
+#endif
+#if WINVER >= _WIN32_WINNT_WIN7
+#define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS (0x00000080)
+#define CM_GETIDLIST_FILTER_PRESENT (0x00000100)
+#define CM_GETIDLIST_FILTER_CLASS (0x00000200)
+#define CM_GETIDLIST_FILTER_BITS (0x100003FF)
+#endif
#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT (0x00000000)
#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES (0x00000001)
@@ -565,7 +656,13 @@
#define CM_DRP_CAPABILITIES (0x00000010)
#define CM_DRP_UI_NUMBER (0x00000011)
#define CM_DRP_UPPERFILTERS (0x00000012)
+#if WINVER >= _WIN32_WINNT_LONGHORN
+#define CM_CRP_UPPERFILTERS CM_DRP_UPPERFILTERS
+#endif
#define CM_DRP_LOWERFILTERS (0x00000013)
+#if WINVER >= _WIN32_WINNT_LONGHORN
+#define CM_CRP_LOWERFILTERS CM_DRP_LOWERFILTERS
+#endif
#define CM_DRP_BUSTYPEGUID (0x00000014)
#define CM_DRP_LEGACYBUSTYPE (0x00000015)
#define CM_DRP_BUSNUMBER (0x00000016)
@@ -582,11 +679,19 @@
#define CM_CRP_CHARACTERISTICS CM_DRP_CHARACTERISTICS
#define CM_DRP_ADDRESS (0x0000001D)
#define CM_DRP_UI_NUMBER_DESC_FORMAT (0x0000001E)
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_DRP_DEVICE_POWER_DATA (0x0000001F)
#define CM_DRP_REMOVAL_POLICY (0x00000020)
#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT (0x00000021)
#define CM_DRP_REMOVAL_POLICY_OVERRIDE (0x00000022)
#define CM_DRP_INSTALL_STATE (0x00000023)
+#endif
+#if WINVER >= _WIN32_WINNT_WS03
+#define CM_DRP_LOCATION_PATHS (0x00000024)
+#endif
+#if WINVER >= _WIN32_WINNT_WIN7
+#define CM_DRP_BASE_CONTAINERID (0x00000025)
+#endif
#define CM_DRP_MIN (0x00000001)
#define CM_CRP_MIN CM_DRP_MIN
@@ -603,7 +708,9 @@
#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
#define CM_DEVCAP_HARDWAREDISABLED (0x00000100)
#define CM_DEVCAP_NONDYNAMIC (0x00000200)
+#define CM_DEVCAP_SECUREDEVICE (0x00000400)
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL 1
#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL 2
#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL 3
@@ -612,6 +719,7 @@
#define CM_INSTALL_STATE_NEEDS_REINSTALL 1
#define CM_INSTALL_STATE_FAILED_INSTALL 2
#define CM_INSTALL_STATE_FINISH_INSTALL 3
+#endif
#define CM_LOCATE_DEVNODE_NORMAL 0x00000000
#define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
@@ -640,8 +748,10 @@
#define CM_REENUMERATE_NORMAL 0x00000000
#define CM_REENUMERATE_SYNCHRONOUS 0x00000001
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
#define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
+#endif
#define CM_REENUMERATE_BITS 0x00000007
#define CM_REGISTER_DEVICE_DRIVER_STATIC (0x00000000)
@@ -671,16 +781,113 @@
#define CM_SETUP_DOWNLOAD (0x00000001)
#define CM_SETUP_WRITE_LOG_CONFS (0x00000002)
#define CM_SETUP_PROP_CHANGE (0x00000003)
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_SETUP_DEVNODE_RESET (0x00000004)
#define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET
+#endif
+#if WINVER >= _WIN32_WINNT_WIN8
+#define CM_SETUP_DEVNODE_CONFIG (0x00000005)
+#define CM_SETUP_DEVINST_CONFIG CM_SETUP_DEVNODE_CONFIG
+#define CM_SETUP_DEVNODE_CONFIG_CLASS (0x00000006)
+#define CM_SETUP_DEVINST_CONFIG_CLASS CM_SETUP_DEVNODE_CONFIG_CLASS
+#endif
+#if WINVER >= _WIN32_WINNT_WINBLUE
+#define CM_SETUP_DEVNODE_CONFIG_EXTENSIONS (0x00000007)
+#define CM_SETUP_DEVINST_CONFIG_EXTENSIONS CM_SETUP_DEVNODE_CONFIG_EXTENSIONS
+#endif
+#if WINVER >= _WIN32_WINNT_WINTHRESHOLD
+#define CM_SETUP_DEVNODE_CONFIG_RESET (0x00000008)
+#define CM_SETUP_DEVINST_CONFIG_RESET CM_SETUP_DEVNODE_CONFIG_RESET
+#endif
#define CM_SETUP_BITS (0x00000007)
#define CM_QUERY_ARBITRATOR_RAW (0x00000000)
#define CM_QUERY_ARBITRATOR_TRANSLATED (0x00000001)
#define CM_QUERY_ARBITRATOR_BITS (0x00000001)
+#if WINVER >= _WIN32_WINNT_WINXP
#define CM_CUSTOMDEVPROP_MERGE_MULTISZ (0x00000001)
#define CM_CUSTOMDEVPROP_BITS (0x00000001)
+#endif
+#define CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE (0x1)
+#define CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME (0x2)
+
+#if WINVER >= _WIN32_WINNT_LONGHORN
+#define CM_CLASS_PROPERTY_INSTALLER (0x00000000)
+#define CM_CLASS_PROPERTY_INTERFACE (0x00000001)
+#define CM_CLASS_PROPERTY_BITS (0x00000001)
+#endif
+
+#if WINVER >= _WIN32_WINNT_WIN8
+DECLARE_HANDLE(HCMNOTIFICATION);
+typedef HCMNOTIFICATION *PHCMNOTIFICATION;
+
+#define CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES 0x00000001
+#define CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES 0x00000002
+#define CM_NOTIFY_FILTER_VALID_FLAGS (CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES | CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES)
+
+ typedef enum _CM_NOTIFY_FILTER_TYPE {
+ CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE = 0,
+ CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE,
+ CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE,
+ CM_NOTIFY_FILTER_TYPE_MAX
+ } CM_NOTIFY_FILTER_TYPE, *PCM_NOTIFY_FILTER_TYPE;
+
+ typedef struct _CM_NOTIFY_FILTER {
+ DWORD cbSize;
+ DWORD Flags;
+ CM_NOTIFY_FILTER_TYPE FilterType;
+ DWORD Reserved;
+ union {
+ struct {
+ GUID ClassGuid;
+ } DeviceInterface;
+ struct {
+ HANDLE hTarget;
+ } DeviceHandle;
+ struct {
+ WCHAR InstanceId[MAX_DEVICE_ID_LEN];
+ } DeviceInstance;
+ } u;
+ } CM_NOTIFY_FILTER, *PCM_NOTIFY_FILTER;
+
+ typedef enum _CM_NOTIFY_ACTION {
+ CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
+ CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
+ CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
+ CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
+ CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
+ CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
+ CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
+ CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
+ CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
+ CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
+ CM_NOTIFY_ACTION_MAX
+ } CM_NOTIFY_ACTION, *PCM_NOTIFY_ACTION;
+
+ typedef struct _CM_NOTIFY_EVENT_DATA {
+ CM_NOTIFY_FILTER_TYPE FilterType;
+ DWORD Reserved;
+ union {
+ struct {
+ GUID ClassGuid;
+ WCHAR SymbolicLink[ANYSIZE_ARRAY];
+ } DeviceInterface;
+ struct {
+ GUID EventGuid;
+ LONG NameOffset;
+ DWORD DataSize;
+ BYTE Data[ANYSIZE_ARRAY];
+ } DeviceHandle;
+ struct {
+ WCHAR InstanceId[ANYSIZE_ARRAY];
+ } DeviceInstance;
+ } u;
+ } CM_NOTIFY_EVENT_DATA, *PCM_NOTIFY_EVENT_DATA;
+
+typedef DWORD (CALLBACK *PCM_NOTIFY_CALLBACK)(HCMNOTIFICATION hNotify, PVOID Context, CM_NOTIFY_ACTION Action, PCM_NOTIFY_EVENT_DATA EventData, DWORD EventDataSize);
+
+#endif /* WINVER >= _WIN32_WINNT_WIN8 */
#define CM_Add_ID __MINGW_NAME_AW(CM_Add_ID)
#define CM_Add_ID_Ex __MINGW_NAME_AW(CM_Add_ID_Ex)