source: Daodan/MinGW/include/ddk/cfgmgr32.h@ 1054

Last change on this file since 1054 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 38.5 KB
Line 
1/*
2 * cfgmgr32.h
3 *
4 * PnP configuration manager
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
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.
20 *
21 */
22
23#ifndef __CFGMGR32_H
24#define __CFGMGR32_H
25
26#if __GNUC__ >=3
27#pragma GCC system_header
28#endif
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#include "ntddk.h"
35
36#if defined(_CFGMGR32_)
37#define CMAPI DECLSPEC_EXPORT
38#else
39#define CMAPI DECLSPEC_IMPORT
40#endif
41
42#include "cfg.h"
43
44#include <pshpack1.h>
45
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
110
111
112typedef DWORD RETURN_TYPE;
113typedef RETURN_TYPE CONFIGRET;
114
115typedef HANDLE HMACHINE;
116typedef HMACHINE *PHMACHINE;
117
118typedef DWORD_PTR RES_DES;
119typedef RES_DES *PRES_DES;
120
121typedef DWORD_PTR RANGE_ELEMENT;
122typedef RANGE_ELEMENT *PRANGE_ELEMENT;
123
124typedef ULONG_PTR CONFLICT_LIST;
125typedef CONFLICT_LIST *PCONFLICT_LIST;
126
127typedef DWORD_PTR LOG_CONF;
128typedef LOG_CONF *PLOG_CONF;
129
130typedef ULONG PRIORITY;
131typedef PRIORITY *PPRIORITY;
132
133typedef DWORD_PTR RANGE_LIST;
134typedef RANGE_LIST *PRANGE_LIST;
135
136typedef DWORD DEVNODE, DEVINST;
137typedef DEVNODE *PDEVNODE, *PDEVINST;
138
139typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
140typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
141
142#ifdef UNICODE
143typedef DEVNODEID_W DEVNODEID;
144typedef DEVINSTID_W DEVINSTID;
145#else
146typedef DEVNODEID_A DEVNODEID;
147typedef DEVINSTID_A DEVINSTID;
148#endif
149
150typedef ULONG REGDISPOSITION;
151
152typedef ULONG RESOURCEID;
153typedef RESOURCEID *PRESOURCEID;
154
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
159
160
161#define MAX_CONFIG_VALUE 9999
162#define MAX_INSTANCE_VALUE 9999
163
164#define MAX_DEVICE_ID_LEN 200
165#define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
166
167#define MAX_CLASS_NAME_LEN 32
168#define MAX_GUID_STRING_LEN 39
169#define MAX_PROFILE_LEN 80
170
171
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
187
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
197
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
201
202
203typedef 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;
210
211typedef 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;
217
218#define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
219
220typedef struct BusNumber_Resource_s {
221 BUSNUMBER_DES BusNumber_Header;
222 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
223} BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
224
225typedef 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;
233
234typedef struct CS_Resource_s {
235 CS_DES CS_Header;
236} CS_RESOURCE, *PCS_RESOURCE;
237
238typedef 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;
246
247typedef struct DevPrivate_Range_s {
248 DWORD PR_Data1;
249 DWORD PR_Data2;
250 DWORD PR_Data3;
251} DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
252
253#define PType_Range sizeof(DEVPRIVATE_RANGE)
254
255typedef struct DevPrivate_Resource_s {
256 DEVPRIVATE_DES PRV_Header;
257 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
258} DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
259
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
266
267#define mDD_BusMaster 0x4
268#define fDD_NoBusMaster 0x0
269#define fDD_BusMaster 0x4
270
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
276
277typedef 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;
283
284typedef struct DMA_Range_s {
285 ULONG DR_Min;
286 ULONG DR_Max;
287 ULONG DR_Flags;
288} DMA_RANGE, *PDMA_RANGE;
289
290#define DType_Range sizeof(DMA_RANGE)
291
292typedef struct DMA_Resource_s {
293 DMA_DES DMA_Header;
294 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
295} DMA_RESOURCE, *PDMA_RESOURCE;
296
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
308
309typedef 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;
316
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
322
323typedef 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;
331
332#define IOType_Range sizeof(IO_RANGE)
333
334typedef struct IO_Resource_s {
335 IO_DES IO_Header;
336 IO_RANGE IO_Data[ANYSIZE_ARRAY];
337} IO_RESOURCE, *PIO_RESOURCE;
338
339/* IRQ_DES.IRQD_flags constants */
340#define mIRQD_Share 0x1
341#define fIRQD_Exclusive 0x0
342#define fIRQD_Share 0x1
343
344#define fIRQD_Share_Bit 0
345#define fIRQD_Level_Bit 1
346
347#define mIRQD_Edge_Level 0x2
348#define fIRQD_Level 0x0
349#define fIRQD_Edge 0x2
350
351typedef 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;
358
359typedef 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;
366
367#ifdef _WIN64
368typedef IRQ_DES_64 IRQ_DES;
369typedef PIRQ_DES_64 PIRQ_DES;
370#else
371typedef IRQ_DES_32 IRQ_DES;
372typedef PIRQ_DES_32 PIRQ_DES;
373#endif
374
375typedef struct IRQ_Range_s {
376 ULONG IRQR_Min;
377 ULONG IRQR_Max;
378 ULONG IRQR_Flags;
379} IRQ_RANGE, *PIRQ_RANGE;
380
381#define IRQType_Range sizeof(IRQ_RANGE)
382
383typedef struct IRQ_Resource_s {
384 IRQ_DES IRQ_Header;
385 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
386} IRQ_RESOURCE, *PIRQ_RESOURCE;
387
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
393
394#define mMD_32_24 0x2
395#define fMD_32_24 mMD_32_24
396#define fMD_24 0x0
397#define fMD_32 0x2
398
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
404
405#define mMD_Readable 0x8
406#define fMD_Readable mMD_Readable
407#define fMD_ReadAllowed 0x0
408#define fMD_ReadDisallowed 0x8
409
410#define mMD_CombinedWrite 0x10
411#define fMD_CombinedWrite mMD_CombinedWrite
412#define fMD_CombinedWriteDisallowed 0x0
413#define fMD_CombinedWriteAllowed 0x10
414
415#define mMD_Cacheable 0x20
416#define fMD_NonCacheable 0x0
417#define fMD_Cacheable 0x20
418
419typedef 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;
427
428typedef 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;
436
437#define MType_Range sizeof(MEM_RANGE)
438
439typedef struct Mem_Resource_s {
440 MEM_DES MEM_Header;
441 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
442} MEM_RESOURCE, *PMEM_RESOURCE;
443
444/* MFCARD_DES.PMF_Flags constants */
445#define fPMF_AUDIO_ENABLE 0x8
446#define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
447
448typedef 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;
457
458typedef struct MfCard_Resource_s {
459 MFCARD_DES MfCard_Header;
460} MFCARD_RESOURCE, *PMFCARD_RESOURCE;
461
462/* PCCARD_DES.PCD_Flags constants */
463
464typedef 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;
473
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
490
491#define fPCD_MEM_A 0x4
492
493#define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
494
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
499
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
504
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
510
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
516
517#define PCD_MAX_MEMORY 2
518#define PCD_MAX_IO 2
519
520typedef struct PcCard_Resource_s {
521 PCCARD_DES PcCard_Header;
522} PCCARD_RESOURCE, *PPCCARD_RESOURCE;
523
524
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
531
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
536
537typedef 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;
545
546typedef 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;
554
555#ifdef UNICODE
556typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
557typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
558#else
559typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
560typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
561#endif
562
563
564
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
569
570CMAPI
571CONFIGRET
572WINAPI
573CM_Add_Empty_Log_Conf(
574 /*OUT*/ PLOG_CONF plcLogConf,
575 /*IN*/ DEVINST dnDevInst,
576 /*IN*/ PRIORITY Priority,
577 /*IN*/ ULONG ulFlags);
578
579CMAPI
580CONFIGRET
581WINAPI
582CM_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);
588
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
593
594CMAPI
595CONFIGRET
596WINAPI
597CM_Add_IDA(
598 /*IN*/ DEVINST dnDevInst,
599 /*IN*/ PSTR pszID,
600 /*IN*/ ULONG ulFlags,
601 /*IN*/ HMACHINE hMachine);
602
603CMAPI
604CONFIGRET
605WINAPI
606CM_Add_ID_ExA(
607 /*IN*/ DEVINST dnDevInst,
608 /*IN*/ PSTR pszID,
609 /*IN*/ ULONG ulFlags,
610 /*IN*/ HMACHINE hMachine);
611
612CMAPI
613CONFIGRET
614WINAPI
615CM_Add_ID_ExW(
616 /*IN*/ DEVINST dnDevInst,
617 /*IN*/ PWSTR pszID,
618 /*IN*/ ULONG ulFlags,
619 /*IN*/ HMACHINE hMachine);
620
621CMAPI
622CONFIGRET
623WINAPI
624CM_Add_IDW(
625 /*IN*/ DEVINST dnDevInst,
626 /*IN*/ PWSTR pszID,
627 /*IN*/ ULONG ulFlags,
628 /*IN*/ HMACHINE hMachine);
629
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 */
637
638/* FIXME: Obsolete CM_Add_Range */
639
640CMAPI
641CONFIGRET
642WINAPI
643CM_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);
650
651CMAPI
652CONFIGRET
653WINAPI
654CM_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);
662
663CMAPI
664CONFIGRET
665WINAPI
666CM_Connect_MachineA(
667 /*IN*/ PCSTR UNCServerName,
668 /*OUT*/ PHMACHINE phMachine);
669
670CMAPI
671CONFIGRET
672WINAPI
673CM_Connect_MachineW(
674 /*IN*/ PCWSTR UNCServerName,
675 /*OUT*/ PHMACHINE phMachine);
676
677#ifdef UNICODE
678#define CM_Connect_Machine CM_Connect_MachineW
679#else
680#define CM_Connect_Machine CM_Connect_MachineA
681#endif /* UNICODE */
682
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 */
695
696CMAPI
697CONFIGRET
698WINAPI
699CM_Disconnect_Machine(
700 /*IN*/ HMACHINE hMachine);
701
702/* FIXME: Obsolete CM_Enable_DevNode */
703/* FIXME: Obsolete CM_Enable_DevNodeEx */
704
705CMAPI
706CONFIGRET
707WINAPI
708CM_Enumerate_Classes(
709 /*IN*/ ULONG ulClassIndex,
710 /*OUT*/ LPGUID ClassGuid,
711 /*IN*/ ULONG ulFlags);
712
713CMAPI
714CONFIGRET
715WINAPI
716CM_Enumerate_Classes_Ex(
717 /*IN*/ ULONG ulClassIndex,
718 /*OUT*/ LPGUID ClassGuid,
719 /*IN*/ ULONG ulFlags,
720 /*IN*/ HMACHINE hMachine);
721
722CMAPI
723CONFIGRET
724WINAPI
725CM_Enumerate_EnumeratorsA(
726 /*IN*/ ULONG ulEnumIndex,
727 /*OUT*/ PCHAR Buffer,
728 /*IN OUT*/ PULONG pulLength,
729 /*IN*/ ULONG ulFlags);
730
731CMAPI
732CONFIGRET
733WINAPI
734CM_Enumerate_Enumerators_ExA(
735 /*IN*/ ULONG ulEnumIndex,
736 /*OUT*/ PCHAR Buffer,
737 /*IN OUT*/ PULONG pulLength,
738 /*IN*/ ULONG ulFlags,
739 /*IN*/ HMACHINE hMachine);
740
741CMAPI
742CONFIGRET
743WINAPI
744CM_Enumerate_Enumerators_ExW(
745 /*IN*/ ULONG ulEnumIndex,
746 /*OUT*/ PWCHAR Buffer,
747 /*IN OUT*/ PULONG pulLength,
748 /*IN*/ ULONG ulFlags,
749 /*IN*/ HMACHINE hMachine);
750
751CMAPI
752CONFIGRET
753WINAPI
754CM_Enumerate_EnumeratorsW(
755 /*IN*/ ULONG ulEnumIndex,
756 /*OUT*/ PWCHAR Buffer,
757 /*IN OUT*/ PULONG pulLength,
758 /*IN*/ ULONG ulFlags);
759
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 */
767
768/* FIXME: Obsolete CM_Find_Range */
769/* FIXME: Obsolete CM_First_Range */
770
771CMAPI
772CONFIGRET
773WINAPI
774CM_Free_Log_Conf(
775 /*IN*/ LOG_CONF lcLogConfToBeFreed,
776 /*IN*/ ULONG ulFlags);
777
778CMAPI
779CONFIGRET
780WINAPI
781CM_Free_Log_Conf_Ex(
782 /*IN*/ LOG_CONF lcLogConfToBeFreed,
783 /*IN*/ ULONG ulFlags,
784 /*IN*/ HMACHINE hMachine);
785
786CMAPI
787CONFIGRET
788WINAPI
789CM_Free_Log_Conf_Handle(
790 /*IN*/ LOG_CONF lcLogConf);
791
792/* FIXME: Obsolete CM_Free_Range_List */
793
794CMAPI
795CONFIGRET
796WINAPI
797CM_Free_Res_Des(
798 /*OUT*/ PRES_DES prdResDes,
799 /*IN*/ RES_DES rdResDes,
800 /*IN*/ ULONG ulFlags);
801
802CMAPI
803CONFIGRET
804WINAPI
805CM_Free_Res_Des_Ex(
806 /*OUT*/ PRES_DES prdResDes,
807 /*IN*/ RES_DES rdResDes,
808 /*IN*/ ULONG ulFlags,
809 /*IN*/ HMACHINE hMachine);
810
811CMAPI
812CONFIGRET
813WINAPI
814CM_Free_Res_Des_Handle(
815 /*IN*/ RES_DES rdResDes);
816
817CMAPI
818CONFIGRET
819WINAPI
820CM_Free_Resource_Conflict_Handle(
821 /*IN*/ CONFLICT_LIST clConflictList);
822
823CMAPI
824CONFIGRET
825WINAPI
826CM_Get_Child(
827 /*OUT*/ PDEVINST pdnDevInst,
828 /*IN*/ DEVINST dnDevInst,
829 /*IN*/ ULONG ulFlags);
830
831CMAPI
832CONFIGRET
833WINAPI
834CM_Get_Child_Ex(
835 /*OUT*/ PDEVINST pdnDevInst,
836 /*IN*/ DEVINST dnDevInst,
837 /*IN*/ ULONG ulFlags,
838 /*IN*/ HMACHINE hMachine);
839
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 */
845
846CMAPI
847CONFIGRET
848WINAPI
849CM_Get_Depth(
850 /*OUT*/ PULONG pulDepth,
851 /*IN*/ DEVINST dnDevInst,
852 /*IN*/ ULONG ulFlags);
853
854CMAPI
855CONFIGRET
856WINAPI
857CM_Get_Depth_Ex(
858 /*OUT*/ PULONG pulDepth,
859 /*IN*/ DEVINST dnDevInst,
860 /*IN*/ ULONG ulFlags,
861 /*IN*/ HMACHINE hMachine);
862
863CMAPI
864CONFIGRET
865WINAPI
866CM_Get_Device_IDA(
867 /*IN*/ DEVINST dnDevInst,
868 /*OUT*/ PCHAR Buffer,
869 /*IN*/ ULONG BufferLen,
870 /*IN*/ ULONG ulFlags);
871
872CMAPI
873CONFIGRET
874WINAPI
875CM_Get_Device_ID_ExA(
876 /*IN*/ DEVINST dnDevInst,
877 /*OUT*/ PCHAR Buffer,
878 /*IN*/ ULONG BufferLen,
879 /*IN*/ ULONG ulFlags,
880 /*IN*/ HMACHINE hMachine);
881
882CMAPI
883CONFIGRET
884WINAPI
885CM_Get_Device_ID_ExW(
886 /*IN*/ DEVINST dnDevInst,
887 /*OUT*/ PWCHAR Buffer,
888 /*IN*/ ULONG BufferLen,
889 /*IN*/ ULONG ulFlags,
890 /*IN*/ HMACHINE hMachine);
891
892CMAPI
893CONFIGRET
894WINAPI
895CM_Get_Device_IDW(
896 /*IN*/ DEVINST dnDevInst,
897 /*OUT*/ PWCHAR Buffer,
898 /*IN*/ ULONG BufferLen,
899 /*IN*/ ULONG ulFlags);
900
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 */
908
909CMAPI
910CONFIGRET
911WINAPI
912CM_Get_Device_ID_ListA(
913 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
914 /*OUT*/ PCHAR Buffer,
915 /*IN*/ ULONG BufferLen,
916 /*IN*/ ULONG ulFlags);
917
918CMAPI
919CONFIGRET
920WINAPI
921CM_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);
927
928CMAPI
929CONFIGRET
930WINAPI
931CM_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);
937
938CMAPI
939CONFIGRET
940WINAPI
941CM_Get_Device_ID_ListW(
942 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
943 /*OUT*/ PWCHAR Buffer,
944 /*IN*/ ULONG BufferLen,
945 /*IN*/ ULONG ulFlags);
946
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 */
954
955CMAPI
956CONFIGRET
957WINAPI
958CM_Get_Device_ID_List_SizeA(
959 /*OUT*/ PULONG pulLen,
960 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
961 /*IN*/ ULONG ulFlags);
962
963CMAPI
964CONFIGRET
965WINAPI
966CM_Get_Device_ID_List_Size_ExA(
967 /*OUT*/ PULONG pulLen,
968 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
969 /*IN*/ ULONG ulFlags,
970 /*IN*/ HMACHINE hMachine);
971
972CMAPI
973CONFIGRET
974WINAPI
975CM_Get_Device_ID_List_Size_ExW(
976 /*OUT*/ PULONG pulLen,
977 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
978 /*IN*/ ULONG ulFlags,
979 /*IN*/ HMACHINE hMachine);
980
981CMAPI
982CONFIGRET
983WINAPI
984CM_Get_Device_ID_List_SizeW(
985 /*OUT*/ PULONG pulLen,
986 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
987 /*IN*/ ULONG ulFlags);
988
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 */
996
997CMAPI
998CONFIGRET
999WINAPI
1000CM_Get_Device_ID_Size(
1001 /*OUT*/ PULONG pulLen,
1002 /*IN*/ DEVINST dnDevInst,
1003 /*IN*/ ULONG ulFlags);
1004
1005CMAPI
1006CONFIGRET
1007WINAPI
1008CM_Get_Device_ID_Size_Ex(
1009 /*OUT*/ PULONG pulLen,
1010 /*IN*/ DEVINST dnDevInst,
1011 /*IN*/ ULONG ulFlags,
1012 /*IN*/ HMACHINE hMachine);
1013
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 */
1023
1024CMAPI
1025CONFIGRET
1026WINAPI
1027CM_Get_DevNode_Status(
1028 /*OUT*/ PULONG pulStatus,
1029 /*OUT*/ PULONG pulProblemNumber,
1030 /*IN*/ DEVINST dnDevInst,
1031 /*IN*/ ULONG ulFlags);
1032
1033CMAPI
1034CONFIGRET
1035WINAPI
1036CM_Get_DevNode_Status_Ex(
1037 /*OUT*/ PULONG pulStatus,
1038 /*OUT*/ PULONG pulProblemNumber,
1039 /*IN*/ DEVINST dnDevInst,
1040 /*IN*/ ULONG ulFlags,
1041 /*IN*/ HMACHINE hMachine);
1042
1043#define CM_Get_DevInst_Status CM_Get_DevNode_Status
1044#define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1045
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. */
1055
1056CMAPI
1057CONFIGRET
1058WINAPI
1059CM_Get_First_Log_Conf(
1060 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1061 /*IN*/ DEVINST dnDevInst,
1062 /*IN*/ ULONG ulFlags);
1063
1064CMAPI
1065CONFIGRET
1066WINAPI
1067CM_Get_First_Log_Conf_Ex(
1068 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1069 /*IN*/ DEVINST dnDevInst,
1070 /*IN*/ ULONG ulFlags,
1071 /*IN*/ HMACHINE hMachine);
1072
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 */
1079
1080CMAPI
1081CONFIGRET
1082WINAPI
1083CM_Get_Log_Conf_Priority(
1084 /*IN*/ LOG_CONF lcLogConf,
1085 /*OUT*/ PPRIORITY pPriority,
1086 /*IN*/ ULONG ulFlags);
1087
1088CMAPI
1089CONFIGRET
1090WINAPI
1091CM_Get_Log_Conf_Priority_Ex(
1092 /*IN*/ LOG_CONF lcLogConf,
1093 /*OUT*/ PPRIORITY pPriority,
1094 /*IN*/ ULONG ulFlags,
1095 /*IN*/ HMACHINE hMachine);
1096
1097CMAPI
1098CONFIGRET
1099WINAPI
1100CM_Get_Next_Log_Conf(
1101 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1102 /*IN*/ LOG_CONF lcLogConf,
1103 /*IN*/ ULONG ulFlags);
1104
1105CMAPI
1106CONFIGRET
1107WINAPI
1108CM_Get_Next_Log_Conf_Ex(
1109 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1110 /*IN*/ LOG_CONF lcLogConf,
1111 /*IN*/ ULONG ulFlags,
1112 /*IN*/ HMACHINE hMachine);
1113
1114CMAPI
1115CONFIGRET
1116WINAPI
1117CM_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);
1123
1124CMAPI
1125CONFIGRET
1126WINAPI
1127CM_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);
1134
1135CMAPI
1136CONFIGRET
1137WINAPI
1138CM_Get_Parent(
1139 /*OUT*/ PDEVINST pdnDevInst,
1140 /*IN*/ DEVINST dnDevInst,
1141 /*IN*/ ULONG ulFlags);
1142
1143CMAPI
1144CONFIGRET
1145WINAPI
1146CM_Get_Parent_Ex(
1147 /*OUT*/ PDEVINST pdnDevInst,
1148 /*IN*/ DEVINST dnDevInst,
1149 /*IN*/ ULONG ulFlags,
1150 /*IN*/ HMACHINE hMachine);
1151
1152CMAPI
1153CONFIGRET
1154WINAPI
1155CM_Get_Res_Des_Data(
1156 /*IN*/ RES_DES rdResDes,
1157 /*OUT*/ PVOID Buffer,
1158 /*IN*/ ULONG BufferLen,
1159 /*IN*/ ULONG ulFlags);
1160
1161CMAPI
1162CONFIGRET
1163WINAPI
1164CM_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);
1170
1171CMAPI
1172CONFIGRET
1173WINAPI
1174CM_Get_Res_Des_Data_Size(
1175 /*OUT*/ PULONG pulSize,
1176 /*IN*/ RES_DES rdResDes,
1177 /*IN*/ ULONG ulFlags);
1178
1179CMAPI
1180CONFIGRET
1181WINAPI
1182CM_Get_Res_Des_Data_Size_Ex(
1183 /*OUT*/ PULONG pulSize,
1184 /*IN*/ RES_DES rdResDes,
1185 /*IN*/ ULONG ulFlags,
1186 /*IN*/ HMACHINE hMachine);
1187
1188CMAPI
1189CONFIGRET
1190WINAPI
1191CM_Get_Resource_Conflict_Count(
1192 /*IN*/ CONFLICT_LIST clConflictList,
1193 /*OUT*/ PULONG pulCount);
1194
1195CMAPI
1196CONFIGRET
1197WINAPI
1198CM_Get_Resource_Conflict_DetailsA(
1199 /*IN*/ CONFLICT_LIST clConflictList,
1200 /*IN*/ ULONG ulIndex,
1201 /*IN OUT*/ PCONFLICT_DETAILS_A pConflictDetails);
1202
1203CMAPI
1204CONFIGRET
1205WINAPI
1206CM_Get_Resource_Conflict_DetailsW(
1207 /*IN*/ CONFLICT_LIST clConflictList,
1208 /*IN*/ ULONG ulIndex,
1209 /*IN OUT*/ PCONFLICT_DETAILS_W pConflictDetails);
1210
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 */
1216
1217CMAPI
1218CONFIGRET
1219WINAPI
1220CM_Get_Sibling(
1221 /*OUT*/ PDEVINST pdnDevInst,
1222 /*IN*/ DEVINST DevInst,
1223 /*IN*/ ULONG ulFlags);
1224
1225CMAPI
1226CONFIGRET
1227WINAPI
1228CM_Get_Sibling_Ex(
1229 /*OUT*/ PDEVINST pdnDevInst,
1230 /*IN*/ DEVINST DevInst,
1231 /*IN*/ ULONG ulFlags,
1232 /*IN*/ HMACHINE hMachine);
1233
1234CMAPI
1235WORD
1236WINAPI
1237CM_Get_Version(
1238 VOID);
1239
1240CMAPI
1241WORD
1242WINAPI
1243CM_Get_Version_Ex(
1244 /*IN*/ HMACHINE hMachine);
1245
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 */
1250
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
1257
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
1263
1264CMAPI
1265CONFIGRET
1266WINAPI
1267CM_Locate_DevNodeA(
1268 /*OUT*/ PDEVINST pdnDevInst,
1269 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1270 /*IN*/ ULONG ulFlags);
1271
1272CMAPI
1273CONFIGRET
1274WINAPI
1275CM_Locate_DevNode_ExA(
1276 /*OUT*/ PDEVINST pdnDevInst,
1277 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1278 /*IN*/ ULONG ulFlags,
1279 /*IN*/ HMACHINE hMachine);
1280
1281CMAPI
1282CONFIGRET
1283WINAPI
1284CM_Locate_DevNode_ExW(
1285 /*OUT*/ PDEVINST pdnDevInst,
1286 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1287 /*IN*/ ULONG ulFlags,
1288 /*IN*/ HMACHINE hMachine);
1289
1290CMAPI
1291CONFIGRET
1292WINAPI
1293CM_Locate_DevNodeW(
1294 /*OUT*/ PDEVINST pdnDevInst,
1295 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1296 /*IN*/ ULONG ulFlags);
1297
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
1302
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 */
1314
1315/* FIXME: Obsolete CM_Merge_Range_List */
1316
1317CMAPI
1318CONFIGRET
1319WINAPI
1320CM_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);
1327
1328CMAPI
1329CONFIGRET
1330WINAPI
1331CM_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);
1339
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 */
1347
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
1353
1354CMAPI
1355CONFIGRET
1356WINAPI
1357CM_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);
1363
1364CMAPI
1365CONFIGRET
1366WINAPI
1367CM_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);
1373
1374CMAPI
1375CONFIGRET
1376WINAPI
1377CM_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);
1384
1385CMAPI
1386CONFIGRET
1387WINAPI
1388CM_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);
1395
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 */
1403
1404CMAPI
1405CONFIGRET
1406WINAPI
1407CM_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);
1415
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
1422
1423CMAPI
1424CONFIGRET
1425WINAPI
1426CM_Reenumerate_DevNode(
1427 /*IN*/ DEVINST dnDevInst,
1428 /*IN*/ ULONG ulFlags);
1429
1430CMAPI
1431CONFIGRET
1432WINAPI
1433CM_Reenumerate_DevNode_Ex(
1434 /*IN*/ DEVINST dnDevInst,
1435 /*IN*/ ULONG ulFlags,
1436 /*IN*/ HMACHINE hMachine);
1437
1438#define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1439#define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1440
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 */
1447
1448CMAPI
1449CONFIGRET
1450WINAPI
1451CM_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);
1457
1458CMAPI
1459CONFIGRET
1460WINAPI
1461CM_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);
1468
1469CMAPI
1470CONFIGRET
1471WINAPI
1472CM_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);
1479
1480CMAPI
1481CONFIGRET
1482WINAPI
1483CM_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);
1489
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 */
1497
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 */
1518
1519#define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1520
1521CMAPI
1522DWORD
1523WINAPI
1524CMP_WaitNoPendingInstallEvents(
1525 /*IN*/ DWORD dwTimeout);
1526
1527#include <poppack.h>
1528
1529#ifdef __cplusplus
1530}
1531#endif
1532
1533#endif /* __CFGMGR32_H */
Note: See TracBrowser for help on using the repository browser.