1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _CFGMGR32_H_
7#define _CFGMGR32_H_
8
9#include <_mingw_unicode.h>
10#include <cfg.h>
11#include <guiddef.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#ifndef _CFGMGR32_
18#define CMAPI DECLSPEC_IMPORT
19#else
20#define CMAPI
21#endif
22
23  typedef CONST VOID *PCVOID;
24
25#define MAX_DEVICE_ID_LEN 200
26#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
27#define MAX_GUID_STRING_LEN 39
28#define MAX_CLASS_NAME_LEN 32
29#define MAX_PROFILE_LEN 80
30#define MAX_CONFIG_VALUE 9999
31#define MAX_INSTANCE_VALUE 9999
32#define MAX_MEM_REGISTERS 9
33#define MAX_IO_PORTS 20
34#define MAX_IRQS 7
35#define MAX_DMA_CHANNELS 7
36
37#define DWORD_MAX 0xFFFFFFFF
38#define DWORDLONG_MAX 0xFFFFFFFFFFFFFFFF
39
40#define CONFIGMG_VERSION 0x0400
41
42#ifdef NT_INCLUDED
43  __MINGW_EXTENSION typedef unsigned __int64 DWORDLONG;
44  typedef DWORDLONG *PDWORDLONG;
45#endif
46
47  typedef DWORD RETURN_TYPE;
48  typedef RETURN_TYPE CONFIGRET;
49  typedef DWORD DEVNODE,DEVINST;
50  typedef DEVNODE *PDEVNODE,*PDEVINST;
51  typedef CHAR *DEVNODEID_A,*DEVINSTID_A;
52  typedef WCHAR *DEVNODEID_W,*DEVINSTID_W;
53
54  __MINGW_TYPEDEF_UAW(DEVNODEID)
55  __MINGW_TYPEDEF_UAW(DEVINSTID)
56
57  typedef DWORD_PTR LOG_CONF;
58  typedef LOG_CONF *PLOG_CONF;
59  typedef DWORD_PTR RES_DES;
60  typedef RES_DES *PRES_DES;
61  typedef ULONG RESOURCEID;
62  typedef RESOURCEID *PRESOURCEID;
63  typedef ULONG PRIORITY;
64  typedef PRIORITY *PPRIORITY;
65  typedef DWORD_PTR RANGE_LIST;
66  typedef RANGE_LIST *PRANGE_LIST;
67  typedef DWORD_PTR RANGE_ELEMENT;
68  typedef RANGE_ELEMENT *PRANGE_ELEMENT;
69  typedef HANDLE HMACHINE;
70  typedef HMACHINE *PHMACHINE;
71  typedef ULONG_PTR CONFLICT_LIST;
72  typedef CONFLICT_LIST *PCONFLICT_LIST;
73
74  typedef struct _CONFLICT_DETAILS_A {
75    ULONG CD_ulSize;
76    ULONG CD_ulMask;
77    DEVINST CD_dnDevInst;
78    RES_DES CD_rdResDes;
79    ULONG CD_ulFlags;
80    CHAR CD_szDescription[MAX_PATH];
81  } CONFLICT_DETAILS_A ,*PCONFLICT_DETAILS_A;
82
83  typedef struct _CONFLICT_DETAILS_W {
84    ULONG CD_ulSize;
85    ULONG CD_ulMask;
86    DEVINST CD_dnDevInst;
87    RES_DES CD_rdResDes;
88    ULONG CD_ulFlags;
89    WCHAR CD_szDescription[MAX_PATH];
90  } CONFLICT_DETAILS_W ,*PCONFLICT_DETAILS_W;
91
92  __MINGW_TYPEDEF_UAW(CONFLICT_DETAILS)
93  __MINGW_TYPEDEF_UAW(PCONFLICT_DETAILS)
94
95#define CM_CDMASK_DEVINST (0x00000001)
96#define CM_CDMASK_RESDES (0x00000002)
97#define CM_CDMASK_FLAGS (0x00000004)
98#define CM_CDMASK_DESCRIPTION (0x00000008)
99#define CM_CDMASK_VALID (0x0000000F)
100
101#define CM_CDFLAGS_DRIVER (0x00000001)
102#define CM_CDFLAGS_ROOT_OWNED (0x00000002)
103#define CM_CDFLAGS_RESERVED (0x00000004)
104
105  typedef ULONG REGDISPOSITION;
106
107#include "pshpack1.h"
108
109#define mMD_MemoryType (0x1)
110#define fMD_MemoryType mMD_MemoryType
111#define fMD_ROM (0x0)
112#define fMD_RAM (0x1)
113
114#define mMD_32_24 (0x2)
115#define fMD_32_24 mMD_32_24
116#define fMD_24 (0x0)
117#define fMD_32 (0x2)
118
119#define mMD_Prefetchable (0x4)
120#define fMD_Prefetchable mMD_Prefetchable
121#define fMD_Pref mMD_Prefetchable
122#define fMD_PrefetchDisallowed (0x0)
123#define fMD_PrefetchAllowed (0x4)
124
125#define mMD_Readable (0x8)
126#define fMD_Readable mMD_Readable
127#define fMD_ReadAllowed (0x0)
128#define fMD_ReadDisallowed (0x8)
129
130#define mMD_CombinedWrite (0x10)
131#define fMD_CombinedWrite mMD_CombinedWrite
132#define fMD_CombinedWriteDisallowed (0x0)
133#define fMD_CombinedWriteAllowed (0x10)
134
135#define mMD_Cacheable (0x20)
136#define fMD_NonCacheable (0x0)
137#define fMD_Cacheable (0x20)
138
139  typedef struct Mem_Range_s {
140    DWORDLONG MR_Align;
141    ULONG MR_nBytes;
142    DWORDLONG MR_Min;
143    DWORDLONG MR_Max;
144    DWORD MR_Flags;
145    DWORD MR_Reserved;
146  } MEM_RANGE,*PMEM_RANGE;
147
148  typedef struct Mem_Des_s {
149    DWORD MD_Count;
150    DWORD MD_Type;
151    DWORDLONG MD_Alloc_Base;
152    DWORDLONG MD_Alloc_End;
153    DWORD MD_Flags;
154    DWORD MD_Reserved;
155  } MEM_DES,*PMEM_DES;
156
157  typedef struct Mem_Resource_s {
158    MEM_DES MEM_Header;
159    MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
160  } MEM_RESOURCE,*PMEM_RESOURCE;
161
162#define MType_Range sizeof(struct Mem_Range_s)
163
164#define fIOD_PortType (0x1)
165#define fIOD_Memory (0x0)
166#define fIOD_IO (0x1)
167#define fIOD_DECODE (0x00fc)
168#define fIOD_10_BIT_DECODE (0x0004)
169#define fIOD_12_BIT_DECODE (0x0008)
170#define fIOD_16_BIT_DECODE (0x0010)
171#define fIOD_POSITIVE_DECODE (0x0020)
172#define fIOD_PASSIVE_DECODE (0x0040)
173#define fIOD_WINDOW_DECODE (0x0080)
174
175#define IO_ALIAS_10_BIT_DECODE (0x00000004)
176#define IO_ALIAS_12_BIT_DECODE (0x00000010)
177#define IO_ALIAS_16_BIT_DECODE (0x00000000)
178#define IO_ALIAS_POSITIVE_DECODE (0x000000FF)
179
180  typedef struct IO_Range_s {
181    DWORDLONG IOR_Align;
182    DWORD IOR_nPorts;
183    DWORDLONG IOR_Min;
184    DWORDLONG IOR_Max;
185    DWORD IOR_RangeFlags;
186    DWORDLONG IOR_Alias;
187  } IO_RANGE,*PIO_RANGE;
188
189  typedef struct IO_Des_s {
190    DWORD IOD_Count;
191    DWORD IOD_Type;
192    DWORDLONG IOD_Alloc_Base;
193    DWORDLONG IOD_Alloc_End;
194    DWORD IOD_DesFlags;
195  } IO_DES,*PIO_DES;
196
197  typedef struct IO_Resource_s {
198    IO_DES IO_Header;
199    IO_RANGE IO_Data[ANYSIZE_ARRAY];
200  } IO_RESOURCE,*PIO_RESOURCE;
201
202#define IOA_Local 0xff
203
204#define IOType_Range sizeof(struct IO_Range_s)
205
206#define mDD_Width (0x3)
207#define fDD_BYTE (0x0)
208#define fDD_WORD (0x1)
209#define fDD_DWORD (0x2)
210#define fDD_BYTE_AND_WORD (0x3)
211
212#define mDD_BusMaster (0x4)
213#define fDD_NoBusMaster (0x0)
214#define fDD_BusMaster (0x4)
215
216#define mDD_Type (0x18)
217#define fDD_TypeStandard (0x00)
218#define fDD_TypeA (0x08)
219#define fDD_TypeB (0x10)
220#define fDD_TypeF (0x18)
221
222  typedef struct DMA_Range_s {
223    ULONG DR_Min;
224    ULONG DR_Max;
225    ULONG DR_Flags;
226  } DMA_RANGE,*PDMA_RANGE;
227
228  typedef struct DMA_Des_s {
229    DWORD DD_Count;
230    DWORD DD_Type;
231    DWORD DD_Flags;
232    ULONG DD_Alloc_Chan;
233  } DMA_DES,*PDMA_DES;
234
235  typedef struct DMA_Resource_s {
236    DMA_DES DMA_Header;
237    DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
238  } DMA_RESOURCE,*PDMA_RESOURCE;
239
240#define DType_Range sizeof(struct DMA_Range_s)
241
242#define mIRQD_Share (0x1)
243#define fIRQD_Exclusive (0x0)
244#define fIRQD_Share (0x1)
245
246#define fIRQD_Share_Bit 0
247#define fIRQD_Level_Bit 1
248
249#define mIRQD_Edge_Level (0x2)
250#define fIRQD_Level (0x0)
251#define fIRQD_Edge (0x2)
252
253  typedef struct IRQ_Range_s {
254    ULONG IRQR_Min;
255    ULONG IRQR_Max;
256    ULONG IRQR_Flags;
257  } IRQ_RANGE,*PIRQ_RANGE;
258
259  typedef struct IRQ_Des_32_s {
260    DWORD IRQD_Count;
261    DWORD IRQD_Type;
262    DWORD IRQD_Flags;
263    ULONG IRQD_Alloc_Num;
264    ULONG32 IRQD_Affinity;
265  } IRQ_DES_32,*PIRQ_DES_32;
266
267  typedef struct IRQ_Des_64_s {
268    DWORD IRQD_Count;
269    DWORD IRQD_Type;
270    DWORD IRQD_Flags;
271    ULONG IRQD_Alloc_Num;
272    ULONG64 IRQD_Affinity;
273  } IRQ_DES_64,*PIRQ_DES_64;
274
275#ifdef _WIN64
276  typedef IRQ_DES_64 IRQ_DES;
277  typedef PIRQ_DES_64 PIRQ_DES;
278#else
279  typedef IRQ_DES_32 IRQ_DES;
280  typedef PIRQ_DES_32 PIRQ_DES;
281#endif
282
283  typedef struct IRQ_Resource_32_s {
284    IRQ_DES_32 IRQ_Header;
285    IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
286  } IRQ_RESOURCE_32,*PIRQ_RESOURCE_32;
287
288  typedef struct IRQ_Resource_64_s {
289    IRQ_DES_64 IRQ_Header;
290    IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
291  } IRQ_RESOURCE_64,*PIRQ_RESOURCE_64;
292
293#ifdef _WIN64
294  typedef IRQ_RESOURCE_64 IRQ_RESOURCE;
295  typedef PIRQ_RESOURCE_64 PIRQ_RESOURCE;
296#else
297  typedef IRQ_RESOURCE_32 IRQ_RESOURCE;
298  typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE;
299#endif
300
301#define IRQType_Range sizeof(struct IRQ_Range_s)
302
303#define CM_RESDES_WIDTH_DEFAULT (0x00000000)
304#define CM_RESDES_WIDTH_32 (0x00000001)
305#define CM_RESDES_WIDTH_64 (0x00000002)
306#define CM_RESDES_WIDTH_BITS (0x00000003)
307
308  typedef struct DevPrivate_Range_s {
309    DWORD PR_Data1;
310    DWORD PR_Data2;
311    DWORD PR_Data3;
312  } DEVPRIVATE_RANGE,*PDEVPRIVATE_RANGE;
313
314  typedef struct DevPrivate_Des_s {
315    DWORD PD_Count;
316    DWORD PD_Type;
317    DWORD PD_Data1;
318    DWORD PD_Data2;
319    DWORD PD_Data3;
320    DWORD PD_Flags;
321  } DEVPRIVATE_DES,*PDEVPRIVATE_DES;
322
323  typedef struct DevPrivate_Resource_s {
324    DEVPRIVATE_DES PRV_Header;
325    DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
326  } DEVPRIVATE_RESOURCE,*PDEVPRIVATE_RESOURCE;
327
328#define PType_Range sizeof(struct DevPrivate_Range_s)
329
330  typedef struct CS_Des_s {
331    DWORD CSD_SignatureLength;
332    DWORD CSD_LegacyDataOffset;
333    DWORD CSD_LegacyDataSize;
334    DWORD CSD_Flags;
335    GUID CSD_ClassGuid;
336    BYTE CSD_Signature[ANYSIZE_ARRAY];
337  } CS_DES,*PCS_DES;
338
339  typedef struct CS_Resource_s {
340    CS_DES CS_Header;
341  } CS_RESOURCE,*PCS_RESOURCE;
342
343#define mPCD_IO_8_16 (0x1)
344#define fPCD_IO_8 (0x0)
345#define fPCD_IO_16 (0x1)
346#define mPCD_MEM_8_16 (0x2)
347#define fPCD_MEM_8 (0x0)
348#define fPCD_MEM_16 (0x2)
349#define mPCD_MEM_A_C (0xC)
350#define fPCD_MEM1_A (0x4)
351#define fPCD_MEM2_A (0x8)
352#define fPCD_IO_ZW_8 (0x10)
353#define fPCD_IO_SRC_16 (0x20)
354#define fPCD_IO_WS_16 (0x40)
355#define mPCD_MEM_WS (0x300)
356#define fPCD_MEM_WS_ONE (0x100)
357#define fPCD_MEM_WS_TWO (0x200)
358#define fPCD_MEM_WS_THREE (0x300)
359
360#define fPCD_MEM_A (0x4)
361
362#define fPCD_ATTRIBUTES_PER_WINDOW (0x8000)
363
364#define fPCD_IO1_16 (0x00010000)
365#define fPCD_IO1_ZW_8 (0x00020000)
366#define fPCD_IO1_SRC_16 (0x00040000)
367#define fPCD_IO1_WS_16 (0x00080000)
368
369#define fPCD_IO2_16 (0x00100000)
370#define fPCD_IO2_ZW_8 (0x00200000)
371#define fPCD_IO2_SRC_16 (0x00400000)
372#define fPCD_IO2_WS_16 (0x00800000)
373
374#define mPCD_MEM1_WS (0x03000000)
375#define fPCD_MEM1_WS_ONE (0x01000000)
376#define fPCD_MEM1_WS_TWO (0x02000000)
377#define fPCD_MEM1_WS_THREE (0x03000000)
378#define fPCD_MEM1_16 (0x04000000)
379
380#define mPCD_MEM2_WS (0x30000000)
381#define fPCD_MEM2_WS_ONE (0x10000000)
382#define fPCD_MEM2_WS_TWO (0x20000000)
383#define fPCD_MEM2_WS_THREE (0x30000000)
384#define fPCD_MEM2_16 (0x40000000)
385
386#define PCD_MAX_MEMORY 2
387#define PCD_MAX_IO 2
388
389  typedef struct PcCard_Des_s {
390    DWORD PCD_Count;
391    DWORD PCD_Type;
392    DWORD PCD_Flags;
393    BYTE PCD_ConfigIndex;
394    BYTE PCD_Reserved[3];
395    DWORD PCD_MemoryCardBase1;
396    DWORD PCD_MemoryCardBase2;
397    DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY];
398    WORD PCD_MemoryFlags[PCD_MAX_MEMORY];
399    BYTE PCD_IoFlags[PCD_MAX_IO];
400  } PCCARD_DES,*PPCCARD_DES;
401
402  typedef struct PcCard_Resource_s {
403    PCCARD_DES PcCard_Header;
404  } PCCARD_RESOURCE,*PPCCARD_RESOURCE;
405
406#define mPMF_AUDIO_ENABLE (0x8)
407#define fPMF_AUDIO_ENABLE (0x8)
408
409  typedef struct MfCard_Des_s {
410    DWORD PMF_Count;
411    DWORD PMF_Type;
412    DWORD PMF_Flags;
413    BYTE PMF_ConfigOptions;
414    BYTE PMF_IoResourceIndex;
415    BYTE PMF_Reserved[2];
416    DWORD PMF_ConfigRegisterBase;
417  } MFCARD_DES,*PMFCARD_DES;
418
419  typedef struct MfCard_Resource_s {
420    MFCARD_DES MfCard_Header;
421  } MFCARD_RESOURCE,*PMFCARD_RESOURCE;
422
423  typedef struct BusNumber_Range_s {
424    ULONG BUSR_Min;
425    ULONG BUSR_Max;
426    ULONG BUSR_nBusNumbers;
427    ULONG BUSR_Flags;
428  } BUSNUMBER_RANGE,*PBUSNUMBER_RANGE;
429
430  typedef struct BusNumber_Des_s {
431    DWORD BUSD_Count;
432    DWORD BUSD_Type;
433    DWORD BUSD_Flags;
434    ULONG BUSD_Alloc_Base;
435    ULONG BUSD_Alloc_End;
436  } BUSNUMBER_DES,*PBUSNUMBER_DES;
437
438  typedef struct BusNumber_Resource_s {
439    BUSNUMBER_DES BusNumber_Header;
440    BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
441  } BUSNUMBER_RESOURCE,*PBUSNUMBER_RESOURCE;
442
443#define BusNumberType_Range sizeof(struct BusNumber_Range_s)
444
445#define CM_HWPI_NOT_DOCKABLE (0x00000000)
446#define CM_HWPI_UNDOCKED (0x00000001)
447#define CM_HWPI_DOCKED (0x00000002)
448
449  typedef struct HWProfileInfo_sA {
450    ULONG HWPI_ulHWProfile;
451    CHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
452    DWORD HWPI_dwFlags;
453  } HWPROFILEINFO_A,*PHWPROFILEINFO_A;
454
455  typedef struct HWProfileInfo_sW {
456    ULONG HWPI_ulHWProfile;
457    WCHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
458    DWORD HWPI_dwFlags;
459  } HWPROFILEINFO_W,*PHWPROFILEINFO_W;
460
461  __MINGW_TYPEDEF_UAW(HWPROFILEINFO)
462  __MINGW_TYPEDEF_UAW(PHWPROFILEINFO)
463
464#include "poppack.h"
465
466#define ResType_All (0x00000000)
467#define ResType_None (0x00000000)
468#define ResType_Mem (0x00000001)
469#define ResType_IO (0x00000002)
470#define ResType_DMA (0x00000003)
471#define ResType_IRQ (0x00000004)
472#define ResType_DoNotUse (0x00000005)
473#define ResType_BusNumber (0x00000006)
474#define ResType_MAX (0x00000006)
475#define ResType_Ignored_Bit (0x00008000)
476#define ResType_ClassSpecific (0x0000FFFF)
477#define ResType_Reserved (0x00008000)
478#define ResType_DevicePrivate (0x00008001)
479#define ResType_PcCardConfig (0x00008002)
480#define ResType_MfCardConfig (0x00008003)
481
482#define CM_ADD_RANGE_ADDIFCONFLICT (0x00000000)
483#define CM_ADD_RANGE_DONOTADDIFCONFLICT (0x00000001)
484#define CM_ADD_RANGE_BITS (0x00000001)
485
486#define BASIC_LOG_CONF 0x00000000
487#define FILTERED_LOG_CONF 0x00000001
488#define ALLOC_LOG_CONF 0x00000002
489#define BOOT_LOG_CONF 0x00000003
490#define FORCED_LOG_CONF 0x00000004
491#define OVERRIDE_LOG_CONF 0x00000005
492#define NUM_LOG_CONF 0x00000006
493#define LOG_CONF_BITS 0x00000007
494
495#define PRIORITY_EQUAL_FIRST (0x00000008)
496#define PRIORITY_EQUAL_LAST (0x00000000)
497#define PRIORITY_BIT (0x00000008)
498
499#define RegDisposition_OpenAlways (0x00000000)
500#define RegDisposition_OpenExisting (0x00000001)
501#define RegDisposition_Bits (0x00000001)
502
503#define CM_ADD_ID_HARDWARE (0x00000000)
504#define CM_ADD_ID_COMPATIBLE (0x00000001)
505#define CM_ADD_ID_BITS (0x00000001)
506
507#define CM_CREATE_DEVNODE_NORMAL (0x00000000)
508#define CM_CREATE_DEVNODE_NO_WAIT_INSTALL (0x00000001)
509#define CM_CREATE_DEVNODE_PHANTOM (0x00000002)
510#define CM_CREATE_DEVNODE_GENERATE_ID (0x00000004)
511#define CM_CREATE_DEVNODE_DO_NOT_INSTALL (0x00000008)
512#define CM_CREATE_DEVNODE_BITS (0x0000000F)
513
514#define CM_CREATE_DEVINST_NORMAL CM_CREATE_DEVNODE_NORMAL
515#define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
516#define CM_CREATE_DEVINST_PHANTOM CM_CREATE_DEVNODE_PHANTOM
517#define CM_CREATE_DEVINST_GENERATE_ID CM_CREATE_DEVNODE_GENERATE_ID
518#define CM_CREATE_DEVINST_DO_NOT_INSTALL CM_CREATE_DEVNODE_DO_NOT_INSTALL
519#define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS
520
521#define CM_DELETE_CLASS_ONLY (0x00000000)
522#define CM_DELETE_CLASS_SUBKEYS (0x00000001)
523#define CM_DELETE_CLASS_BITS (0x00000001)
524
525#define CM_DETECT_NEW_PROFILE (0x00000001)
526#define CM_DETECT_CRASHED (0x00000002)
527#define CM_DETECT_HWPROF_FIRST_BOOT (0x00000004)
528#define CM_DETECT_RUN (0x80000000)
529#define CM_DETECT_BITS (0x80000007)
530
531#define CM_DISABLE_POLITE (0x00000000)
532#define CM_DISABLE_ABSOLUTE (0x00000001)
533#define CM_DISABLE_HARDWARE (0x00000002)
534#define CM_DISABLE_UI_NOT_OK (0x00000004)
535#define CM_DISABLE_BITS (0x00000007)
536
537#define CM_GETIDLIST_FILTER_NONE (0x00000000)
538#define CM_GETIDLIST_FILTER_ENUMERATOR (0x00000001)
539#define CM_GETIDLIST_FILTER_SERVICE (0x00000002)
540#define CM_GETIDLIST_FILTER_EJECTRELATIONS (0x00000004)
541#define CM_GETIDLIST_FILTER_REMOVALRELATIONS (0x00000008)
542#define CM_GETIDLIST_FILTER_POWERRELATIONS (0x00000010)
543#define CM_GETIDLIST_FILTER_BUSRELATIONS (0x00000020)
544#define CM_GETIDLIST_DONOTGENERATE (0x10000040)
545#define CM_GETIDLIST_FILTER_BITS (0x1000007F)
546
547#define CM_GET_DEVICE_INTERFACE_LIST_PRESENT (0x00000000)
548#define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES (0x00000001)
549#define CM_GET_DEVICE_INTERFACE_LIST_BITS (0x00000001)
550
551#define CM_DRP_DEVICEDESC (0x00000001)
552#define CM_DRP_HARDWAREID (0x00000002)
553#define CM_DRP_COMPATIBLEIDS (0x00000003)
554#define CM_DRP_UNUSED0 (0x00000004)
555#define CM_DRP_SERVICE (0x00000005)
556#define CM_DRP_UNUSED1 (0x00000006)
557#define CM_DRP_UNUSED2 (0x00000007)
558#define CM_DRP_CLASS (0x00000008)
559#define CM_DRP_CLASSGUID (0x00000009)
560#define CM_DRP_DRIVER (0x0000000A)
561#define CM_DRP_CONFIGFLAGS (0x0000000B)
562#define CM_DRP_MFG (0x0000000C)
563#define CM_DRP_FRIENDLYNAME (0x0000000D)
564#define CM_DRP_LOCATION_INFORMATION (0x0000000E)
565#define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME (0x0000000F)
566#define CM_DRP_CAPABILITIES (0x00000010)
567#define CM_DRP_UI_NUMBER (0x00000011)
568#define CM_DRP_UPPERFILTERS (0x00000012)
569#define CM_DRP_LOWERFILTERS (0x00000013)
570#define CM_DRP_BUSTYPEGUID (0x00000014)
571#define CM_DRP_LEGACYBUSTYPE (0x00000015)
572#define CM_DRP_BUSNUMBER (0x00000016)
573#define CM_DRP_ENUMERATOR_NAME (0x00000017)
574#define CM_DRP_SECURITY (0x00000018)
575#define CM_CRP_SECURITY CM_DRP_SECURITY
576#define CM_DRP_SECURITY_SDS (0x00000019)
577#define CM_CRP_SECURITY_SDS CM_DRP_SECURITY_SDS
578#define CM_DRP_DEVTYPE (0x0000001A)
579#define CM_CRP_DEVTYPE CM_DRP_DEVTYPE
580#define CM_DRP_EXCLUSIVE (0x0000001B)
581#define CM_CRP_EXCLUSIVE CM_DRP_EXCLUSIVE
582#define CM_DRP_CHARACTERISTICS (0x0000001C)
583#define CM_CRP_CHARACTERISTICS CM_DRP_CHARACTERISTICS
584#define CM_DRP_ADDRESS (0x0000001D)
585#define CM_DRP_UI_NUMBER_DESC_FORMAT (0x0000001E)
586#define CM_DRP_DEVICE_POWER_DATA (0x0000001F)
587#define CM_DRP_REMOVAL_POLICY (0x00000020)
588#define CM_DRP_REMOVAL_POLICY_HW_DEFAULT (0x00000021)
589#define CM_DRP_REMOVAL_POLICY_OVERRIDE (0x00000022)
590#define CM_DRP_INSTALL_STATE (0x00000023)
591
592#define CM_DRP_MIN (0x00000001)
593#define CM_CRP_MIN CM_DRP_MIN
594#define CM_DRP_MAX (0x00000023)
595#define CM_CRP_MAX CM_DRP_MAX
596
597#define CM_DEVCAP_LOCKSUPPORTED (0x00000001)
598#define CM_DEVCAP_EJECTSUPPORTED (0x00000002)
599#define CM_DEVCAP_REMOVABLE (0x00000004)
600#define CM_DEVCAP_DOCKDEVICE (0x00000008)
601#define CM_DEVCAP_UNIQUEID (0x00000010)
602#define CM_DEVCAP_SILENTINSTALL (0x00000020)
603#define CM_DEVCAP_RAWDEVICEOK (0x00000040)
604#define CM_DEVCAP_SURPRISEREMOVALOK (0x00000080)
605#define CM_DEVCAP_HARDWAREDISABLED (0x00000100)
606#define CM_DEVCAP_NONDYNAMIC (0x00000200)
607
608#define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL 1
609#define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL 2
610#define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL 3
611
612#define CM_INSTALL_STATE_INSTALLED 0
613#define CM_INSTALL_STATE_NEEDS_REINSTALL 1
614#define CM_INSTALL_STATE_FAILED_INSTALL 2
615#define CM_INSTALL_STATE_FINISH_INSTALL 3
616
617#define CM_LOCATE_DEVNODE_NORMAL 0x00000000
618#define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
619#define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
620#define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
621#define CM_LOCATE_DEVNODE_BITS 0x00000007
622
623#define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
624#define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
625#define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
626#define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
627#define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
628
629#define CM_OPEN_CLASS_KEY_INSTALLER (0x00000000)
630#define CM_OPEN_CLASS_KEY_INTERFACE (0x00000001)
631#define CM_OPEN_CLASS_KEY_BITS (0x00000001)
632
633#define CM_REMOVE_UI_OK 0x00000000
634#define CM_REMOVE_UI_NOT_OK 0x00000001
635#define CM_REMOVE_NO_RESTART 0x00000002
636#define CM_REMOVE_BITS 0x00000003
637
638#define CM_QUERY_REMOVE_UI_OK (CM_REMOVE_UI_OK)
639#define CM_QUERY_REMOVE_UI_NOT_OK (CM_REMOVE_UI_NOT_OK)
640#define CM_QUERY_REMOVE_BITS (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NOT_OK)
641
642#define CM_REENUMERATE_NORMAL 0x00000000
643#define CM_REENUMERATE_SYNCHRONOUS 0x00000001
644#define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
645#define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
646#define CM_REENUMERATE_BITS 0x00000007
647
648#define CM_REGISTER_DEVICE_DRIVER_STATIC (0x00000000)
649#define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE (0x00000001)
650#define CM_REGISTER_DEVICE_DRIVER_REMOVABLE (0x00000002)
651#define CM_REGISTER_DEVICE_DRIVER_BITS (0x00000003)
652
653#define CM_REGISTRY_HARDWARE (0x00000000)
654#define CM_REGISTRY_SOFTWARE (0x00000001)
655#define CM_REGISTRY_USER (0x00000100)
656#define CM_REGISTRY_CONFIG (0x00000200)
657#define CM_REGISTRY_BITS (0x00000301)
658
659#define CM_SET_DEVNODE_PROBLEM_NORMAL (0x00000000)
660#define CM_SET_DEVNODE_PROBLEM_OVERRIDE (0x00000001)
661#define CM_SET_DEVNODE_PROBLEM_BITS (0x00000001)
662
663#define CM_SET_DEVINST_PROBLEM_NORMAL CM_SET_DEVNODE_PROBLEM_NORMAL
664#define CM_SET_DEVINST_PROBLEM_OVERRIDE CM_SET_DEVNODE_PROBLEM_OVERRIDE
665#define CM_SET_DEVINST_PROBLEM_BITS CM_SET_DEVNODE_PROBLEM_BITS
666
667#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK (0x00000001)
668#define CM_SET_HW_PROF_FLAGS_BITS (0x00000001)
669
670#define CM_SETUP_DEVNODE_READY (0x00000000)
671#define CM_SETUP_DEVINST_READY CM_SETUP_DEVNODE_READY
672#define CM_SETUP_DOWNLOAD (0x00000001)
673#define CM_SETUP_WRITE_LOG_CONFS (0x00000002)
674#define CM_SETUP_PROP_CHANGE (0x00000003)
675#define CM_SETUP_DEVNODE_RESET (0x00000004)
676#define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET
677#define CM_SETUP_BITS (0x00000007)
678
679#define CM_QUERY_ARBITRATOR_RAW (0x00000000)
680#define CM_QUERY_ARBITRATOR_TRANSLATED (0x00000001)
681#define CM_QUERY_ARBITRATOR_BITS (0x00000001)
682
683#define CM_CUSTOMDEVPROP_MERGE_MULTISZ (0x00000001)
684#define CM_CUSTOMDEVPROP_BITS (0x00000001)
685
686#define CM_Add_ID __MINGW_NAME_AW(CM_Add_ID)
687#define CM_Add_ID_Ex __MINGW_NAME_AW(CM_Add_ID_Ex)
688#define CM_Connect_Machine __MINGW_NAME_AW(CM_Connect_Machine)
689#define CM_Create_DevNode __MINGW_NAME_AW(CM_Create_DevNode)
690#define CM_Create_DevInst __MINGW_NAME_AW(CM_Create_DevNode)
691#define CM_Create_DevNode_Ex __MINGW_NAME_AW(CM_Create_DevNode_Ex)
692#define CM_Create_DevInst_Ex __MINGW_NAME_AW(CM_Create_DevInst_Ex)
693#define CM_Enumerate_Enumerators __MINGW_NAME_AW(CM_Enumerate_Enumerators)
694#define CM_Enumerate_Enumerators_Ex __MINGW_NAME_AW(CM_Enumerate_Enumerators_Ex)
695#define CM_Get_Class_Name __MINGW_NAME_AW(CM_Get_Class_Name)
696#define CM_Get_Class_Name_Ex __MINGW_NAME_AW(CM_Get_Class_Name_Ex)
697#define CM_Get_Class_Key_Name __MINGW_NAME_AW(CM_Get_Class_Key_Name)
698#define CM_Get_Class_Key_Name_Ex __MINGW_NAME_AW(CM_Get_Class_Key_Name_Ex)
699#define CM_Get_Device_ID __MINGW_NAME_AW(CM_Get_Device_ID)
700#define CM_Get_Device_ID_Ex __MINGW_NAME_AW(CM_Get_Device_ID_Ex)
701#define CM_Get_Device_ID_List __MINGW_NAME_AW(CM_Get_Device_ID_List)
702#define CM_Get_Device_ID_List_Ex __MINGW_NAME_AW(CM_Get_Device_ID_List_Ex)
703#define CM_Get_Device_ID_List_Size __MINGW_NAME_AW(CM_Get_Device_ID_List_Size)
704#define CM_Get_Device_ID_List_Size_Ex __MINGW_NAME_AW(CM_Get_Device_ID_List_Size_Ex)
705#define CM_Get_DevInst_Registry_Property __MINGW_NAME_AW(CM_Get_DevNode_Registry_Property)
706#define CM_Get_DevInst_Registry_Property_Ex __MINGW_NAME_AW(CM_Get_DevNode_Registry_Property_Ex)
707#define CM_Get_DevNode_Registry_Property __MINGW_NAME_AW(CM_Get_DevNode_Registry_Property)
708#define CM_Get_DevNode_Registry_Property_Ex __MINGW_NAME_AW(CM_Get_DevNode_Registry_Property_Ex)
709#define CM_Get_DevInst_Custom_Property __MINGW_NAME_AW(CM_Get_DevNode_Custom_Property)
710#define CM_Get_DevInst_Custom_Property_Ex __MINGW_NAME_AW(CM_Get_DevNode_Custom_Property_Ex)
711#define CM_Get_DevNode_Custom_Property __MINGW_NAME_AW(CM_Get_DevNode_Custom_Property)
712#define CM_Get_DevNode_Custom_Property_Ex __MINGW_NAME_AW(CM_Get_DevNode_Custom_Property_Ex)
713#define CM_Get_Hardware_Profile_Info __MINGW_NAME_AW(CM_Get_Hardware_Profile_Info)
714#define CM_Get_Hardware_Profile_Info_Ex __MINGW_NAME_AW(CM_Get_Hardware_Profile_Info_Ex)
715#define CM_Get_HW_Prof_Flags __MINGW_NAME_AW(CM_Get_HW_Prof_Flags)
716#define CM_Get_HW_Prof_Flags_Ex __MINGW_NAME_AW(CM_Get_HW_Prof_Flags_Ex)
717#define CM_Get_Device_Interface_Alias __MINGW_NAME_AW(CM_Get_Device_Interface_Alias)
718#define CM_Get_Device_Interface_Alias_Ex __MINGW_NAME_AW(CM_Get_Device_Interface_Alias_Ex)
719#define CM_Get_Device_Interface_List __MINGW_NAME_AW(CM_Get_Device_Interface_List)
720#define CM_Get_Device_Interface_List_Ex __MINGW_NAME_AW(CM_Get_Device_Interface_List_Ex)
721#define CM_Get_Device_Interface_List_Size __MINGW_NAME_AW(CM_Get_Device_Interface_List_Size)
722#define CM_Get_Device_Interface_List_Size_Ex __MINGW_NAME_AW(CM_Get_Device_Interface_List_Size_Ex)
723#define CM_Locate_DevNode __MINGW_NAME_AW(CM_Locate_DevNode)
724#define CM_Locate_DevInst __MINGW_NAME_AW(CM_Locate_DevNode)
725#define CM_Locate_DevNode_Ex __MINGW_NAME_AW(CM_Locate_DevNode_Ex)
726#define CM_Locate_DevInst_Ex __MINGW_NAME_AW(CM_Locate_DevNode_Ex)
727#define CM_Open_Class_Key __MINGW_NAME_AW(CM_Open_Class_Key)
728#define CM_Open_Class_Key_Ex __MINGW_NAME_AW(CM_Open_Class_Key_Ex)
729#define CM_Query_And_Remove_SubTree __MINGW_NAME_AW(CM_Query_And_Remove_SubTree)
730#define CM_Query_And_Remove_SubTree_Ex __MINGW_NAME_AW(CM_Query_And_Remove_SubTree_Ex)
731#define CM_Request_Device_Eject __MINGW_NAME_AW(CM_Request_Device_Eject)
732#define CM_Request_Device_Eject_Ex __MINGW_NAME_AW(CM_Request_Device_Eject_Ex)
733#define CM_Register_Device_Interface __MINGW_NAME_AW(CM_Register_Device_Interface)
734#define CM_Register_Device_Interface_Ex __MINGW_NAME_AW(CM_Register_Device_Interface_Ex)
735#define CM_Unregister_Device_Interface __MINGW_NAME_AW(CM_Unregister_Device_Interface)
736#define CM_Unregister_Device_Interface_Ex __MINGW_NAME_AW(CM_Unregister_Device_Interface_Ex)
737#define CM_Set_DevInst_Registry_Property __MINGW_NAME_AW(CM_Set_DevNode_Registry_Property)
738#define CM_Set_DevInst_Registry_Property_Ex __MINGW_NAME_AW(CM_Set_DevNode_Registry_Property_Ex)
739#define CM_Set_DevNode_Registry_Property __MINGW_NAME_AW(CM_Set_DevNode_Registry_Property)
740#define CM_Set_DevNode_Registry_Property_Ex __MINGW_NAME_AW(CM_Set_DevNode_Registry_Property_Ex)
741#define CM_Set_HW_Prof_Flags __MINGW_NAME_AW(CM_Set_HW_Prof_Flags)
742#define CM_Set_HW_Prof_Flags_Ex __MINGW_NAME_AW(CM_Set_HW_Prof_Flags_Ex)
743#define CM_Get_Resource_Conflict_Details __MINGW_NAME_AW(CM_Get_Resource_Conflict_Details)
744#define CM_Get_Class_Registry_Property __MINGW_NAME_AW(CM_Get_Class_Registry_Property)
745#define CM_Set_Class_Registry_Property __MINGW_NAME_AW(CM_Set_Class_Registry_Property)
746
747  CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf(PLOG_CONF plcLogConf,DEVINST dnDevInst,PRIORITY Priority,ULONG ulFlags);
748  CMAPI CONFIGRET WINAPI CM_Add_Empty_Log_Conf_Ex(PLOG_CONF plcLogConf,DEVINST dnDevInst,PRIORITY Priority,ULONG ulFlags,HMACHINE hMachine);
749  CMAPI CONFIGRET WINAPI CM_Add_IDA(DEVINST dnDevInst,PSTR pszID,ULONG ulFlags);
750  CMAPI CONFIGRET WINAPI CM_Add_IDW(DEVINST dnDevInst,PWSTR pszID,ULONG ulFlags);
751  CMAPI CONFIGRET WINAPI CM_Add_ID_ExA(DEVINST dnDevInst,PSTR pszID,ULONG ulFlags,HMACHINE hMachine);
752  CMAPI CONFIGRET WINAPI CM_Add_ID_ExW(DEVINST dnDevInst,PWSTR pszID,ULONG ulFlags,HMACHINE hMachine);
753  CMAPI CONFIGRET WINAPI CM_Add_Range(DWORDLONG ullStartValue,DWORDLONG ullEndValue,RANGE_LIST rlh,ULONG ulFlags);
754  CMAPI CONFIGRET WINAPI CM_Add_Res_Des(PRES_DES prdResDes,LOG_CONF lcLogConf,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,ULONG ulFlags);
755  CMAPI CONFIGRET WINAPI CM_Add_Res_Des_Ex(PRES_DES prdResDes,LOG_CONF lcLogConf,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,ULONG ulFlags,HMACHINE hMachine);
756  CMAPI CONFIGRET WINAPI CM_Connect_MachineA(PCSTR UNCServerName,PHMACHINE phMachine);
757  CMAPI CONFIGRET WINAPI CM_Connect_MachineW(PCWSTR UNCServerName,PHMACHINE phMachine);
758  CMAPI CONFIGRET WINAPI CM_Create_DevNodeA(PDEVINST pdnDevInst,DEVINSTID_A pDeviceID,DEVINST dnParent,ULONG ulFlags);
759  CMAPI CONFIGRET WINAPI CM_Create_DevNodeW(PDEVINST pdnDevInst,DEVINSTID_W pDeviceID,DEVINST dnParent,ULONG ulFlags);
760  CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExA(PDEVINST pdnDevInst,DEVINSTID_A pDeviceID,DEVINST dnParent,ULONG ulFlags,HANDLE hMachine);
761  CMAPI CONFIGRET WINAPI CM_Create_DevNode_ExW(PDEVINST pdnDevInst,DEVINSTID_W pDeviceID,DEVINST dnParent,ULONG ulFlags,HANDLE hMachine);
762#define CM_Create_DevInstW CM_Create_DevNodeW
763#define CM_Create_DevInstA CM_Create_DevNodeA
764#define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
765#define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
766  CMAPI CONFIGRET WINAPI CM_Create_Range_List(PRANGE_LIST prlh,ULONG ulFlags);
767  CMAPI CONFIGRET WINAPI CM_Delete_Class_Key(LPGUID ClassGuid,ULONG ulFlags);
768  CMAPI CONFIGRET WINAPI CM_Delete_Class_Key_Ex(LPGUID ClassGuid,ULONG ulFlags,HANDLE hMachine);
769  CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key(DEVNODE dnDevNode,ULONG ulHardwareProfile,ULONG ulFlags);
770  CMAPI CONFIGRET WINAPI CM_Delete_DevNode_Key_Ex(DEVNODE dnDevNode,ULONG ulHardwareProfile,ULONG ulFlags,HANDLE hMachine);
771#define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
772#define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
773  CMAPI CONFIGRET WINAPI CM_Delete_Range(DWORDLONG ullStartValue,DWORDLONG ullEndValue,RANGE_LIST rlh,ULONG ulFlags);
774  CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict(DEVINST dnDevInst,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,PBOOL pbConflictDetected,ULONG ulFlags);
775  CMAPI CONFIGRET WINAPI CM_Detect_Resource_Conflict_Ex(DEVINST dnDevInst,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,PBOOL pbConflictDetected,ULONG ulFlags,HMACHINE hMachine);
776  CMAPI CONFIGRET WINAPI CM_Disable_DevNode(DEVINST dnDevInst,ULONG ulFlags);
777  CMAPI CONFIGRET WINAPI CM_Disable_DevNode_Ex(DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
778#define CM_Disable_DevInst CM_Disable_DevNode
779#define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
780  CMAPI CONFIGRET WINAPI CM_Disconnect_Machine(HMACHINE hMachine);
781  CMAPI CONFIGRET WINAPI CM_Dup_Range_List(RANGE_LIST rlhOld,RANGE_LIST rlhNew,ULONG ulFlags);
782  CMAPI CONFIGRET WINAPI CM_Enable_DevNode(DEVINST dnDevInst,ULONG ulFlags);
783  CMAPI CONFIGRET WINAPI CM_Enable_DevNode_Ex(DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
784#define CM_Enable_DevInst CM_Enable_DevNode
785#define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
786  CMAPI CONFIGRET WINAPI CM_Enumerate_Classes(ULONG ulClassIndex,LPGUID ClassGuid,ULONG ulFlags);
787  CMAPI CONFIGRET WINAPI CM_Enumerate_Classes_Ex(ULONG ulClassIndex,LPGUID ClassGuid,ULONG ulFlags,HMACHINE hMachine);
788  CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsA(ULONG ulEnumIndex,PCHAR Buffer,PULONG pulLength,ULONG ulFlags);
789  CMAPI CONFIGRET WINAPI CM_Enumerate_EnumeratorsW(ULONG ulEnumIndex,PWCHAR Buffer,PULONG pulLength,ULONG ulFlags);
790  CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA(ULONG ulEnumIndex,PCHAR Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
791  CMAPI CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW(ULONG ulEnumIndex,PWCHAR Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
792  CMAPI CONFIGRET WINAPI CM_Find_Range(PDWORDLONG pullStart,DWORDLONG ullStart,ULONG ulLength,DWORDLONG ullAlignment,DWORDLONG ullEnd,RANGE_LIST rlh,ULONG ulFlags);
793  CMAPI CONFIGRET WINAPI CM_First_Range(RANGE_LIST rlh,PDWORDLONG pullStart,PDWORDLONG pullEnd,PRANGE_ELEMENT preElement,ULONG ulFlags);
794  CMAPI CONFIGRET WINAPI CM_Free_Log_Conf(LOG_CONF lcLogConfToBeFreed,ULONG ulFlags);
795  CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Ex(LOG_CONF lcLogConfToBeFreed,ULONG ulFlags,HMACHINE hMachine);
796  CMAPI CONFIGRET WINAPI CM_Free_Log_Conf_Handle(LOG_CONF lcLogConf);
797  CMAPI CONFIGRET WINAPI CM_Free_Range_List(RANGE_LIST rlh,ULONG ulFlags);
798  CMAPI CONFIGRET WINAPI CM_Free_Res_Des(PRES_DES prdResDes,RES_DES rdResDes,ULONG ulFlags);
799  CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Ex(PRES_DES prdResDes,RES_DES rdResDes,ULONG ulFlags,HMACHINE hMachine);
800  CMAPI CONFIGRET WINAPI CM_Free_Res_Des_Handle(RES_DES rdResDes);
801  CMAPI CONFIGRET WINAPI CM_Get_Child(PDEVINST pdnDevInst,DEVINST dnDevInst,ULONG ulFlags);
802  CMAPI CONFIGRET WINAPI CM_Get_Child_Ex(PDEVINST pdnDevInst,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
803  CMAPI CONFIGRET WINAPI CM_Get_Class_NameA(LPGUID ClassGuid,PCHAR Buffer,PULONG pulLength,ULONG ulFlags);
804  CMAPI CONFIGRET WINAPI CM_Get_Class_NameW(LPGUID ClassGuid,PWCHAR Buffer,PULONG pulLength,ULONG ulFlags);
805  CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExA(LPGUID ClassGuid,PCHAR Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
806  CMAPI CONFIGRET WINAPI CM_Get_Class_Name_ExW(LPGUID ClassGuid,PWCHAR Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
807  CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameA(LPGUID ClassGuid,LPSTR pszKeyName,PULONG pulLength,ULONG ulFlags);
808  CMAPI CONFIGRET WINAPI CM_Get_Class_Key_NameW(LPGUID ClassGuid,LPWSTR pszKeyName,PULONG pulLength,ULONG ulFlags);
809  CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExA(LPGUID ClassGuid,LPSTR pszKeyName,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
810  CMAPI CONFIGRET WINAPI CM_Get_Class_Key_Name_ExW(LPGUID ClassGuid,LPWSTR pszKeyName,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
811  CMAPI CONFIGRET WINAPI CM_Get_Depth(PULONG pulDepth,DEVINST dnDevInst,ULONG ulFlags);
812  CMAPI CONFIGRET WINAPI CM_Get_Depth_Ex(PULONG pulDepth,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
813  CMAPI CONFIGRET WINAPI CM_Get_Device_IDA(DEVINST dnDevInst,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
814  CMAPI CONFIGRET WINAPI CM_Get_Device_IDW(DEVINST dnDevInst,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
815  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExA(DEVINST dnDevInst,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
816  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ExW(DEVINST dnDevInst,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
817  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListA(PCSTR pszFilter,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
818  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_ListW(PCWSTR pszFilter,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
819  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExA(PCSTR pszFilter,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
820  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_ExW(PCWSTR pszFilter,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
821  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeA(PULONG pulLen,PCSTR pszFilter,ULONG ulFlags);
822  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_SizeW(PULONG pulLen,PCWSTR pszFilter,ULONG ulFlags);
823  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExA(PULONG pulLen,PCSTR pszFilter,ULONG ulFlags,HMACHINE hMachine);
824  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_List_Size_ExW(PULONG pulLen,PCWSTR pszFilter,ULONG ulFlags,HMACHINE hMachine);
825  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size(PULONG pulLen,DEVINST dnDevInst,ULONG ulFlags);
826  CMAPI CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex(PULONG pulLen,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
827  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyA(DEVINST dnDevInst,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags);
828  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_PropertyW(DEVINST dnDevInst,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags);
829  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExA(DEVINST dnDevInst,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
830  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Registry_Property_ExW(DEVINST dnDevInst,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
831#define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
832#define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
833#define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
834#define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
835  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyA(DEVINST dnDevInst,PCSTR pszCustomPropertyName,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags);
836  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_PropertyW(DEVINST dnDevInst,PCWSTR pszCustomPropertyName,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags);
837  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExA(DEVINST dnDevInst,PCSTR pszCustomPropertyName,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
838  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Custom_Property_ExW(DEVINST dnDevInst,PCWSTR pszCustomPropertyName,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
839#define CM_Get_DevInst_Custom_PropertyW CM_Get_DevNode_Custom_PropertyW
840#define CM_Get_DevInst_Custom_PropertyA CM_Get_DevNode_Custom_PropertyA
841#define CM_Get_DevInst_Custom_Property_ExW CM_Get_DevNode_Custom_Property_ExW
842#define CM_Get_DevInst_Custom_Property_ExA CM_Get_DevNode_Custom_Property_ExA
843  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status(PULONG pulStatus,PULONG pulProblemNumber,DEVINST dnDevInst,ULONG ulFlags);
844  CMAPI CONFIGRET WINAPI CM_Get_DevNode_Status_Ex(PULONG pulStatus,PULONG pulProblemNumber,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
845#define CM_Get_DevInst_Status CM_Get_DevNode_Status
846#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
847  CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf(PLOG_CONF plcLogConf,DEVINST dnDevInst,ULONG ulFlags);
848  CMAPI CONFIGRET WINAPI CM_Get_First_Log_Conf_Ex(PLOG_CONF plcLogConf,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
849  CMAPI CONFIGRET WINAPI CM_Get_Global_State(PULONG pulState,ULONG ulFlags);
850  CMAPI CONFIGRET WINAPI CM_Get_Global_State_Ex(PULONG pulState,ULONG ulFlags,HMACHINE hMachine);
851  CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoA(ULONG ulIndex,PHWPROFILEINFO_A pHWProfileInfo,ULONG ulFlags);
852  CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExA(ULONG ulIndex,PHWPROFILEINFO_A pHWProfileInfo,ULONG ulFlags,HMACHINE hMachine);
853  CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_InfoW(ULONG ulIndex,PHWPROFILEINFO_W pHWProfileInfo,ULONG ulFlags);
854  CMAPI CONFIGRET WINAPI CM_Get_Hardware_Profile_Info_ExW(ULONG ulIndex,PHWPROFILEINFO_W pHWProfileInfo,ULONG ulFlags,HMACHINE hMachine);
855  CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA(DEVINSTID_A szDevInstName,ULONG ulHardwareProfile,PULONG pulValue,ULONG ulFlags);
856  CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW(DEVINSTID_W szDevInstName,ULONG ulHardwareProfile,PULONG pulValue,ULONG ulFlags);
857  CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA(DEVINSTID_A szDevInstName,ULONG ulHardwareProfile,PULONG pulValue,ULONG ulFlags,HMACHINE hMachine);
858  CMAPI CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW(DEVINSTID_W szDevInstName,ULONG ulHardwareProfile,PULONG pulValue,ULONG ulFlags,HMACHINE hMachine);
859  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasA(LPCSTR pszDeviceInterface,LPGUID AliasInterfaceGuid,LPSTR pszAliasDeviceInterface,PULONG pulLength,ULONG ulFlags);
860  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_AliasW(LPCWSTR pszDeviceInterface,LPGUID AliasInterfaceGuid,LPWSTR pszAliasDeviceInterface,PULONG pulLength,ULONG ulFlags);
861  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExA(LPCSTR pszDeviceInterface,LPGUID AliasInterfaceGuid,LPSTR pszAliasDeviceInterface,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
862  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_Alias_ExW(LPCWSTR pszDeviceInterface,LPGUID AliasInterfaceGuid,LPWSTR pszAliasDeviceInterface,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
863  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListA(LPGUID InterfaceClassGuid,DEVINSTID_A pDeviceID,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
864  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_ListW(LPGUID InterfaceClassGuid,DEVINSTID_W pDeviceID,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags);
865  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExA(LPGUID InterfaceClassGuid,DEVINSTID_A pDeviceID,PCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
866  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_ExW(LPGUID InterfaceClassGuid,DEVINSTID_W pDeviceID,PWCHAR Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
867  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeA(PULONG pulLen,LPGUID InterfaceClassGuid,DEVINSTID_A pDeviceID,ULONG ulFlags);
868  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_SizeW(PULONG pulLen,LPGUID InterfaceClassGuid,DEVINSTID_W pDeviceID,ULONG ulFlags);
869  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExA(PULONG pulLen,LPGUID InterfaceClassGuid,DEVINSTID_A pDeviceID,ULONG ulFlags,HMACHINE hMachine);
870  CMAPI CONFIGRET WINAPI CM_Get_Device_Interface_List_Size_ExW(PULONG pulLen,LPGUID InterfaceClassGuid,DEVINSTID_W pDeviceID,ULONG ulFlags,HMACHINE hMachine);
871  CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority(LOG_CONF lcLogConf,PPRIORITY pPriority,ULONG ulFlags);
872  CMAPI CONFIGRET WINAPI CM_Get_Log_Conf_Priority_Ex(LOG_CONF lcLogConf,PPRIORITY pPriority,ULONG ulFlags,HMACHINE hMachine);
873  CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf(PLOG_CONF plcLogConf,LOG_CONF lcLogConf,ULONG ulFlags);
874  CMAPI CONFIGRET WINAPI CM_Get_Next_Log_Conf_Ex(PLOG_CONF plcLogConf,LOG_CONF lcLogConf,ULONG ulFlags,HMACHINE hMachine);
875  CMAPI CONFIGRET WINAPI CM_Get_Parent(PDEVINST pdnDevInst,DEVINST dnDevInst,ULONG ulFlags);
876  CMAPI CONFIGRET WINAPI CM_Get_Parent_Ex(PDEVINST pdnDevInst,DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
877  CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data(RES_DES rdResDes,PVOID Buffer,ULONG BufferLen,ULONG ulFlags);
878  CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Ex(RES_DES rdResDes,PVOID Buffer,ULONG BufferLen,ULONG ulFlags,HMACHINE hMachine);
879  CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size(PULONG pulSize,RES_DES rdResDes,ULONG ulFlags);
880  CMAPI CONFIGRET WINAPI CM_Get_Res_Des_Data_Size_Ex(PULONG pulSize,RES_DES rdResDes,ULONG ulFlags,HMACHINE hMachine);
881  CMAPI CONFIGRET WINAPI CM_Get_Sibling(PDEVINST pdnDevInst,DEVINST DevInst,ULONG ulFlags);
882  CMAPI CONFIGRET WINAPI CM_Get_Sibling_Ex(PDEVINST pdnDevInst,DEVINST DevInst,ULONG ulFlags,HMACHINE hMachine);
883  CMAPI WORD WINAPI CM_Get_Version(VOID);
884  CMAPI WORD WINAPI CM_Get_Version_Ex(HMACHINE hMachine);
885  CMAPI WINBOOL WINAPI CM_Is_Version_Available(WORD wVersion);
886  CMAPI WINBOOL WINAPI CM_Is_Version_Available_Ex(WORD wVersion,HMACHINE hMachine);
887  CMAPI CONFIGRET WINAPI CM_Intersect_Range_List(RANGE_LIST rlhOld1,RANGE_LIST rlhOld2,RANGE_LIST rlhNew,ULONG ulFlags);
888  CMAPI CONFIGRET WINAPI CM_Invert_Range_List(RANGE_LIST rlhOld,RANGE_LIST rlhNew,DWORDLONG ullMaxValue,ULONG ulFlags);
889  CMAPI CONFIGRET WINAPI CM_Locate_DevNodeA(PDEVINST pdnDevInst,DEVINSTID_A pDeviceID,ULONG ulFlags);
890  CMAPI CONFIGRET WINAPI CM_Locate_DevNodeW(PDEVINST pdnDevInst,DEVINSTID_W pDeviceID,ULONG ulFlags);
891  CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExA(PDEVINST pdnDevInst,DEVINSTID_A pDeviceID,ULONG ulFlags,HMACHINE hMachine);
892  CMAPI CONFIGRET WINAPI CM_Locate_DevNode_ExW(PDEVINST pdnDevInst,DEVINSTID_W pDeviceID,ULONG ulFlags,HMACHINE hMachine);
893#define CM_Locate_DevInstA CM_Locate_DevNodeA
894#define CM_Locate_DevInstW CM_Locate_DevNodeW
895#define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
896#define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
897  CMAPI CONFIGRET WINAPI CM_Merge_Range_List(RANGE_LIST rlhOld1,RANGE_LIST rlhOld2,RANGE_LIST rlhNew,ULONG ulFlags);
898  CMAPI CONFIGRET WINAPI CM_Modify_Res_Des(PRES_DES prdResDes,RES_DES rdResDes,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,ULONG ulFlags);
899  CMAPI CONFIGRET WINAPI CM_Modify_Res_Des_Ex(PRES_DES prdResDes,RES_DES rdResDes,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,ULONG ulFlags,HMACHINE hMachine);
900  CMAPI CONFIGRET WINAPI CM_Move_DevNode(DEVINST dnFromDevInst,DEVINST dnToDevInst,ULONG ulFlags);
901  CMAPI CONFIGRET WINAPI CM_Move_DevNode_Ex(DEVINST dnFromDevInst,DEVINST dnToDevInst,ULONG ulFlags,HMACHINE hMachine);
902#define CM_Move_DevInst CM_Move_DevNode
903#define CM_Move_DevInst_Ex CM_Move_DevNode_Ex
904  CMAPI CONFIGRET WINAPI CM_Next_Range(PRANGE_ELEMENT preElement,PDWORDLONG pullStart,PDWORDLONG pullEnd,ULONG ulFlags);
905  CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des(PRES_DES prdResDes,RES_DES rdResDes,RESOURCEID ForResource,PRESOURCEID pResourceID,ULONG ulFlags);
906  CMAPI CONFIGRET WINAPI CM_Get_Next_Res_Des_Ex(PRES_DES prdResDes,RES_DES rdResDes,RESOURCEID ForResource,PRESOURCEID pResourceID,ULONG ulFlags,HMACHINE hMachine);
907  CMAPI CONFIGRET WINAPI CM_Open_Class_KeyA(LPGUID ClassGuid,LPCSTR pszClassName,REGSAM samDesired,REGDISPOSITION Disposition,PHKEY phkClass,ULONG ulFlags);
908  CMAPI CONFIGRET WINAPI CM_Open_Class_KeyW(LPGUID ClassGuid,LPCWSTR pszClassName,REGSAM samDesired,REGDISPOSITION Disposition,PHKEY phkClass,ULONG ulFlags);
909  CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExA(LPGUID pszClassGuid,LPCSTR pszClassName,REGSAM samDesired,REGDISPOSITION Disposition,PHKEY phkClass,ULONG ulFlags,HMACHINE hMachine);
910  CMAPI CONFIGRET WINAPI CM_Open_Class_Key_ExW(LPGUID pszClassGuid,LPCWSTR pszClassName,REGSAM samDesired,REGDISPOSITION Disposition,PHKEY phkClass,ULONG ulFlags,HMACHINE hMachine);
911  CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key(DEVINST dnDevNode,REGSAM samDesired,ULONG ulHardwareProfile,REGDISPOSITION Disposition,PHKEY phkDevice,ULONG ulFlags);
912  CMAPI CONFIGRET WINAPI CM_Open_DevNode_Key_Ex(DEVINST dnDevNode,REGSAM samDesired,ULONG ulHardwareProfile,REGDISPOSITION Disposition,PHKEY phkDevice,ULONG ulFlags,HMACHINE hMachine);
913#define CM_Open_DevInst_Key CM_Open_DevNode_Key
914#define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
915  CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data(PVOID pData,ULONG DataLen,DEVINST dnDevInst,RESOURCEID ResourceID,ULONG ulFlags);
916  CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Data_Ex(PVOID pData,ULONG DataLen,DEVINST dnDevInst,RESOURCEID ResourceID,ULONG ulFlags,HMACHINE hMachine);
917  CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size(PULONG pulSize,DEVINST dnDevInst,RESOURCEID ResourceID,ULONG ulFlags);
918  CMAPI CONFIGRET WINAPI CM_Query_Arbitrator_Free_Size_Ex(PULONG pulSize,DEVINST dnDevInst,RESOURCEID ResourceID,ULONG ulFlags,HMACHINE hMachine);
919  CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree(DEVINST dnAncestor,ULONG ulFlags);
920  CMAPI CONFIGRET WINAPI CM_Query_Remove_SubTree_Ex(DEVINST dnAncestor,ULONG ulFlags,HMACHINE hMachine);
921  CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeA(DEVINST dnAncestor,PPNP_VETO_TYPE pVetoType,LPSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags);
922  CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExA(DEVINST dnAncestor,PPNP_VETO_TYPE pVetoType,LPSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags,HMACHINE hMachine);
923  CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTreeW(DEVINST dnAncestor,PPNP_VETO_TYPE pVetoType,LPWSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags);
924  CMAPI CONFIGRET WINAPI CM_Query_And_Remove_SubTree_ExW(DEVINST dnAncestor,PPNP_VETO_TYPE pVetoType,LPWSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags,HMACHINE hMachine);
925  CMAPI CONFIGRET WINAPI CM_Request_Device_EjectA(DEVINST dnDevInst,PPNP_VETO_TYPE pVetoType,LPSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags);
926  CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExA(DEVINST dnDevInst,PPNP_VETO_TYPE pVetoType,LPSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags,HMACHINE hMachine);
927  CMAPI CONFIGRET WINAPI CM_Request_Device_EjectW(DEVINST dnDevInst,PPNP_VETO_TYPE pVetoType,LPWSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags);
928  CMAPI CONFIGRET WINAPI CM_Request_Device_Eject_ExW(DEVINST dnDevInst,PPNP_VETO_TYPE pVetoType,LPWSTR pszVetoName,ULONG ulNameLength,ULONG ulFlags,HMACHINE hMachine);
929  CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode(DEVINST dnDevInst,ULONG ulFlags);
930  CMAPI CONFIGRET WINAPI CM_Reenumerate_DevNode_Ex(DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
931#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
932#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
933  CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceA(DEVINST dnDevInst,LPGUID InterfaceClassGuid,LPCSTR pszReference,LPSTR pszDeviceInterface,PULONG pulLength,ULONG ulFlags);
934  CMAPI CONFIGRET WINAPI CM_Register_Device_InterfaceW(DEVINST dnDevInst,LPGUID InterfaceClassGuid,LPCWSTR pszReference,LPWSTR pszDeviceInterface,PULONG pulLength,ULONG ulFlags);
935  CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExA(DEVINST dnDevInst,LPGUID InterfaceClassGuid,LPCSTR pszReference,LPSTR pszDeviceInterface,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
936  CMAPI CONFIGRET WINAPI CM_Register_Device_Interface_ExW(DEVINST dnDevInst,LPGUID InterfaceClassGuid,LPCWSTR pszReference,LPWSTR pszDeviceInterface,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
937  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem_Ex(DEVINST dnDevInst,ULONG ulProblem,ULONG ulFlags,HMACHINE hMachine);
938  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Problem(DEVINST dnDevInst,ULONG ulProblem,ULONG ulFlags);
939#define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
940#define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
941  CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceA(LPCSTR pszDeviceInterface,ULONG ulFlags);
942  CMAPI CONFIGRET WINAPI CM_Unregister_Device_InterfaceW(LPCWSTR pszDeviceInterface,ULONG ulFlags);
943  CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExA(LPCSTR pszDeviceInterface,ULONG ulFlags,HMACHINE hMachine);
944  CMAPI CONFIGRET WINAPI CM_Unregister_Device_Interface_ExW(LPCWSTR pszDeviceInterface,ULONG ulFlags,HMACHINE hMachine);
945  CMAPI CONFIGRET WINAPI CM_Register_Device_Driver(DEVINST dnDevInst,ULONG ulFlags);
946  CMAPI CONFIGRET WINAPI CM_Register_Device_Driver_Ex(DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
947  CMAPI CONFIGRET WINAPI CM_Remove_SubTree(DEVINST dnAncestor,ULONG ulFlags);
948  CMAPI CONFIGRET WINAPI CM_Remove_SubTree_Ex(DEVINST dnAncestor,ULONG ulFlags,HMACHINE hMachine);
949  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyA(DEVINST dnDevInst,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags);
950  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_PropertyW(DEVINST dnDevInst,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags);
951  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA(DEVINST dnDevInst,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags,HMACHINE hMachine);
952  CMAPI CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW(DEVINST dnDevInst,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags,HMACHINE hMachine);
953#define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
954#define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
955#define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
956#define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
957  CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present(PBOOL pbPresent);
958  CMAPI CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex(PBOOL pbPresent,HMACHINE hMachine);
959  CMAPI CONFIGRET WINAPI CM_Request_Eject_PC(VOID);
960  CMAPI CONFIGRET WINAPI CM_Request_Eject_PC_Ex(HMACHINE hMachine);
961  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA(DEVINSTID_A szDevInstName,ULONG ulConfig,ULONG ulValue,ULONG ulFlags);
962  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW(DEVINSTID_W szDevInstName,ULONG ulConfig,ULONG ulValue,ULONG ulFlags);
963  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA(DEVINSTID_A szDevInstName,ULONG ulConfig,ULONG ulValue,ULONG ulFlags,HMACHINE hMachine);
964  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW(DEVINSTID_W szDevInstName,ULONG ulConfig,ULONG ulValue,ULONG ulFlags,HMACHINE hMachine);
965  CMAPI CONFIGRET WINAPI CM_Setup_DevNode(DEVINST dnDevInst,ULONG ulFlags);
966  CMAPI CONFIGRET WINAPI CM_Setup_DevNode_Ex(DEVINST dnDevInst,ULONG ulFlags,HMACHINE hMachine);
967#define CM_Setup_DevInst CM_Setup_DevNode
968#define CM_Setup_DevInst_Ex CM_Setup_DevNode_Ex
969  CMAPI CONFIGRET WINAPI CM_Test_Range_Available(DWORDLONG ullStartValue,DWORDLONG ullEndValue,RANGE_LIST rlh,ULONG ulFlags);
970  CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode(DEVNODE dnPhantom,ULONG ulFlags);
971  CMAPI CONFIGRET WINAPI CM_Uninstall_DevNode_Ex(DEVNODE dnPhantom,ULONG ulFlags,HANDLE hMachine);
972#define CM_Uninstall_DevInst CM_Uninstall_DevNode
973#define CM_Uninstall_DevInst_Ex CM_Uninstall_DevNode_Ex
974  CMAPI CONFIGRET WINAPI CM_Run_Detection(ULONG ulFlags);
975  CMAPI CONFIGRET WINAPI CM_Run_Detection_Ex(ULONG ulFlags,HMACHINE hMachine);
976  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof(ULONG ulHardwareProfile,ULONG ulFlags);
977  CMAPI CONFIGRET WINAPI CM_Set_HW_Prof_Ex(ULONG ulHardwareProfile,ULONG ulFlags,HMACHINE hMachine);
978  CMAPI CONFIGRET WINAPI CM_Query_Resource_Conflict_List(PCONFLICT_LIST pclConflictList,DEVINST dnDevInst,RESOURCEID ResourceID,PCVOID ResourceData,ULONG ResourceLen,ULONG ulFlags,HMACHINE hMachine);
979  CMAPI CONFIGRET WINAPI CM_Free_Resource_Conflict_Handle(CONFLICT_LIST clConflictList);
980  CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_Count(CONFLICT_LIST clConflictList,PULONG pulCount);
981  CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsA(CONFLICT_LIST clConflictList,ULONG ulIndex,PCONFLICT_DETAILS_A pConflictDetails);
982  CMAPI CONFIGRET WINAPI CM_Get_Resource_Conflict_DetailsW(CONFLICT_LIST clConflictList,ULONG ulIndex,PCONFLICT_DETAILS_W pConflictDetails);
983  CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyW(LPGUID ClassGUID,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
984  CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyW(LPGUID ClassGUID,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags,HMACHINE hMachine);
985  CMAPI CONFIGRET WINAPI CM_Get_Class_Registry_PropertyA(LPGUID ClassGUID,ULONG ulProperty,PULONG pulRegDataType,PVOID Buffer,PULONG pulLength,ULONG ulFlags,HMACHINE hMachine);
986  CMAPI CONFIGRET WINAPI CM_Set_Class_Registry_PropertyA(LPGUID ClassGUID,ULONG ulProperty,PCVOID Buffer,ULONG ulLength,ULONG ulFlags,HMACHINE hMachine);
987#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
988  DWORD WINAPI CM_WaitNoPendingInstallEvents(DWORD dwTimeout);
989
990#define CR_SUCCESS (0x00000000)
991#define CR_DEFAULT (0x00000001)
992#define CR_OUT_OF_MEMORY (0x00000002)
993#define CR_INVALID_POINTER (0x00000003)
994#define CR_INVALID_FLAG (0x00000004)
995#define CR_INVALID_DEVNODE (0x00000005)
996#define CR_INVALID_DEVINST CR_INVALID_DEVNODE
997#define CR_INVALID_RES_DES (0x00000006)
998#define CR_INVALID_LOG_CONF (0x00000007)
999#define CR_INVALID_ARBITRATOR (0x00000008)
1000#define CR_INVALID_NODELIST (0x00000009)
1001#define CR_DEVNODE_HAS_REQS (0x0000000A)
1002#define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
1003#define CR_INVALID_RESOURCEID (0x0000000B)
1004#define CR_DLVXD_NOT_FOUND (0x0000000C)
1005#define CR_NO_SUCH_DEVNODE (0x0000000D)
1006#define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
1007#define CR_NO_MORE_LOG_CONF (0x0000000E)
1008#define CR_NO_MORE_RES_DES (0x0000000F)
1009#define CR_ALREADY_SUCH_DEVNODE (0x00000010)
1010#define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
1011#define CR_INVALID_RANGE_LIST (0x00000011)
1012#define CR_INVALID_RANGE (0x00000012)
1013#define CR_FAILURE (0x00000013)
1014#define CR_NO_SUCH_LOGICAL_DEV (0x00000014)
1015#define CR_CREATE_BLOCKED (0x00000015)
1016#define CR_NOT_SYSTEM_VM (0x00000016)
1017#define CR_REMOVE_VETOED (0x00000017)
1018#define CR_APM_VETOED (0x00000018)
1019#define CR_INVALID_LOAD_TYPE (0x00000019)
1020#define CR_BUFFER_SMALL (0x0000001A)
1021#define CR_NO_ARBITRATOR (0x0000001B)
1022#define CR_NO_REGISTRY_HANDLE (0x0000001C)
1023#define CR_REGISTRY_ERROR (0x0000001D)
1024#define CR_INVALID_DEVICE_ID (0x0000001E)
1025#define CR_INVALID_DATA (0x0000001F)
1026#define CR_INVALID_API (0x00000020)
1027#define CR_DEVLOADER_NOT_READY (0x00000021)
1028#define CR_NEED_RESTART (0x00000022)
1029#define CR_NO_MORE_HW_PROFILES (0x00000023)
1030#define CR_DEVICE_NOT_THERE (0x00000024)
1031#define CR_NO_SUCH_VALUE (0x00000025)
1032#define CR_WRONG_TYPE (0x00000026)
1033#define CR_INVALID_PRIORITY (0x00000027)
1034#define CR_NOT_DISABLEABLE (0x00000028)
1035#define CR_FREE_RESOURCES (0x00000029)
1036#define CR_QUERY_VETOED (0x0000002A)
1037#define CR_CANT_SHARE_IRQ (0x0000002B)
1038#define CR_NO_DEPENDENT (0x0000002C)
1039#define CR_SAME_RESOURCES (0x0000002D)
1040#define CR_NO_SUCH_REGISTRY_KEY (0x0000002E)
1041#define CR_INVALID_MACHINENAME (0x0000002F)
1042#define CR_REMOTE_COMM_FAILURE (0x00000030)
1043#define CR_MACHINE_UNAVAILABLE (0x00000031)
1044#define CR_NO_CM_SERVICES (0x00000032)
1045#define CR_ACCESS_DENIED (0x00000033)
1046#define CR_CALL_NOT_IMPLEMENTED (0x00000034)
1047#define CR_INVALID_PROPERTY (0x00000035)
1048#define CR_DEVICE_INTERFACE_ACTIVE (0x00000036)
1049#define CR_NO_SUCH_DEVICE_INTERFACE (0x00000037)
1050#define CR_INVALID_REFERENCE_STRING (0x00000038)
1051#define CR_INVALID_CONFLICT_LIST (0x00000039)
1052#define CR_INVALID_INDEX (0x0000003A)
1053#define CR_INVALID_STRUCTURE_SIZE (0x0000003B)
1054#define NUM_CR_RESULTS (0x0000003C)
1055
1056#ifdef __cplusplus
1057}
1058#endif
1059#endif
1060