Initial bulk commit for "Git on MSys"
[msysgit/historical-msysgit.git] / mingw / include / ddk / cfgmgr32.h
blob4595ce7ad28c1408fb4a3727d6020279e2a4bb1d
1 /*
2 * cfgmgr32.h
4 * PnP configuration manager
6 * This file is part of the w32api package.
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
23 #ifndef __CFGMGR32_H
24 #define __CFGMGR32_H
26 #if __GNUC__ >=3
27 #pragma GCC system_header
28 #endif
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
34 #include "ntddk.h"
36 #if defined(_CFGMGR32_)
37 #define CMAPI DECLSPEC_EXPORT
38 #else
39 #define CMAPI DECLSPEC_IMPORT
40 #endif
42 #include "cfg.h"
44 #include <pshpack1.h>
46 #define CR_SUCCESS 0x00000000
47 #define CR_DEFAULT 0x00000001
48 #define CR_OUT_OF_MEMORY 0x00000002
49 #define CR_INVALID_POINTER 0x00000003
50 #define CR_INVALID_FLAG 0x00000004
51 #define CR_INVALID_DEVNODE 0x00000005
52 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
53 #define CR_INVALID_RES_DES 0x00000006
54 #define CR_INVALID_LOG_CONF 0x00000007
55 #define CR_INVALID_ARBITRATOR 0x00000008
56 #define CR_INVALID_NODELIST 0x00000009
57 #define CR_DEVNODE_HAS_REQS 0x0000000A
58 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
59 #define CR_INVALID_RESOURCEID 0x0000000B
60 #define CR_DLVXD_NOT_FOUND 0x0000000C
61 #define CR_NO_SUCH_DEVNODE 0x0000000D
62 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
63 #define CR_NO_MORE_LOG_CONF 0x0000000E
64 #define CR_NO_MORE_RES_DES 0x0000000F
65 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
66 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
67 #define CR_INVALID_RANGE_LIST 0x00000011
68 #define CR_INVALID_RANGE 0x00000012
69 #define CR_FAILURE 0x00000013
70 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
71 #define CR_CREATE_BLOCKED 0x00000015
72 #define CR_NOT_SYSTEM_VM 0x00000016
73 #define CR_REMOVE_VETOED 0x00000017
74 #define CR_APM_VETOED 0x00000018
75 #define CR_INVALID_LOAD_TYPE 0x00000019
76 #define CR_BUFFER_SMALL 0x0000001A
77 #define CR_NO_ARBITRATOR 0x0000001B
78 #define CR_NO_REGISTRY_HANDLE 0x0000001C
79 #define CR_REGISTRY_ERROR 0x0000001D
80 #define CR_INVALID_DEVICE_ID 0x0000001E
81 #define CR_INVALID_DATA 0x0000001F
82 #define CR_INVALID_API 0x00000020
83 #define CR_DEVLOADER_NOT_READY 0x00000021
84 #define CR_NEED_RESTART 0x00000022
85 #define CR_NO_MORE_HW_PROFILES 0x00000023
86 #define CR_DEVICE_NOT_THERE 0x00000024
87 #define CR_NO_SUCH_VALUE 0x00000025
88 #define CR_WRONG_TYPE 0x00000026
89 #define CR_INVALID_PRIORITY 0x00000027
90 #define CR_NOT_DISABLEABLE 0x00000028
91 #define CR_FREE_RESOURCES 0x00000029
92 #define CR_QUERY_VETOED 0x0000002A
93 #define CR_CANT_SHARE_IRQ 0x0000002B
94 #define CR_NO_DEPENDENT 0x0000002C
95 #define CR_SAME_RESOURCES 0x0000002D
96 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
97 #define CR_INVALID_MACHINENAME 0x0000002F
98 #define CR_REMOTE_COMM_FAILURE 0x00000030
99 #define CR_MACHINE_UNAVAILABLE 0x00000031
100 #define CR_NO_CM_SERVICES 0x00000032
101 #define CR_ACCESS_DENIED 0x00000033
102 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
103 #define CR_INVALID_PROPERTY 0x00000035
104 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
105 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
106 #define CR_INVALID_REFERENCE_STRING 0x00000038
107 #define CR_INVALID_CONFLICT_LIST 0x00000039
108 #define CR_INVALID_INDEX 0x0000003A
109 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
112 typedef DWORD RETURN_TYPE;
113 typedef RETURN_TYPE CONFIGRET;
115 typedef HANDLE HMACHINE;
116 typedef HMACHINE *PHMACHINE;
118 typedef DWORD_PTR RES_DES;
119 typedef RES_DES *PRES_DES;
121 typedef DWORD_PTR RANGE_ELEMENT;
122 typedef RANGE_ELEMENT *PRANGE_ELEMENT;
124 typedef ULONG_PTR CONFLICT_LIST;
125 typedef CONFLICT_LIST *PCONFLICT_LIST;
127 typedef DWORD_PTR LOG_CONF;
128 typedef LOG_CONF *PLOG_CONF;
130 typedef ULONG PRIORITY;
131 typedef PRIORITY *PPRIORITY;
133 typedef DWORD_PTR RANGE_LIST;
134 typedef RANGE_LIST *PRANGE_LIST;
136 typedef DWORD DEVNODE, DEVINST;
137 typedef DEVNODE *PDEVNODE, *PDEVINST;
139 typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
140 typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
142 #ifdef UNICODE
143 typedef DEVNODEID_W DEVNODEID;
144 typedef DEVINSTID_W DEVINSTID;
145 #else
146 typedef DEVNODEID_A DEVNODEID;
147 typedef DEVINSTID_A DEVINSTID;
148 #endif
150 typedef ULONG REGDISPOSITION;
152 typedef ULONG RESOURCEID;
153 typedef RESOURCEID *PRESOURCEID;
155 #define CM_RESDES_WIDTH_DEFAULT 0x00000000
156 #define CM_RESDES_WIDTH_32 0x00000001
157 #define CM_RESDES_WIDTH_64 0x00000002
158 #define CM_RESDES_WIDTH_BITS 0x00000003
161 #define MAX_CONFIG_VALUE 9999
162 #define MAX_INSTANCE_VALUE 9999
164 #define MAX_DEVICE_ID_LEN 200
165 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
167 #define MAX_CLASS_NAME_LEN 32
168 #define MAX_GUID_STRING_LEN 39
169 #define MAX_PROFILE_LEN 80
172 #define ResType_All 0x00000000
173 #define ResType_None 0x00000000
174 #define ResType_Mem 0x00000001
175 #define ResType_IO 0x00000002
176 #define ResType_DMA 0x00000003
177 #define ResType_IRQ 0x00000004
178 #define ResType_DoNotUse 0x00000005
179 #define ResType_BusNumber 0x00000006
180 #define ResType_MAX 0x00000006
181 #define ResType_Ignored_Bit 0x00008000
182 #define ResType_ClassSpecific 0x0000FFFF
183 #define ResType_Reserved 0x00008000
184 #define ResType_DevicePrivate 0x00008001
185 #define ResType_PcCardConfig 0x00008002
186 #define ResType_MfCardConfig 0x00008003
188 #define CM_GETIDLIST_FILTER_NONE 0x00000000
189 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
190 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002
191 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
192 #define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
193 #define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
194 #define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
195 #define CM_GETIDLIST_DONOTGENERATE 0x10000040
196 #define CM_GETIDLIST_FILTER_BITS 0x1000007F
198 #define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
199 #define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
200 #define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
203 typedef struct BusNumber_Des_s {
204 DWORD BUSD_Count;
205 DWORD BUSD_Type;
206 DWORD BUSD_Flags;
207 ULONG BUSD_Alloc_Base;
208 ULONG BUSD_Alloc_End;
209 } BUSNUMBER_DES, *PBUSNUMBER_DES;
211 typedef struct BusNumber_Range_s {
212 ULONG BUSR_Min;
213 ULONG BUSR_Max;
214 ULONG BUSR_nBusNumbers;
215 ULONG BUSR_Flags;
216 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
218 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
220 typedef struct BusNumber_Resource_s {
221 BUSNUMBER_DES BusNumber_Header;
222 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
223 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
225 typedef struct CS_Des_s {
226 DWORD CSD_SignatureLength;
227 DWORD CSD_LegacyDataOffset;
228 DWORD CSD_LegacyDataSize;
229 DWORD CSD_Flags;
230 GUID CSD_ClassGuid;
231 BYTE CSD_Signature[ANYSIZE_ARRAY];
232 } CS_DES, *PCS_DES;
234 typedef struct CS_Resource_s {
235 CS_DES CS_Header;
236 } CS_RESOURCE, *PCS_RESOURCE;
238 typedef struct DevPrivate_Des_s {
239 DWORD PD_Count;
240 DWORD PD_Type;
241 DWORD PD_Data1;
242 DWORD PD_Data2;
243 DWORD PD_Data3;
244 DWORD PD_Flags;
245 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
247 typedef struct DevPrivate_Range_s {
248 DWORD PR_Data1;
249 DWORD PR_Data2;
250 DWORD PR_Data3;
251 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
253 #define PType_Range sizeof(DEVPRIVATE_RANGE)
255 typedef struct DevPrivate_Resource_s {
256 DEVPRIVATE_DES PRV_Header;
257 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
258 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
260 /* DMA_DES.DD_Flags constants and masks */
261 #define mDD_Width 0x3
262 #define fDD_BYTE 0x0
263 #define fDD_WORD 0x1
264 #define fDD_DWORD 0x2
265 #define fDD_BYTE_AND_WORD 0x3
267 #define mDD_BusMaster 0x4
268 #define fDD_NoBusMaster 0x0
269 #define fDD_BusMaster 0x4
271 #define mDD_Type 0x18
272 #define fDD_TypeStandard 0x00
273 #define fDD_TypeA 0x08
274 #define fDD_TypeB 0x10
275 #define fDD_TypeF 0x18
277 typedef struct DMA_Des_s {
278 DWORD DD_Count;
279 DWORD DD_Type;
280 DWORD DD_Flags;
281 ULONG DD_Alloc_Chan;
282 } DMA_DES, *PDMA_DES;
284 typedef struct DMA_Range_s {
285 ULONG DR_Min;
286 ULONG DR_Max;
287 ULONG DR_Flags;
288 } DMA_RANGE, *PDMA_RANGE;
290 #define DType_Range sizeof(DMA_RANGE)
292 typedef struct DMA_Resource_s {
293 DMA_DES DMA_Header;
294 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
295 } DMA_RESOURCE, *PDMA_RESOURCE;
297 /* IO_DES.Type constants and masks */
298 #define fIOD_PortType 0x1
299 #define fIOD_Memory 0x0
300 #define fIOD_IO 0x1
301 #define fIOD_DECODE 0x00fc
302 #define fIOD_10_BIT_DECODE 0x0004
303 #define fIOD_12_BIT_DECODE 0x0008
304 #define fIOD_16_BIT_DECODE 0x0010
305 #define fIOD_POSITIVE_DECODE 0x0020
306 #define fIOD_PASSIVE_DECODE 0x0040
307 #define fIOD_WINDOW_DECODE 0x0080
309 typedef struct IO_Des_s {
310 DWORD IOD_Count;
311 DWORD IOD_Type;
312 DWORDLONG IOD_Alloc_Base;
313 DWORDLONG IOD_Alloc_End;
314 DWORD IOD_DesFlags;
315 } IO_DES, *PIO_DES;
317 /* IO_RANGE.IOR_Alias constants */
318 #define IO_ALIAS_10_BIT_DECODE 0x00000004
319 #define IO_ALIAS_12_BIT_DECODE 0x00000010
320 #define IO_ALIAS_16_BIT_DECODE 0x00000000
321 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
323 typedef struct IO_Range_s {
324 DWORDLONG IOR_Align;
325 DWORD IOR_nPorts;
326 DWORDLONG IOR_Min;
327 DWORDLONG IOR_Max;
328 DWORD IOR_RangeFlags;
329 DWORDLONG IOR_Alias;
330 } IO_RANGE, *PIO_RANGE;
332 #define IOType_Range sizeof(IO_RANGE)
334 typedef struct IO_Resource_s {
335 IO_DES IO_Header;
336 IO_RANGE IO_Data[ANYSIZE_ARRAY];
337 } IO_RESOURCE, *PIO_RESOURCE;
339 /* IRQ_DES.IRQD_flags constants */
340 #define mIRQD_Share 0x1
341 #define fIRQD_Exclusive 0x0
342 #define fIRQD_Share 0x1
344 #define fIRQD_Share_Bit 0
345 #define fIRQD_Level_Bit 1
347 #define mIRQD_Edge_Level 0x2
348 #define fIRQD_Level 0x0
349 #define fIRQD_Edge 0x2
351 typedef struct IRQ_Des_32_s {
352 DWORD IRQD_Count;
353 DWORD IRQD_Type;
354 DWORD IRQD_Flags;
355 ULONG IRQD_Alloc_Num;
356 ULONG32 IRQD_Affinity;
357 } IRQ_DES_32, *PIRQ_DES_32;
359 typedef struct IRQ_Des_64_s {
360 DWORD IRQD_Count;
361 DWORD IRQD_Type;
362 DWORD IRQD_Flags;
363 ULONG IRQD_Alloc_Num;
364 ULONG64 IRQD_Affinity;
365 } IRQ_DES_64, *PIRQ_DES_64;
367 #ifdef _WIN64
368 typedef IRQ_DES_64 IRQ_DES;
369 typedef PIRQ_DES_64 PIRQ_DES;
370 #else
371 typedef IRQ_DES_32 IRQ_DES;
372 typedef PIRQ_DES_32 PIRQ_DES;
373 #endif
375 typedef struct IRQ_Range_s {
376 ULONG IRQR_Min;
377 ULONG IRQR_Max;
378 ULONG IRQR_Flags;
379 } IRQ_RANGE, *PIRQ_RANGE;
381 #define IRQType_Range sizeof(IRQ_RANGE)
383 typedef struct IRQ_Resource_s {
384 IRQ_DES IRQ_Header;
385 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
386 } IRQ_RESOURCE, *PIRQ_RESOURCE;
388 /* MEM_DES.MD_Flags constants */
389 #define mMD_MemoryType 0x1
390 #define fMD_MemoryType mMD_MemoryType
391 #define fMD_ROM 0x0
392 #define fMD_RAM 0x1
394 #define mMD_32_24 0x2
395 #define fMD_32_24 mMD_32_24
396 #define fMD_24 0x0
397 #define fMD_32 0x2
399 #define mMD_Prefetchable 0x4
400 #define fMD_Prefetchable mMD_Prefetchable
401 #define fMD_Pref mMD_Prefetchable
402 #define fMD_PrefetchDisallowed 0x0
403 #define fMD_PrefetchAllowed 0x4
405 #define mMD_Readable 0x8
406 #define fMD_Readable mMD_Readable
407 #define fMD_ReadAllowed 0x0
408 #define fMD_ReadDisallowed 0x8
410 #define mMD_CombinedWrite 0x10
411 #define fMD_CombinedWrite mMD_CombinedWrite
412 #define fMD_CombinedWriteDisallowed 0x0
413 #define fMD_CombinedWriteAllowed 0x10
415 #define mMD_Cacheable 0x20
416 #define fMD_NonCacheable 0x0
417 #define fMD_Cacheable 0x20
419 typedef struct Mem_Des_s {
420 DWORD MD_Count;
421 DWORD MD_Type;
422 DWORDLONG MD_Alloc_Base;
423 DWORDLONG MD_Alloc_End;
424 DWORD MD_Flags;
425 DWORD MD_Reserved;
426 } MEM_DES, *PMEM_DES;
428 typedef struct Mem_Range_s {
429 DWORDLONG MR_Align;
430 ULONG MR_nBytes;
431 DWORDLONG MR_Min;
432 DWORDLONG MR_Max;
433 DWORD MR_Flags;
434 DWORD MR_Reserved;
435 } MEM_RANGE, *PMEM_RANGE;
437 #define MType_Range sizeof(MEM_RANGE)
439 typedef struct Mem_Resource_s {
440 MEM_DES MEM_Header;
441 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
442 } MEM_RESOURCE, *PMEM_RESOURCE;
444 /* MFCARD_DES.PMF_Flags constants */
445 #define fPMF_AUDIO_ENABLE 0x8
446 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
448 typedef struct MfCard_Des_s {
449 DWORD PMF_Count;
450 DWORD PMF_Type;
451 DWORD PMF_Flags;
452 BYTE PMF_ConfigOptions;
453 BYTE PMF_IoResourceIndex;
454 BYTE PMF_Reserved[2];
455 DWORD PMF_ConfigRegisterBase;
456 } MFCARD_DES, *PMFCARD_DES;
458 typedef struct MfCard_Resource_s {
459 MFCARD_DES MfCard_Header;
460 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
462 /* PCCARD_DES.PCD_Flags constants */
464 typedef struct PcCard_Des_s {
465 DWORD PCD_Count;
466 DWORD PCD_Type;
467 DWORD PCD_Flags;
468 BYTE PCD_ConfigIndex;
469 BYTE PCD_Reserved[3];
470 DWORD PCD_MemoryCardBase1;
471 DWORD PCD_MemoryCardBase2;
472 } PCCARD_DES, *PPCCARD_DES;
474 #define mPCD_IO_8_16 0x1
475 #define fPCD_IO_8 0x0
476 #define fPCD_IO_16 0x1
477 #define mPCD_MEM_8_16 0x2
478 #define fPCD_MEM_8 0x0
479 #define fPCD_MEM_16 0x2
480 #define mPCD_MEM_A_C 0xC
481 #define fPCD_MEM1_A 0x4
482 #define fPCD_MEM2_A 0x8
483 #define fPCD_IO_ZW_8 0x10
484 #define fPCD_IO_SRC_16 0x20
485 #define fPCD_IO_WS_16 0x40
486 #define mPCD_MEM_WS 0x300
487 #define fPCD_MEM_WS_ONE 0x100
488 #define fPCD_MEM_WS_TWO 0x200
489 #define fPCD_MEM_WS_THREE 0x300
491 #define fPCD_MEM_A 0x4
493 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
495 #define fPCD_IO1_16 0x00010000
496 #define fPCD_IO1_ZW_8 0x00020000
497 #define fPCD_IO1_SRC_16 0x00040000
498 #define fPCD_IO1_WS_16 0x00080000
500 #define fPCD_IO2_16 0x00100000
501 #define fPCD_IO2_ZW_8 0x00200000
502 #define fPCD_IO2_SRC_16 0x00400000
503 #define fPCD_IO2_WS_16 0x00800000
505 #define mPCD_MEM1_WS 0x03000000
506 #define fPCD_MEM1_WS_ONE 0x01000000
507 #define fPCD_MEM1_WS_TWO 0x02000000
508 #define fPCD_MEM1_WS_THREE 0x03000000
509 #define fPCD_MEM1_16 0x04000000
511 #define mPCD_MEM2_WS 0x30000000
512 #define fPCD_MEM2_WS_ONE 0x10000000
513 #define fPCD_MEM2_WS_TWO 0x20000000
514 #define fPCD_MEM2_WS_THREE 0x30000000
515 #define fPCD_MEM2_16 0x40000000
517 #define PCD_MAX_MEMORY 2
518 #define PCD_MAX_IO 2
520 typedef struct PcCard_Resource_s {
521 PCCARD_DES PcCard_Header;
522 } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
525 /* CONFLICT_DETAILS.CD.ulMask constants */
526 #define CM_CDMASK_DEVINST 0x00000001
527 #define CM_CDMASK_RESDES 0x00000002
528 #define CM_CDMASK_FLAGS 0x00000004
529 #define CM_CDMASK_DESCRIPTION 0x00000008
530 #define CM_CDMASK_VALID 0x0000000F
532 /* CONFLICT_DETAILS.CD.ulFlags constants */
533 #define CM_CDFLAGS_DRIVER 0x00000001
534 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
535 #define CM_CDFLAGS_RESERVED 0x00000004
537 typedef struct _CONFLICT_DETAILS_A {
538 ULONG CD_ulSize;
539 ULONG CD_ulMask;
540 DEVINST CD_dnDevInst;
541 RES_DES CD_rdResDes;
542 ULONG CD_ulFlags;
543 CHAR CD_szDescription[MAX_PATH];
544 } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
546 typedef struct _CONFLICT_DETAILS_W {
547 ULONG CD_ulSize;
548 ULONG CD_ulMask;
549 DEVINST CD_dnDevInst;
550 RES_DES CD_rdResDes;
551 ULONG CD_ulFlags;
552 WCHAR CD_szDescription[MAX_PATH];
553 } CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
555 #ifdef UNICODE
556 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
557 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
558 #else
559 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
560 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
561 #endif
565 /* CM_Add_Empty_Log_Conf.ulFlags constants */
566 #define PRIORITY_EQUAL_FIRST 0x00000008
567 #define PRIORITY_EQUAL_LAST 0x00000000
568 #define PRIORITY_BIT 0x00000008
570 CMAPI
571 CONFIGRET
572 WINAPI
573 CM_Add_Empty_Log_Conf(
574 /*OUT*/ PLOG_CONF plcLogConf,
575 /*IN*/ DEVINST dnDevInst,
576 /*IN*/ PRIORITY Priority,
577 /*IN*/ ULONG ulFlags);
579 CMAPI
580 CONFIGRET
581 WINAPI
582 CM_Add_Empty_Log_Conf_Ex(
583 /*OUT*/ PLOG_CONF plcLogConf,
584 /*IN*/ DEVINST dnDevInst,
585 /*IN*/ PRIORITY Priority,
586 /*IN*/ ULONG ulFlags,
587 /*IN*/ HMACHINE hMachine);
589 /* CM_Add_ID.ulFlags constants */
590 #define CM_ADD_ID_HARDWARE 0x00000000
591 #define CM_ADD_ID_COMPATIBLE 0x00000001
592 #define CM_ADD_ID_BITS 0x00000001
594 CMAPI
595 CONFIGRET
596 WINAPI
597 CM_Add_IDA(
598 /*IN*/ DEVINST dnDevInst,
599 /*IN*/ PSTR pszID,
600 /*IN*/ ULONG ulFlags,
601 /*IN*/ HMACHINE hMachine);
603 CMAPI
604 CONFIGRET
605 WINAPI
606 CM_Add_ID_ExA(
607 /*IN*/ DEVINST dnDevInst,
608 /*IN*/ PSTR pszID,
609 /*IN*/ ULONG ulFlags,
610 /*IN*/ HMACHINE hMachine);
612 CMAPI
613 CONFIGRET
614 WINAPI
615 CM_Add_ID_ExW(
616 /*IN*/ DEVINST dnDevInst,
617 /*IN*/ PWSTR pszID,
618 /*IN*/ ULONG ulFlags,
619 /*IN*/ HMACHINE hMachine);
621 CMAPI
622 CONFIGRET
623 WINAPI
624 CM_Add_IDW(
625 /*IN*/ DEVINST dnDevInst,
626 /*IN*/ PWSTR pszID,
627 /*IN*/ ULONG ulFlags,
628 /*IN*/ HMACHINE hMachine);
630 #ifdef UNICODE
631 #define CM_Add_ID CM_Add_IDW
632 #define CM_Add_ID_Ex CM_Add_ID_ExW
633 #else
634 #define CM_Add_ID CM_Add_IDA
635 #define CM_Add_ID_Ex CM_Add_ID_ExA
636 #endif /* UNICODE */
638 /* FIXME: Obsolete CM_Add_Range */
640 CMAPI
641 CONFIGRET
642 WINAPI
643 CM_Add_Res_Des(
644 /*OUT*/ PRES_DES prdResDes,
645 /*IN*/ LOG_CONF lcLogConf,
646 /*IN*/ RESOURCEID ResourceID,
647 /*IN*/ PCVOID ResourceData,
648 /*IN*/ ULONG ResourceLen,
649 /*IN*/ ULONG ulFlags);
651 CMAPI
652 CONFIGRET
653 WINAPI
654 CM_Add_Res_Des_Ex(
655 /*OUT*/ PRES_DES prdResDes,
656 /*IN*/ LOG_CONF lcLogConf,
657 /*IN*/ RESOURCEID ResourceID,
658 /*IN*/ PCVOID ResourceData,
659 /*IN*/ ULONG ResourceLen,
660 /*IN*/ ULONG ulFlags,
661 /*IN*/ HMACHINE hMachine);
663 CMAPI
664 CONFIGRET
665 WINAPI
666 CM_Connect_MachineA(
667 /*IN*/ PCSTR UNCServerName,
668 /*OUT*/ PHMACHINE phMachine);
670 CMAPI
671 CONFIGRET
672 WINAPI
673 CM_Connect_MachineW(
674 /*IN*/ PCWSTR UNCServerName,
675 /*OUT*/ PHMACHINE phMachine);
677 #ifdef UNICODE
678 #define CM_Connect_Machine CM_Connect_MachineW
679 #else
680 #define CM_Connect_Machine CM_Connect_MachineA
681 #endif /* UNICODE */
683 /* FIXME: Obsolete CM_Create_DevNode */
684 /* FIXME: Obsolete CM_Create_DevNodeEx */
685 /* FIXME: Obsolete CM_Create_Range_List */
686 /* FIXME: Obsolete CM_Delete_Class_Key */
687 /* FIXME: Obsolete CM_Delete_Class_Key_Ex */
688 /* FIXME: Obsolete CM_Delete_DevNode_Key */
689 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
690 /* FIXME: Obsolete CM_Delete_Range */
691 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
692 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
693 /* FIXME: Obsolete CM_Disable_DevNode */
694 /* FIXME: Obsolete CM_Disable_DevNodeEx */
696 CMAPI
697 CONFIGRET
698 WINAPI
699 CM_Disconnect_Machine(
700 /*IN*/ HMACHINE hMachine);
702 /* FIXME: Obsolete CM_Enable_DevNode */
703 /* FIXME: Obsolete CM_Enable_DevNodeEx */
705 CMAPI
706 CONFIGRET
707 WINAPI
708 CM_Enumerate_Classes(
709 /*IN*/ ULONG ulClassIndex,
710 /*OUT*/ LPGUID ClassGuid,
711 /*IN*/ ULONG ulFlags);
713 CMAPI
714 CONFIGRET
715 WINAPI
716 CM_Enumerate_Classes_Ex(
717 /*IN*/ ULONG ulClassIndex,
718 /*OUT*/ LPGUID ClassGuid,
719 /*IN*/ ULONG ulFlags,
720 /*IN*/ HMACHINE hMachine);
722 CMAPI
723 CONFIGRET
724 WINAPI
725 CM_Enumerate_EnumeratorsA(
726 /*IN*/ ULONG ulEnumIndex,
727 /*OUT*/ PCHAR Buffer,
728 /*IN OUT*/ PULONG pulLength,
729 /*IN*/ ULONG ulFlags);
731 CMAPI
732 CONFIGRET
733 WINAPI
734 CM_Enumerate_Enumerators_ExA(
735 /*IN*/ ULONG ulEnumIndex,
736 /*OUT*/ PCHAR Buffer,
737 /*IN OUT*/ PULONG pulLength,
738 /*IN*/ ULONG ulFlags,
739 /*IN*/ HMACHINE hMachine);
741 CMAPI
742 CONFIGRET
743 WINAPI
744 CM_Enumerate_Enumerators_ExW(
745 /*IN*/ ULONG ulEnumIndex,
746 /*OUT*/ PWCHAR Buffer,
747 /*IN OUT*/ PULONG pulLength,
748 /*IN*/ ULONG ulFlags,
749 /*IN*/ HMACHINE hMachine);
751 CMAPI
752 CONFIGRET
753 WINAPI
754 CM_Enumerate_EnumeratorsW(
755 /*IN*/ ULONG ulEnumIndex,
756 /*OUT*/ PWCHAR Buffer,
757 /*IN OUT*/ PULONG pulLength,
758 /*IN*/ ULONG ulFlags);
760 #ifdef UNICODE
761 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
762 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
763 #else
764 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
765 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
766 #endif /* UNICODE */
768 /* FIXME: Obsolete CM_Find_Range */
769 /* FIXME: Obsolete CM_First_Range */
771 CMAPI
772 CONFIGRET
773 WINAPI
774 CM_Free_Log_Conf(
775 /*IN*/ LOG_CONF lcLogConfToBeFreed,
776 /*IN*/ ULONG ulFlags);
778 CMAPI
779 CONFIGRET
780 WINAPI
781 CM_Free_Log_Conf_Ex(
782 /*IN*/ LOG_CONF lcLogConfToBeFreed,
783 /*IN*/ ULONG ulFlags,
784 /*IN*/ HMACHINE hMachine);
786 CMAPI
787 CONFIGRET
788 WINAPI
789 CM_Free_Log_Conf_Handle(
790 /*IN*/ LOG_CONF lcLogConf);
792 /* FIXME: Obsolete CM_Free_Range_List */
794 CMAPI
795 CONFIGRET
796 WINAPI
797 CM_Free_Res_Des(
798 /*OUT*/ PRES_DES prdResDes,
799 /*IN*/ RES_DES rdResDes,
800 /*IN*/ ULONG ulFlags);
802 CMAPI
803 CONFIGRET
804 WINAPI
805 CM_Free_Res_Des_Ex(
806 /*OUT*/ PRES_DES prdResDes,
807 /*IN*/ RES_DES rdResDes,
808 /*IN*/ ULONG ulFlags,
809 /*IN*/ HMACHINE hMachine);
811 CMAPI
812 CONFIGRET
813 WINAPI
814 CM_Free_Res_Des_Handle(
815 /*IN*/ RES_DES rdResDes);
817 CMAPI
818 CONFIGRET
819 WINAPI
820 CM_Free_Resource_Conflict_Handle(
821 /*IN*/ CONFLICT_LIST clConflictList);
823 CMAPI
824 CONFIGRET
825 WINAPI
826 CM_Get_Child(
827 /*OUT*/ PDEVINST pdnDevInst,
828 /*IN*/ DEVINST dnDevInst,
829 /*IN*/ ULONG ulFlags);
831 CMAPI
832 CONFIGRET
833 WINAPI
834 CM_Get_Child_Ex(
835 /*OUT*/ PDEVINST pdnDevInst,
836 /*IN*/ DEVINST dnDevInst,
837 /*IN*/ ULONG ulFlags,
838 /*IN*/ HMACHINE hMachine);
840 /* FIXME: Obsolete CM_Get_Class_Name */
841 /* FIXME: Obsolete CM_Get_Class_Name_Ex */
842 /* FIXME: Obsolete CM_Get_Class_Key_Name */
843 /* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
844 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
846 CMAPI
847 CONFIGRET
848 WINAPI
849 CM_Get_Depth(
850 /*OUT*/ PULONG pulDepth,
851 /*IN*/ DEVINST dnDevInst,
852 /*IN*/ ULONG ulFlags);
854 CMAPI
855 CONFIGRET
856 WINAPI
857 CM_Get_Depth_Ex(
858 /*OUT*/ PULONG pulDepth,
859 /*IN*/ DEVINST dnDevInst,
860 /*IN*/ ULONG ulFlags,
861 /*IN*/ HMACHINE hMachine);
863 CMAPI
864 CONFIGRET
865 WINAPI
866 CM_Get_Device_IDA(
867 /*IN*/ DEVINST dnDevInst,
868 /*OUT*/ PCHAR Buffer,
869 /*IN*/ ULONG BufferLen,
870 /*IN*/ ULONG ulFlags);
872 CMAPI
873 CONFIGRET
874 WINAPI
875 CM_Get_Device_ID_ExA(
876 /*IN*/ DEVINST dnDevInst,
877 /*OUT*/ PCHAR Buffer,
878 /*IN*/ ULONG BufferLen,
879 /*IN*/ ULONG ulFlags,
880 /*IN*/ HMACHINE hMachine);
882 CMAPI
883 CONFIGRET
884 WINAPI
885 CM_Get_Device_ID_ExW(
886 /*IN*/ DEVINST dnDevInst,
887 /*OUT*/ PWCHAR Buffer,
888 /*IN*/ ULONG BufferLen,
889 /*IN*/ ULONG ulFlags,
890 /*IN*/ HMACHINE hMachine);
892 CMAPI
893 CONFIGRET
894 WINAPI
895 CM_Get_Device_IDW(
896 /*IN*/ DEVINST dnDevInst,
897 /*OUT*/ PWCHAR Buffer,
898 /*IN*/ ULONG BufferLen,
899 /*IN*/ ULONG ulFlags);
901 #ifdef UNICODE
902 #define CM_Get_Device_ID CM_Get_Device_IDW
903 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
904 #else
905 #define CM_Get_Device_ID CM_Get_Device_IDA
906 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
907 #endif /* UNICODE */
909 CMAPI
910 CONFIGRET
911 WINAPI
912 CM_Get_Device_ID_ListA(
913 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
914 /*OUT*/ PCHAR Buffer,
915 /*IN*/ ULONG BufferLen,
916 /*IN*/ ULONG ulFlags);
918 CMAPI
919 CONFIGRET
920 WINAPI
921 CM_Get_Device_ID_List_ExA(
922 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
923 /*OUT*/ PCHAR Buffer,
924 /*IN*/ ULONG BufferLen,
925 /*IN*/ ULONG ulFlags,
926 /*IN*/ HMACHINE hMachine);
928 CMAPI
929 CONFIGRET
930 WINAPI
931 CM_Get_Device_ID_List_ExW(
932 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
933 /*OUT*/ PWCHAR Buffer,
934 /*IN*/ ULONG BufferLen,
935 /*IN*/ ULONG ulFlags,
936 /*IN*/ HMACHINE hMachine);
938 CMAPI
939 CONFIGRET
940 WINAPI
941 CM_Get_Device_ID_ListW(
942 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
943 /*OUT*/ PWCHAR Buffer,
944 /*IN*/ ULONG BufferLen,
945 /*IN*/ ULONG ulFlags);
947 #ifdef UNICODE
948 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
949 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
950 #else
951 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
952 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
953 #endif /* UNICODE */
955 CMAPI
956 CONFIGRET
957 WINAPI
958 CM_Get_Device_ID_List_SizeA(
959 /*OUT*/ PULONG pulLen,
960 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
961 /*IN*/ ULONG ulFlags);
963 CMAPI
964 CONFIGRET
965 WINAPI
966 CM_Get_Device_ID_List_Size_ExA(
967 /*OUT*/ PULONG pulLen,
968 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
969 /*IN*/ ULONG ulFlags,
970 /*IN*/ HMACHINE hMachine);
972 CMAPI
973 CONFIGRET
974 WINAPI
975 CM_Get_Device_ID_List_Size_ExW(
976 /*OUT*/ PULONG pulLen,
977 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
978 /*IN*/ ULONG ulFlags,
979 /*IN*/ HMACHINE hMachine);
981 CMAPI
982 CONFIGRET
983 WINAPI
984 CM_Get_Device_ID_List_SizeW(
985 /*OUT*/ PULONG pulLen,
986 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
987 /*IN*/ ULONG ulFlags);
989 #ifdef UNICODE
990 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
991 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
992 #else
993 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
994 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
995 #endif /* UNICODE */
997 CMAPI
998 CONFIGRET
999 WINAPI
1000 CM_Get_Device_ID_Size(
1001 /*OUT*/ PULONG pulLen,
1002 /*IN*/ DEVINST dnDevInst,
1003 /*IN*/ ULONG ulFlags);
1005 CMAPI
1006 CONFIGRET
1007 WINAPI
1008 CM_Get_Device_ID_Size_Ex(
1009 /*OUT*/ PULONG pulLen,
1010 /*IN*/ DEVINST dnDevInst,
1011 /*IN*/ ULONG ulFlags,
1012 /*IN*/ HMACHINE hMachine);
1014 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1015 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1016 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1017 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1018 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1019 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1020 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1021 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1022 /* FIXME: Obsolete CM_Get_DevNode_Registry_Property */
1024 CMAPI
1025 CONFIGRET
1026 WINAPI
1027 CM_Get_DevNode_Status(
1028 /*OUT*/ PULONG pulStatus,
1029 /*OUT*/ PULONG pulProblemNumber,
1030 /*IN*/ DEVINST dnDevInst,
1031 /*IN*/ ULONG ulFlags);
1033 CMAPI
1034 CONFIGRET
1035 WINAPI
1036 CM_Get_DevNode_Status_Ex(
1037 /*OUT*/ PULONG pulStatus,
1038 /*OUT*/ PULONG pulProblemNumber,
1039 /*IN*/ DEVINST dnDevInst,
1040 /*IN*/ ULONG ulFlags,
1041 /*IN*/ HMACHINE hMachine);
1043 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1044 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1046 /* CM_Get_First_Log_Conf.ulFlags constants */
1047 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1048 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1049 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1050 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1051 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1052 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1053 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1054 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1056 CMAPI
1057 CONFIGRET
1058 WINAPI
1059 CM_Get_First_Log_Conf(
1060 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1061 /*IN*/ DEVINST dnDevInst,
1062 /*IN*/ ULONG ulFlags);
1064 CMAPI
1065 CONFIGRET
1066 WINAPI
1067 CM_Get_First_Log_Conf_Ex(
1068 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1069 /*IN*/ DEVINST dnDevInst,
1070 /*IN*/ ULONG ulFlags,
1071 /*IN*/ HMACHINE hMachine);
1073 /* FIXME: Obsolete CM_Get_Global_State */
1074 /* FIXME: Obsolete CM_Get_Global_State_Ex */
1075 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1076 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1077 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1078 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1080 CMAPI
1081 CONFIGRET
1082 WINAPI
1083 CM_Get_Log_Conf_Priority(
1084 /*IN*/ LOG_CONF lcLogConf,
1085 /*OUT*/ PPRIORITY pPriority,
1086 /*IN*/ ULONG ulFlags);
1088 CMAPI
1089 CONFIGRET
1090 WINAPI
1091 CM_Get_Log_Conf_Priority_Ex(
1092 /*IN*/ LOG_CONF lcLogConf,
1093 /*OUT*/ PPRIORITY pPriority,
1094 /*IN*/ ULONG ulFlags,
1095 /*IN*/ HMACHINE hMachine);
1097 CMAPI
1098 CONFIGRET
1099 WINAPI
1100 CM_Get_Next_Log_Conf(
1101 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1102 /*IN*/ LOG_CONF lcLogConf,
1103 /*IN*/ ULONG ulFlags);
1105 CMAPI
1106 CONFIGRET
1107 WINAPI
1108 CM_Get_Next_Log_Conf_Ex(
1109 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1110 /*IN*/ LOG_CONF lcLogConf,
1111 /*IN*/ ULONG ulFlags,
1112 /*IN*/ HMACHINE hMachine);
1114 CMAPI
1115 CONFIGRET
1116 WINAPI
1117 CM_Get_Next_Res_Des(
1118 /*OUT*/ PRES_DES prdResDes,
1119 /*IN*/ RES_DES rdResDes,
1120 /*IN*/ RESOURCEID ForResource,
1121 /*OUT*/ PRESOURCEID pResourceID,
1122 /*IN*/ ULONG ulFlags);
1124 CMAPI
1125 CONFIGRET
1126 WINAPI
1127 CM_Get_Next_Res_Des_Ex(
1128 /*OUT*/ PRES_DES prdResDes,
1129 /*IN*/ RES_DES rdResDes,
1130 /*IN*/ RESOURCEID ForResource,
1131 /*OUT*/ PRESOURCEID pResourceID,
1132 /*IN*/ ULONG ulFlags,
1133 /*IN*/ HMACHINE hMachine);
1135 CMAPI
1136 CONFIGRET
1137 WINAPI
1138 CM_Get_Parent(
1139 /*OUT*/ PDEVINST pdnDevInst,
1140 /*IN*/ DEVINST dnDevInst,
1141 /*IN*/ ULONG ulFlags);
1143 CMAPI
1144 CONFIGRET
1145 WINAPI
1146 CM_Get_Parent_Ex(
1147 /*OUT*/ PDEVINST pdnDevInst,
1148 /*IN*/ DEVINST dnDevInst,
1149 /*IN*/ ULONG ulFlags,
1150 /*IN*/ HMACHINE hMachine);
1152 CMAPI
1153 CONFIGRET
1154 WINAPI
1155 CM_Get_Res_Des_Data(
1156 /*IN*/ RES_DES rdResDes,
1157 /*OUT*/ PVOID Buffer,
1158 /*IN*/ ULONG BufferLen,
1159 /*IN*/ ULONG ulFlags);
1161 CMAPI
1162 CONFIGRET
1163 WINAPI
1164 CM_Get_Res_Des_Data_Ex(
1165 /*IN*/ RES_DES rdResDes,
1166 /*OUT*/ PVOID Buffer,
1167 /*IN*/ ULONG BufferLen,
1168 /*IN*/ ULONG ulFlags,
1169 /*IN*/ HMACHINE hMachine);
1171 CMAPI
1172 CONFIGRET
1173 WINAPI
1174 CM_Get_Res_Des_Data_Size(
1175 /*OUT*/ PULONG pulSize,
1176 /*IN*/ RES_DES rdResDes,
1177 /*IN*/ ULONG ulFlags);
1179 CMAPI
1180 CONFIGRET
1181 WINAPI
1182 CM_Get_Res_Des_Data_Size_Ex(
1183 /*OUT*/ PULONG pulSize,
1184 /*IN*/ RES_DES rdResDes,
1185 /*IN*/ ULONG ulFlags,
1186 /*IN*/ HMACHINE hMachine);
1188 CMAPI
1189 CONFIGRET
1190 WINAPI
1191 CM_Get_Resource_Conflict_Count(
1192 /*IN*/ CONFLICT_LIST clConflictList,
1193 /*OUT*/ PULONG pulCount);
1195 CMAPI
1196 CONFIGRET
1197 WINAPI
1198 CM_Get_Resource_Conflict_DetailsA(
1199 /*IN*/ CONFLICT_LIST clConflictList,
1200 /*IN*/ ULONG ulIndex,
1201 /*IN OUT*/ PCONFLICT_DETAILS_A pConflictDetails);
1203 CMAPI
1204 CONFIGRET
1205 WINAPI
1206 CM_Get_Resource_Conflict_DetailsW(
1207 /*IN*/ CONFLICT_LIST clConflictList,
1208 /*IN*/ ULONG ulIndex,
1209 /*IN OUT*/ PCONFLICT_DETAILS_W pConflictDetails);
1211 #ifdef UNICODE
1212 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1213 #else
1214 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1215 #endif /* UNICODE */
1217 CMAPI
1218 CONFIGRET
1219 WINAPI
1220 CM_Get_Sibling(
1221 /*OUT*/ PDEVINST pdnDevInst,
1222 /*IN*/ DEVINST DevInst,
1223 /*IN*/ ULONG ulFlags);
1225 CMAPI
1226 CONFIGRET
1227 WINAPI
1228 CM_Get_Sibling_Ex(
1229 /*OUT*/ PDEVINST pdnDevInst,
1230 /*IN*/ DEVINST DevInst,
1231 /*IN*/ ULONG ulFlags,
1232 /*IN*/ HMACHINE hMachine);
1234 CMAPI
1235 WORD
1236 WINAPI
1237 CM_Get_Version(
1238 VOID);
1240 CMAPI
1241 WORD
1242 WINAPI
1243 CM_Get_Version_Ex(
1244 /*IN*/ HMACHINE hMachine);
1246 /* FIXME: Obsolete CM_Intersect_Range_List */
1247 /* FIXME: Obsolete CM_Invert_Range_List */
1248 /* FIXME: Obsolete CM_Is_Dock_Station_Present */
1249 /* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
1251 /* CM_Locate_DevNode.ulFlags constants */
1252 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1253 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1254 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1255 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1256 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1258 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1259 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1260 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1261 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1262 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1264 CMAPI
1265 CONFIGRET
1266 WINAPI
1267 CM_Locate_DevNodeA(
1268 /*OUT*/ PDEVINST pdnDevInst,
1269 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1270 /*IN*/ ULONG ulFlags);
1272 CMAPI
1273 CONFIGRET
1274 WINAPI
1275 CM_Locate_DevNode_ExA(
1276 /*OUT*/ PDEVINST pdnDevInst,
1277 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1278 /*IN*/ ULONG ulFlags,
1279 /*IN*/ HMACHINE hMachine);
1281 CMAPI
1282 CONFIGRET
1283 WINAPI
1284 CM_Locate_DevNode_ExW(
1285 /*OUT*/ PDEVINST pdnDevInst,
1286 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1287 /*IN*/ ULONG ulFlags,
1288 /*IN*/ HMACHINE hMachine);
1290 CMAPI
1291 CONFIGRET
1292 WINAPI
1293 CM_Locate_DevNodeW(
1294 /*OUT*/ PDEVINST pdnDevInst,
1295 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1296 /*IN*/ ULONG ulFlags);
1298 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1299 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1300 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1301 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1303 #ifdef UNICODE
1304 #define CM_Locate_DevNode CM_Locate_DevNodeW
1305 #define CM_Locate_DevInst CM_Locate_DevNodeW
1306 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1307 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1308 #else
1309 #define CM_Locate_DevNode CM_Locate_DevNodeA
1310 #define CM_Locate_DevInst CM_Locate_DevNodeA
1311 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1312 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1313 #endif /* UNICODE */
1315 /* FIXME: Obsolete CM_Merge_Range_List */
1317 CMAPI
1318 CONFIGRET
1319 WINAPI
1320 CM_Modify_Res_Des(
1321 /*OUT*/ PRES_DES prdResDes,
1322 /*IN*/ RES_DES rdResDes,
1323 /*IN*/ RESOURCEID ResourceID,
1324 /*IN*/ PCVOID ResourceData,
1325 /*IN*/ ULONG ResourceLen,
1326 /*IN*/ ULONG ulFlags);
1328 CMAPI
1329 CONFIGRET
1330 WINAPI
1331 CM_Modify_Res_Des_Ex(
1332 /*OUT*/ PRES_DES prdResDes,
1333 /*IN*/ RES_DES rdResDes,
1334 /*IN*/ RESOURCEID ResourceID,
1335 /*IN*/ PCVOID ResourceData,
1336 /*IN*/ ULONG ResourceLen,
1337 /*IN*/ ULONG ulFlags,
1338 /*IN*/ HMACHINE hMachine);
1340 /* FIXME: Obsolete CM_Move_DevNode */
1341 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1342 /* FIXME: Obsolete CM_Next_Range */
1343 /* FIXME: Obsolete CM_Open_Class_Key */
1344 /* FIXME: Obsolete CM_Open_Class_Key_Ex */
1345 /* FIXME: Obsolete CM_Open_DevNode_Key */
1346 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1348 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1349 #define CM_REMOVE_UI_OK 0x00000000
1350 #define CM_REMOVE_UI_NOT_OK 0x00000001
1351 #define CM_REMOVE_NO_RESTART 0x00000002
1352 #define CM_REMOVE_BITS 0x00000003
1354 CMAPI
1355 CONFIGRET
1356 WINAPI
1357 CM_Query_And_Remove_SubTreeA(
1358 /*IN*/ DEVINST dnAncestor,
1359 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1360 /*OUT*/ LPSTR pszVetoName,
1361 /*IN*/ ULONG ulNameLength,
1362 /*IN*/ ULONG ulFlags);
1364 CMAPI
1365 CONFIGRET
1366 WINAPI
1367 CM_Query_And_Remove_SubTreeW(
1368 /*IN*/ DEVINST dnAncestor,
1369 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1370 /*OUT*/ LPWSTR pszVetoName,
1371 /*IN*/ ULONG ulNameLength,
1372 /*IN*/ ULONG ulFlags);
1374 CMAPI
1375 CONFIGRET
1376 WINAPI
1377 CM_Query_And_Remove_SubTree_ExA(
1378 /*IN*/ DEVINST dnAncestor,
1379 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1380 /*OUT*/ LPSTR pszVetoName,
1381 /*IN*/ ULONG ulNameLength,
1382 /*IN*/ ULONG ulFlags,
1383 /*IN*/ HMACHINE hMachine);
1385 CMAPI
1386 CONFIGRET
1387 WINAPI
1388 CM_Query_And_Remove_SubTree_ExW(
1389 /*IN*/ DEVINST dnAncestor,
1390 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1391 /*OUT*/ LPWSTR pszVetoName,
1392 /*IN*/ ULONG ulNameLength,
1393 /*IN*/ ULONG ulFlags,
1394 /*IN*/ HMACHINE hMachine);
1396 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1397 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1398 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1399 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1400 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1401 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1402 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1404 CMAPI
1405 CONFIGRET
1406 WINAPI
1407 CM_Query_Resource_Conflict_List(
1408 /*OUT*/ PCONFLICT_LIST pclConflictList,
1409 /*IN*/ DEVINST dnDevInst,
1410 /*IN*/ RESOURCEID ResourceID,
1411 /*IN*/ PCVOID ResourceData,
1412 /*IN*/ ULONG ResourceLen,
1413 /*IN*/ ULONG ulFlags,
1414 /*IN*/ HMACHINE hMachine);
1416 /* CM_Reenumerate_DevNode.ulFlags constants */
1417 #define CM_REENUMERATE_NORMAL 0x00000000
1418 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1419 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1420 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1421 #define CM_REENUMERATE_BITS 0x00000007
1423 CMAPI
1424 CONFIGRET
1425 WINAPI
1426 CM_Reenumerate_DevNode(
1427 /*IN*/ DEVINST dnDevInst,
1428 /*IN*/ ULONG ulFlags);
1430 CMAPI
1431 CONFIGRET
1432 WINAPI
1433 CM_Reenumerate_DevNode_Ex(
1434 /*IN*/ DEVINST dnDevInst,
1435 /*IN*/ ULONG ulFlags,
1436 /*IN*/ HMACHINE hMachine);
1438 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1439 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1441 /* FIXME: Obsolete CM_Register_Device_Driver */
1442 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1443 /* FIXME: Obsolete CM_Register_Device_Interface */
1444 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1445 /* FIXME: Obsolete CM_Remove_SubTree */
1446 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1448 CMAPI
1449 CONFIGRET
1450 WINAPI
1451 CM_Request_Device_EjectA(
1452 /*IN*/ DEVINST dnDevInst,
1453 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1454 /*OUT*/ LPSTR pszVetoName,
1455 /*IN*/ ULONG ulNameLength,
1456 /*IN*/ ULONG ulFlags);
1458 CMAPI
1459 CONFIGRET
1460 WINAPI
1461 CM_Request_Device_Eject_ExW(
1462 /*IN*/ DEVINST dnDevInst,
1463 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1464 /*OUT*/ LPWSTR pszVetoName,
1465 /*IN*/ ULONG ulNameLength,
1466 /*IN*/ ULONG ulFlags,
1467 /*IN*/ HMACHINE hMachine);
1469 CMAPI
1470 CONFIGRET
1471 WINAPI
1472 CM_Request_Device_Eject_ExA(
1473 /*IN*/ DEVINST dnDevInst,
1474 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1475 /*OUT*/ LPSTR pszVetoName,
1476 /*IN*/ ULONG ulNameLength,
1477 /*IN*/ ULONG ulFlags,
1478 /*IN*/ HMACHINE hMachine);
1480 CMAPI
1481 CONFIGRET
1482 WINAPI
1483 CM_Request_Device_EjectW(
1484 /*IN*/ DEVINST dnDevInst,
1485 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1486 /*OUT*/ LPWSTR pszVetoName,
1487 /*IN*/ ULONG ulNameLength,
1488 /*IN*/ ULONG ulFlags);
1490 #ifdef UNICODE
1491 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1492 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1493 #else
1494 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1495 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1496 #endif /* UNICODE */
1498 /* FIXME: Obsolete CM_Request_Eject_PC */
1499 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1500 /* FIXME: Obsolete CM_Run_Detection */
1501 /* FIXME: Obsolete CM_Run_Detection_Ex */
1502 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1503 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1504 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1505 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property */
1506 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property_Ex */
1507 /* FIXME: Obsolete CM_Set_HW_Prof */
1508 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1509 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1510 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1511 /* FIXME: Obsolete CM_Setup_DevNode */
1512 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1513 /* FIXME: Obsolete CM_Test_Range_Available */
1514 /* FIXME: Obsolete CM_Uninstall_DevNode */
1515 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1516 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1517 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1519 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1521 CMAPI
1522 DWORD
1523 WINAPI
1524 CMP_WaitNoPendingInstallEvents(
1525 /*IN*/ DWORD dwTimeout);
1527 #include <poppack.h>
1529 #ifdef __cplusplus
1531 #endif
1533 #endif /* __CFGMGR32_H */