Create the AHCI branch for Aman's work
[reactos.git] / sdk / include / psdk / cfgmgr32.h
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 #pragma once
24
25 #ifndef _CFGMGR32_H_
26 #define _CFGMGR32_H_
27
28 #include <cfg.h>
29
30 #ifndef GUID_DEFINED
31 #include <guiddef.h>
32 #endif
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37
38 #if defined(_CFGMGR32_)
39 #define CMAPI
40 #else
41 #define CMAPI DECLSPEC_IMPORT
42 #endif
43
44 typedef CONST VOID *PCVOID;
45
46 #define MAX_CONFIG_VALUE 9999
47 #define MAX_INSTANCE_VALUE 9999
48
49 #define MAX_DEVICE_ID_LEN 200
50 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
51
52 #define MAX_CLASS_NAME_LEN 32
53 #define MAX_GUID_STRING_LEN 39
54 #define MAX_PROFILE_LEN 80
55
56 #define MAX_MEM_REGISTERS 9
57 #define MAX_IO_PORTS 20
58 #define MAX_IRQS 7
59 #define MAX_DMA_CHANNELS 7
60
61 #define DWORD_MAX 0xffffffffUL
62 #define DWORDLONG_MAX 0xffffffffffffffffui64
63
64 #define CONFIGMG_VERSION 0x0400
65
66 #ifdef NT_INCLUDED
67
68 typedef unsigned __int64 DWORDLONG;
69 typedef DWORDLONG *PDWORDLONG;
70
71 #endif /* NT_INCLUDED */
72
73 typedef _Return_type_success_(return == 0) DWORD RETURN_TYPE;
74 typedef RETURN_TYPE CONFIGRET;
75
76 typedef DWORD DEVNODE, DEVINST;
77 typedef DEVNODE *PDEVNODE, *PDEVINST;
78
79 typedef _Null_terminated_ CHAR *DEVNODEID_A, *DEVINSTID_A;
80 typedef _Null_terminated_ WCHAR *DEVNODEID_W, *DEVINSTID_W;
81
82 #ifdef UNICODE
83 typedef DEVNODEID_W DEVNODEID;
84 typedef DEVINSTID_W DEVINSTID;
85 #else
86 typedef DEVNODEID_A DEVNODEID;
87 typedef DEVINSTID_A DEVINSTID;
88 #endif
89
90 typedef DWORD_PTR LOG_CONF;
91 typedef LOG_CONF *PLOG_CONF;
92
93 typedef DWORD_PTR RES_DES;
94 typedef RES_DES *PRES_DES;
95
96 typedef ULONG RESOURCEID;
97 typedef RESOURCEID *PRESOURCEID;
98
99 typedef ULONG PRIORITY;
100 typedef PRIORITY *PPRIORITY;
101
102 typedef DWORD_PTR RANGE_LIST;
103 typedef RANGE_LIST *PRANGE_LIST;
104
105 typedef DWORD_PTR RANGE_ELEMENT;
106 typedef RANGE_ELEMENT *PRANGE_ELEMENT;
107
108 typedef HANDLE HMACHINE;
109 typedef HMACHINE *PHMACHINE;
110
111 typedef ULONG_PTR CONFLICT_LIST;
112 typedef CONFLICT_LIST *PCONFLICT_LIST;
113
114 typedef struct _CONFLICT_DETAILS_A {
115 ULONG CD_ulSize;
116 ULONG CD_ulMask;
117 DEVINST CD_dnDevInst;
118 RES_DES CD_rdResDes;
119 ULONG CD_ulFlags;
120 CHAR CD_szDescription[MAX_PATH];
121 } CONFLICT_DETAILS_A, *PCONFLICT_DETAILS_A;
122
123 typedef struct _CONFLICT_DETAILS_W {
124 ULONG CD_ulSize;
125 ULONG CD_ulMask;
126 DEVINST CD_dnDevInst;
127 RES_DES CD_rdResDes;
128 ULONG CD_ulFlags;
129 WCHAR CD_szDescription[MAX_PATH];
130 } CONFLICT_DETAILS_W, *PCONFLICT_DETAILS_W;
131
132 #ifdef UNICODE
133 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
134 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
135 #else
136 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
137 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
138 #endif
139
140 /* CONFLICT_DETAILS.CD.ulMask constants */
141 #define CM_CDMASK_DEVINST 0x00000001
142 #define CM_CDMASK_RESDES 0x00000002
143 #define CM_CDMASK_FLAGS 0x00000004
144 #define CM_CDMASK_DESCRIPTION 0x00000008
145 #define CM_CDMASK_VALID 0x0000000F
146
147 /* CONFLICT_DETAILS.CD.ulFlags constants */
148 #define CM_CDFLAGS_DRIVER 0x00000001
149 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
150 #define CM_CDFLAGS_RESERVED 0x00000004
151
152 typedef ULONG REGDISPOSITION;
153
154 #include <pshpack1.h>
155
156 /* MEM_DES.MD_Flags constants */
157 #define mMD_MemoryType 0x1
158 #define fMD_MemoryType mMD_MemoryType
159 #define fMD_ROM 0x0
160 #define fMD_RAM 0x1
161
162 #define mMD_32_24 0x2
163 #define fMD_32_24 mMD_32_24
164 #define fMD_24 0x0
165 #define fMD_32 0x2
166
167 #define mMD_Prefetchable 0x4
168 #define fMD_Prefetchable mMD_Prefetchable
169 #define fMD_Pref mMD_Prefetchable
170 #define fMD_PrefetchDisallowed 0x0
171 #define fMD_PrefetchAllowed 0x4
172
173 #define mMD_Readable 0x8
174 #define fMD_Readable mMD_Readable
175 #define fMD_ReadAllowed 0x0
176 #define fMD_ReadDisallowed 0x8
177
178 #define mMD_CombinedWrite 0x10
179 #define fMD_CombinedWrite mMD_CombinedWrite
180 #define fMD_CombinedWriteDisallowed 0x0
181 #define fMD_CombinedWriteAllowed 0x10
182
183 #define mMD_Cacheable 0x20
184 #define fMD_NonCacheable 0x0
185 #define fMD_Cacheable 0x20
186 #define fMD_WINDOW_DECODE 0x40
187 #define fMD_MEMORY_BAR 0x80
188
189 typedef struct Mem_Range_s {
190 DWORDLONG MR_Align;
191 ULONG MR_nBytes;
192 DWORDLONG MR_Min;
193 DWORDLONG MR_Max;
194 DWORD MR_Flags;
195 DWORD MR_Reserved;
196 } MEM_RANGE, *PMEM_RANGE;
197
198 typedef struct Mem_Des_s {
199 DWORD MD_Count;
200 DWORD MD_Type;
201 DWORDLONG MD_Alloc_Base;
202 DWORDLONG MD_Alloc_End;
203 DWORD MD_Flags;
204 DWORD MD_Reserved;
205 } MEM_DES, *PMEM_DES;
206
207 typedef struct Mem_Resource_s {
208 MEM_DES MEM_Header;
209 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
210 } MEM_RESOURCE, *PMEM_RESOURCE;
211
212 #define MType_Range sizeof(MEM_RANGE)
213
214 typedef struct Mem_Large_Range_s {
215 DWORDLONG MLR_Align;
216 ULONGLONG MLR_nBytes;
217 DWORDLONG MLR_Min;
218 DWORDLONG MLR_Max;
219 DWORD MLR_Flags;
220 DWORD MLR_Reserved;
221 } MEM_LARGE_RANGE, *PMEM_LARGE_RANGE;
222
223 typedef struct Mem_Large_Des_s {
224 DWORD MLD_Count;
225 DWORD MLD_Type;
226 DWORDLONG MLD_Alloc_Base;
227 DWORDLONG MLD_Alloc_End;
228 DWORD MLD_Flags;
229 DWORD MLD_Reserved;
230 } MEM_LARGE_DES, *PMEM_LARGE_DES;
231
232 typedef struct Mem_Large_Resource_s {
233 MEM_LARGE_DES MEM_LARGE_Header;
234 MEM_LARGE_RANGE MEM_LARGE_Data[ANYSIZE_ARRAY];
235 } MEM_LARGE_RESOURCE, *PMEM_LARGE_RESOURCE;
236
237 #define MLType_Range sizeof(struct Mem_Large_Range_s)
238
239 /* IO_DES.Type constants and masks */
240 #define fIOD_PortType 0x1
241 #define fIOD_Memory 0x0
242 #define fIOD_IO 0x1
243 #define fIOD_DECODE 0x00fc
244 #define fIOD_10_BIT_DECODE 0x0004
245 #define fIOD_12_BIT_DECODE 0x0008
246 #define fIOD_16_BIT_DECODE 0x0010
247 #define fIOD_POSITIVE_DECODE 0x0020
248 #define fIOD_PASSIVE_DECODE 0x0040
249 #define fIOD_WINDOW_DECODE 0x0080
250 #define fIOD_PORT_BAR 0x0100
251
252 /* IO_RANGE.IOR_Alias constants */
253 #define IO_ALIAS_10_BIT_DECODE 0x00000004
254 #define IO_ALIAS_12_BIT_DECODE 0x00000010
255 #define IO_ALIAS_16_BIT_DECODE 0x00000000
256 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
257
258 typedef struct IO_Range_s {
259 DWORDLONG IOR_Align;
260 DWORD IOR_nPorts;
261 DWORDLONG IOR_Min;
262 DWORDLONG IOR_Max;
263 DWORD IOR_RangeFlags;
264 DWORDLONG IOR_Alias;
265 } IO_RANGE, *PIO_RANGE;
266
267 typedef struct IO_Des_s {
268 DWORD IOD_Count;
269 DWORD IOD_Type;
270 DWORDLONG IOD_Alloc_Base;
271 DWORDLONG IOD_Alloc_End;
272 DWORD IOD_DesFlags;
273 } IO_DES, *PIO_DES;
274
275 typedef struct IO_Resource_s {
276 IO_DES IO_Header;
277 IO_RANGE IO_Data[ANYSIZE_ARRAY];
278 } IO_RESOURCE, *PIO_RESOURCE;
279
280 #define IOA_Local 0xff
281
282 #define IOType_Range sizeof(IO_RANGE)
283
284 /* DMA_DES.DD_Flags constants and masks */
285 #define mDD_Width 0x3
286 #define fDD_BYTE 0x0
287 #define fDD_WORD 0x1
288 #define fDD_DWORD 0x2
289 #define fDD_BYTE_AND_WORD 0x3
290
291 #define mDD_BusMaster 0x4
292 #define fDD_NoBusMaster 0x0
293 #define fDD_BusMaster 0x4
294
295 #define mDD_Type 0x18
296 #define fDD_TypeStandard 0x00
297 #define fDD_TypeA 0x08
298 #define fDD_TypeB 0x10
299 #define fDD_TypeF 0x18
300
301 typedef struct DMA_Des_s {
302 DWORD DD_Count;
303 DWORD DD_Type;
304 DWORD DD_Flags;
305 ULONG DD_Alloc_Chan;
306 } DMA_DES, *PDMA_DES;
307
308 typedef struct DMA_Range_s {
309 ULONG DR_Min;
310 ULONG DR_Max;
311 ULONG DR_Flags;
312 } DMA_RANGE, *PDMA_RANGE;
313
314 #define DType_Range sizeof(DMA_RANGE)
315
316 typedef struct DMA_Resource_s {
317 DMA_DES DMA_Header;
318 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
319 } DMA_RESOURCE, *PDMA_RESOURCE;
320
321 /* IRQ_DES.IRQD_flags constants */
322 #define mIRQD_Share 0x1
323 #define fIRQD_Exclusive 0x0
324 #define fIRQD_Share 0x1
325
326 #define fIRQD_Share_Bit 0
327 #define fIRQD_Level_Bit 1
328
329 #define mIRQD_Edge_Level 0x2
330 #define fIRQD_Level 0x0
331 #define fIRQD_Edge 0x2
332
333 typedef struct IRQ_Range_s {
334 ULONG IRQR_Min;
335 ULONG IRQR_Max;
336 #if defined(NT_PROCESSOR_GROUPS)
337 USHORT IRQR_Flags;
338 USHORT IRQR_Rsvdz;
339 #else
340 ULONG IRQR_Flags;
341 #endif
342 } IRQ_RANGE, *PIRQ_RANGE;
343
344 typedef struct IRQ_Des_32_s {
345 DWORD IRQD_Count;
346 DWORD IRQD_Type;
347 #if defined(NT_PROCESSOR_GROUPS)
348 USHORT IRQD_Flags;
349 USHORT IRQD_Group;
350 #else
351 DWORD IRQD_Flags;
352 #endif
353 ULONG IRQD_Alloc_Num;
354 ULONG32 IRQD_Affinity;
355 } IRQ_DES_32, *PIRQ_DES_32;
356
357 typedef struct IRQ_Des_64_s {
358 DWORD IRQD_Count;
359 DWORD IRQD_Type;
360 #if defined(NT_PROCESSOR_GROUPS)
361 USHORT IRQD_Flags;
362 USHORT IRQD_Group;
363 #else
364 DWORD IRQD_Flags;
365 #endif
366 ULONG IRQD_Alloc_Num;
367 ULONG64 IRQD_Affinity;
368 } IRQ_DES_64, *PIRQ_DES_64;
369
370 #ifdef _WIN64
371 typedef IRQ_DES_64 IRQ_DES;
372 typedef PIRQ_DES_64 PIRQ_DES;
373 #else
374 typedef IRQ_DES_32 IRQ_DES;
375 typedef PIRQ_DES_32 PIRQ_DES;
376 #endif
377
378 typedef struct IRQ_Resource_32_s {
379 IRQ_DES_32 IRQ_Header;
380 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
381 } IRQ_RESOURCE_32, *PIRQ_RESOURCE_32;
382
383 typedef struct IRQ_Resource_64_s {
384 IRQ_DES_64 IRQ_Header;
385 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
386 } IRQ_RESOURCE_64, *PIRQ_RESOURCE_64;
387
388 #ifdef _WIN64
389 typedef IRQ_RESOURCE_64 IRQ_RESOURCE;
390 typedef PIRQ_RESOURCE_64 PIRQ_RESOURCE;
391 #else
392 typedef IRQ_RESOURCE_32 IRQ_RESOURCE;
393 typedef PIRQ_RESOURCE_32 PIRQ_RESOURCE;
394 #endif
395
396 #define IRQType_Range sizeof(IRQ_RANGE)
397
398 #if (WINVER >= _WIN32_WINNT_WINXP)
399 #define CM_RESDES_WIDTH_DEFAULT 0x00000000
400 #define CM_RESDES_WIDTH_32 0x00000001
401 #define CM_RESDES_WIDTH_64 0x00000002
402 #define CM_RESDES_WIDTH_BITS 0x00000003
403 #endif
404
405 typedef struct DevPrivate_Range_s {
406 DWORD PR_Data1;
407 DWORD PR_Data2;
408 DWORD PR_Data3;
409 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
410
411 typedef struct DevPrivate_Des_s {
412 DWORD PD_Count;
413 DWORD PD_Type;
414 DWORD PD_Data1;
415 DWORD PD_Data2;
416 DWORD PD_Data3;
417 DWORD PD_Flags;
418 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
419
420 #define PType_Range sizeof(DEVPRIVATE_RANGE)
421
422 typedef struct DevPrivate_Resource_s {
423 DEVPRIVATE_DES PRV_Header;
424 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
425 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
426
427 typedef struct CS_Des_s {
428 DWORD CSD_SignatureLength;
429 DWORD CSD_LegacyDataOffset;
430 DWORD CSD_LegacyDataSize;
431 DWORD CSD_Flags;
432 GUID CSD_ClassGuid;
433 BYTE CSD_Signature[ANYSIZE_ARRAY];
434 } CS_DES, *PCS_DES;
435
436 typedef struct CS_Resource_s {
437 CS_DES CS_Header;
438 } CS_RESOURCE, *PCS_RESOURCE;
439
440 #define mPCD_IO_8_16 0x1
441 #define fPCD_IO_8 0x0
442 #define fPCD_IO_16 0x1
443 #define mPCD_MEM_8_16 0x2
444 #define fPCD_MEM_8 0x0
445 #define fPCD_MEM_16 0x2
446 #define mPCD_MEM_A_C 0xC
447 #define fPCD_MEM1_A 0x4
448 #define fPCD_MEM2_A 0x8
449 #define fPCD_IO_ZW_8 0x10
450 #define fPCD_IO_SRC_16 0x20
451 #define fPCD_IO_WS_16 0x40
452 #define mPCD_MEM_WS 0x300
453 #define fPCD_MEM_WS_ONE 0x100
454 #define fPCD_MEM_WS_TWO 0x200
455 #define fPCD_MEM_WS_THREE 0x300
456
457 #if (WINVER >= _WIN32_WINNT_WINXP)
458
459 #define fPCD_MEM_A 0x4
460
461 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
462
463 #define fPCD_IO1_16 0x00010000
464 #define fPCD_IO1_ZW_8 0x00020000
465 #define fPCD_IO1_SRC_16 0x00040000
466 #define fPCD_IO1_WS_16 0x00080000
467
468 #define fPCD_IO2_16 0x00100000
469 #define fPCD_IO2_ZW_8 0x00200000
470 #define fPCD_IO2_SRC_16 0x00400000
471 #define fPCD_IO2_WS_16 0x00800000
472
473 #define mPCD_MEM1_WS 0x03000000
474 #define fPCD_MEM1_WS_ONE 0x01000000
475 #define fPCD_MEM1_WS_TWO 0x02000000
476 #define fPCD_MEM1_WS_THREE 0x03000000
477 #define fPCD_MEM1_16 0x04000000
478
479 #define mPCD_MEM2_WS 0x30000000
480 #define fPCD_MEM2_WS_ONE 0x10000000
481 #define fPCD_MEM2_WS_TWO 0x20000000
482 #define fPCD_MEM2_WS_THREE 0x30000000
483 #define fPCD_MEM2_16 0x40000000
484
485 #define PCD_MAX_MEMORY 2
486 #define PCD_MAX_IO 2
487
488 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
489
490 typedef struct PcCard_Des_s {
491 DWORD PCD_Count;
492 DWORD PCD_Type;
493 DWORD PCD_Flags;
494 BYTE PCD_ConfigIndex;
495 BYTE PCD_Reserved[3];
496 DWORD PCD_MemoryCardBase1;
497 DWORD PCD_MemoryCardBase2;
498 #if (WINVER >= _WIN32_WINNT_WINXP)
499 DWORD PCD_MemoryCardBase[PCD_MAX_MEMORY];
500 WORD PCD_MemoryFlags[PCD_MAX_MEMORY];
501 BYTE PCD_IoFlags[PCD_MAX_IO];
502 #endif
503 } PCCARD_DES, *PPCCARD_DES;
504
505 typedef struct PcCard_Resource_s {
506 PCCARD_DES PcCard_Header;
507 } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
508
509 /* MFCARD_DES.PMF_Flags constants */
510 #define fPMF_AUDIO_ENABLE 0x8
511 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
512
513 typedef struct MfCard_Des_s {
514 DWORD PMF_Count;
515 DWORD PMF_Type;
516 DWORD PMF_Flags;
517 BYTE PMF_ConfigOptions;
518 BYTE PMF_IoResourceIndex;
519 BYTE PMF_Reserved[2];
520 DWORD PMF_ConfigRegisterBase;
521 } MFCARD_DES, *PMFCARD_DES;
522
523 typedef struct MfCard_Resource_s {
524 MFCARD_DES MfCard_Header;
525 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
526
527 typedef struct BusNumber_Des_s {
528 DWORD BUSD_Count;
529 DWORD BUSD_Type;
530 DWORD BUSD_Flags;
531 ULONG BUSD_Alloc_Base;
532 ULONG BUSD_Alloc_End;
533 } BUSNUMBER_DES, *PBUSNUMBER_DES;
534
535 typedef struct BusNumber_Range_s {
536 ULONG BUSR_Min;
537 ULONG BUSR_Max;
538 ULONG BUSR_nBusNumbers;
539 ULONG BUSR_Flags;
540 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
541
542 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
543
544 typedef struct BusNumber_Resource_s {
545 BUSNUMBER_DES BusNumber_Header;
546 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
547 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
548
549 #define CM_HWPI_NOT_DOCKABLE 0x00000000
550 #define CM_HWPI_UNDOCKED 0x00000001
551 #define CM_HWPI_DOCKED 0x00000002
552
553 typedef struct HWProfileInfo_sA {
554 ULONG HWPI_ulHWProfile;
555 CHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
556 DWORD HWPI_dwFlags;
557 } HWPROFILEINFO_A, *PHWPROFILEINFO_A;
558
559 typedef struct HWProfileInfo_sW {
560 ULONG HWPI_ulHWProfile;
561 WCHAR HWPI_szFriendlyName[MAX_PROFILE_LEN];
562 DWORD HWPI_dwFlags;
563 } HWPROFILEINFO_W, *PHWPROFILEINFO_W;
564
565 #ifdef UNICODE
566 typedef HWPROFILEINFO_W HWPROFILEINFO;
567 typedef PHWPROFILEINFO_W PHWPROFILEINFO;
568 #else
569 typedef HWPROFILEINFO_A HWPROFILEINFO;
570 typedef PHWPROFILEINFO_A PHWPROFILEINFO;
571 #endif
572
573 #include <poppack.h>
574
575 #define ResType_All 0x00000000
576 #define ResType_None 0x00000000
577 #define ResType_Mem 0x00000001
578 #define ResType_IO 0x00000002
579 #define ResType_DMA 0x00000003
580 #define ResType_IRQ 0x00000004
581 #define ResType_DoNotUse 0x00000005
582 #define ResType_BusNumber 0x00000006
583 #define ResType_MemLarge 0x00000007
584 #define ResType_MAX 0x00000007
585 #define ResType_Ignored_Bit 0x00008000
586 #define ResType_ClassSpecific 0x0000FFFF
587 #define ResType_Reserved 0x00008000
588 #define ResType_DevicePrivate 0x00008001
589 #define ResType_PcCardConfig 0x00008002
590 #define ResType_MfCardConfig 0x00008003
591
592 #define CM_ADD_RANGE_ADDIFCONFLICT 0x00000000
593 #define CM_ADD_RANGE_DONOTADDIFCONFLICT 0x00000001
594 #define CM_ADD_RANGE_BITS 0x00000001
595
596 #define BASIC_LOG_CONF 0x00000000
597 #define FILTERED_LOG_CONF 0x00000001
598 #define ALLOC_LOG_CONF 0x00000002
599 #define BOOT_LOG_CONF 0x00000003
600 #define FORCED_LOG_CONF 0x00000004
601 #define OVERRIDE_LOG_CONF 0x00000005
602 #define NUM_LOG_CONF 0x00000006
603 #define LOG_CONF_BITS 0x00000007
604
605 #define PRIORITY_EQUAL_FIRST 0x00000008
606 #define PRIORITY_EQUAL_LAST 0x00000000
607 #define PRIORITY_BIT 0x00000008
608
609 #define RegDisposition_OpenAlways 0x00000000
610 #define RegDisposition_OpenExisting 0x00000001
611 #define RegDisposition_Bits 0x00000001
612
613 /* CM_Add_ID.ulFlags constants */
614 #define CM_ADD_ID_HARDWARE 0x00000000
615 #define CM_ADD_ID_COMPATIBLE 0x00000001
616 #define CM_ADD_ID_BITS 0x00000001
617
618 /* Flags for CM_Create_DevNode[_Ex].ulFlags constants */
619 #define CM_CREATE_DEVNODE_NORMAL 0x00000000
620 #define CM_CREATE_DEVNODE_NO_WAIT_INSTALL 0x00000001
621 #define CM_CREATE_DEVNODE_PHANTOM 0x00000002
622 #define CM_CREATE_DEVNODE_GENERATE_ID 0x00000004
623 #define CM_CREATE_DEVNODE_DO_NOT_INSTALL 0x00000008
624 #define CM_CREATE_DEVNODE_BITS 0x0000000F
625
626 #define CM_CREATE_DEVINST_NORMAL CM_CREATE_DEVNODE_NORMAL
627 #define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
628 #define CM_CREATE_DEVINST_PHANTOM CM_CREATE_DEVNODE_PHANTOM
629 #define CM_CREATE_DEVINST_GENERATE_ID CM_CREATE_DEVNODE_GENERATE_ID
630 #define CM_CREATE_DEVINST_DO_NOT_INSTALL CM_CREATE_DEVNODE_DO_NOT_INSTALL
631 #define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS
632
633 /* Flags for CM_Delete_Class_Key.ulFlags constants */
634 #define CM_DELETE_CLASS_ONLY 0x00000000
635 #define CM_DELETE_CLASS_SUBKEYS 0x00000001
636 #if (WINVER >= _WIN32_WINNT_VISTA)
637 #define CM_DELETE_CLASS_INTERFACE 0x00000002
638 #endif
639 #define CM_DELETE_CLASS_BITS 0x00000003
640
641 /* CM_Run_Detection[_Ex].ulFlags constants */
642 #define CM_DETECT_NEW_PROFILE 0x00000001
643 #define CM_DETECT_CRASHED 0x00000002
644 #define CM_DETECT_HWPROF_FIRST_BOOT 0x00000004
645 #define CM_DETECT_RUN 0x80000000
646 #define CM_DETECT_BITS 0x80000007
647
648 #define CM_DISABLE_POLITE 0x00000000
649 #define CM_DISABLE_ABSOLUTE 0x00000001
650 #define CM_DISABLE_HARDWARE 0x00000002
651 #define CM_DISABLE_UI_NOT_OK 0x00000004
652 #define CM_DISABLE_BITS 0x00000007
653
654 #define CM_GETIDLIST_FILTER_NONE 0x00000000
655 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
656 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002
657 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
658 #define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
659 #define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
660 #define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
661 #define CM_GETIDLIST_DONOTGENERATE 0x10000040
662 #if (WINVER <= _WIN32_WINNT_VISTA)
663 #define CM_GETIDLIST_FILTER_BITS 0x1000007F
664 #endif
665 #if (WINVER >= _WIN32_WINNT_WIN7)
666 #define CM_GETIDLIST_FILTER_TRANSPORTRELATIONS 0x00000080
667 #define CM_GETIDLIST_FILTER_PRESENT 0x00000100
668 #define CM_GETIDLIST_FILTER_CLASS 0x00000200
669 #define CM_GETIDLIST_FILTER_BITS 0x100003FF
670 #endif
671
672 #define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
673 #define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
674 #define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
675
676 #define CM_DRP_DEVICEDESC 0x00000001
677 #define CM_DRP_HARDWAREID 0x00000002
678 #define CM_DRP_COMPATIBLEIDS 0x00000003
679 #define CM_DRP_UNUSED0 0x00000004
680 #define CM_DRP_SERVICE 0x00000005
681 #define CM_DRP_UNUSED1 0x00000006
682 #define CM_DRP_UNUSED2 0x00000007
683 #define CM_DRP_CLASS 0x00000008
684 #define CM_DRP_CLASSGUID 0x00000009
685 #define CM_DRP_DRIVER 0x0000000A
686 #define CM_DRP_CONFIGFLAGS 0x0000000B
687 #define CM_DRP_MFG 0x0000000C
688 #define CM_DRP_FRIENDLYNAME 0x0000000D
689 #define CM_DRP_LOCATION_INFORMATION 0x0000000E
690 #define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME 0x0000000F
691 #define CM_DRP_CAPABILITIES 0x00000010
692 #define CM_DRP_UI_NUMBER 0x00000011
693 #define CM_DRP_UPPERFILTERS 0x00000012
694 #if (WINVER >= _WIN32_WINNT_VISTA)
695 #define CM_CRP_UPPERFILTERS CM_DRP_UPPERFILTERS
696 #endif
697 #define CM_DRP_LOWERFILTERS 0x00000013
698 #if (WINVER >= _WIN32_WINNT_VISTA)
699 #define CM_CRP_LOWERFILTERS CM_DRP_LOWERFILTERS
700 #endif
701 #define CM_DRP_BUSTYPEGUID 0x00000014
702 #define CM_DRP_LEGACYBUSTYPE 0x00000015
703 #define CM_DRP_BUSNUMBER 0x00000016
704 #define CM_DRP_ENUMERATOR_NAME 0x00000017
705 #define CM_DRP_SECURITY 0x00000018
706 #define CM_CRP_SECURITY CM_DRP_SECURITY
707 #define CM_DRP_SECURITY_SDS 0x00000019
708 #define CM_CRP_SECURITY_SDS CM_DRP_SECURITY_SDS
709 #define CM_DRP_DEVTYPE 0x0000001A
710 #define CM_CRP_DEVTYPE CM_DRP_DEVTYPE
711 #define CM_DRP_EXCLUSIVE 0x0000001B
712 #define CM_CRP_EXCLUSIVE CM_DRP_EXCLUSIVE
713 #define CM_DRP_CHARACTERISTICS 0x0000001C
714 #define CM_CRP_CHARACTERISTICS CM_DRP_CHARACTERISTICS
715 #define CM_DRP_ADDRESS 0x0000001D
716 #define CM_DRP_UI_NUMBER_DESC_FORMAT 0x0000001E
717 #if (WINVER >= _WIN32_WINNT_WINXP)
718 #define CM_DRP_DEVICE_POWER_DATA 0x0000001F
719 #define CM_DRP_REMOVAL_POLICY 0x00000020
720 #define CM_DRP_REMOVAL_POLICY_HW_DEFAULT 0x00000021
721 #define CM_DRP_REMOVAL_POLICY_OVERRIDE 0x00000022
722 #define CM_DRP_INSTALL_STATE 0x00000023
723 #endif
724 #if (WINVER >= _WIN32_WINNT_WS03)
725 #define CM_DRP_LOCATION_PATHS 0x00000024
726 #endif
727 #if (WINVER >= _WIN32_WINNT_WIN7)
728 #define CM_DRP_BASE_CONTAINERID 0x00000025
729 #endif
730 #define CM_DRP_MIN 0x00000001
731 #define CM_CRP_MIN CM_DRP_MIN
732 #define CM_DRP_MAX 0x00000025
733 #define CM_CRP_MAX CM_DRP_MAX
734
735 #define CM_DEVCAP_LOCKSUPPORTED 0x00000001
736 #define CM_DEVCAP_EJECTSUPPORTED 0x00000002
737 #define CM_DEVCAP_REMOVABLE 0x00000004
738 #define CM_DEVCAP_DOCKDEVICE 0x00000008
739 #define CM_DEVCAP_UNIQUEID 0x00000010
740 #define CM_DEVCAP_SILENTINSTALL 0x00000020
741 #define CM_DEVCAP_RAWDEVICEOK 0x00000040
742 #define CM_DEVCAP_SURPRISEREMOVALOK 0x00000080
743 #define CM_DEVCAP_HARDWAREDISABLED 0x00000100
744 #define CM_DEVCAP_NONDYNAMIC 0x00000200
745
746 #if (WINVER >= _WIN32_WINNT_WINXP)
747
748 #define CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL 1
749 #define CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL 2
750 #define CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL 3
751
752 #define CM_INSTALL_STATE_INSTALLED 0
753 #define CM_INSTALL_STATE_NEEDS_REINSTALL 1
754 #define CM_INSTALL_STATE_FAILED_INSTALL 2
755 #define CM_INSTALL_STATE_FINISH_INSTALL 3
756
757 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
758
759 /* CM_Locate_DevNode.ulFlags constants */
760 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
761 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
762 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
763 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
764 #define CM_LOCATE_DEVNODE_BITS 0x00000007
765
766 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
767 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
768 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
769 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
770 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
771
772 #define CM_OPEN_CLASS_KEY_INSTALLER 0x00000000
773 #define CM_OPEN_CLASS_KEY_INTERFACE 0x00000001
774 #define CM_OPEN_CLASS_KEY_BITS 0x00000001
775
776 /* CM_Query_And_Remove_SubTree.ulFlags constants */
777 #define CM_REMOVE_UI_OK 0x00000000
778 #define CM_REMOVE_UI_NOT_OK 0x00000001
779 #define CM_REMOVE_NO_RESTART 0x00000002
780 #define CM_REMOVE_BITS 0x00000003
781
782 #define CM_QUERY_REMOVE_UI_OK (CM_REMOVE_UI_OK)
783 #define CM_QUERY_REMOVE_UI_NOT_OK (CM_REMOVE_UI_NOT_OK)
784 #define CM_QUERY_REMOVE_BITS (CM_QUERY_REMOVE_UI_OK|CM_QUERY_REMOVE_UI_NOT_OK)
785
786 /* CM_Reenumerate_DevNode.ulFlags constants */
787 #define CM_REENUMERATE_NORMAL 0x00000000
788 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
789 #if (WINVER >= _WIN32_WINNT_WINXP)
790 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
791 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
792 #endif
793 #define CM_REENUMERATE_BITS 0x00000007
794
795 #define CM_REGISTER_DEVICE_DRIVER_STATIC 0x00000000
796 #define CM_REGISTER_DEVICE_DRIVER_DISABLEABLE 0x00000001
797 #define CM_REGISTER_DEVICE_DRIVER_REMOVABLE 0x00000002
798 #define CM_REGISTER_DEVICE_DRIVER_BITS 0x00000003
799
800 #define CM_REGISTRY_HARDWARE 0x00000000
801 #define CM_REGISTRY_SOFTWARE 0x00000001
802 #define CM_REGISTRY_USER 0x00000100
803 #define CM_REGISTRY_CONFIG 0x00000200
804 #define CM_REGISTRY_BITS 0x00000301
805
806 #define CM_SET_DEVNODE_PROBLEM_NORMAL 0x00000000
807 #define CM_SET_DEVNODE_PROBLEM_OVERRIDE 0x00000001
808 #define CM_SET_DEVNODE_PROBLEM_BITS 0x00000001
809
810 #define CM_SET_DEVINST_PROBLEM_NORMAL CM_SET_DEVNODE_PROBLEM_NORMAL
811 #define CM_SET_DEVINST_PROBLEM_OVERRIDE CM_SET_DEVNODE_PROBLEM_OVERRIDE
812 #define CM_SET_DEVINST_PROBLEM_BITS CM_SET_DEVNODE_PROBLEM_BITS
813
814 /* CM_Set_HW_Prof_Flags[_Ex].ulFlags constants */
815 #define CM_SET_HW_PROF_FLAGS_UI_NOT_OK 0x00000001
816 #define CM_SET_HW_PROF_FLAGS_BITS 0x00000001
817
818 /* CM_Setup_DevInst[_Ex].ulFlags constants */
819 #define CM_SETUP_DEVNODE_READY 0x00000000
820 #define CM_SETUP_DEVINST_READY CM_SETUP_DEVNODE_READY
821 #define CM_SETUP_DOWNLOAD 0x00000001
822 #define CM_SETUP_WRITE_LOG_CONFS 0x00000002
823 #define CM_SETUP_PROP_CHANGE 0x00000003
824 #if (WINVER >= _WIN32_WINNT_WINXP)
825 #define CM_SETUP_DEVNODE_RESET 0x00000004
826 #define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET
827 #endif
828 #define CM_SETUP_BITS 0x00000007
829
830 #define CM_QUERY_ARBITRATOR_RAW 0x00000000
831 #define CM_QUERY_ARBITRATOR_TRANSLATED 0x00000001
832 #define CM_QUERY_ARBITRATOR_BITS 0x00000001
833
834 #if (WINVER >= _WIN32_WINNT_WINXP)
835 #define CM_CUSTOMDEVPROP_MERGE_MULTISZ 0x00000001
836 #define CM_CUSTOMDEVPROP_BITS 0x00000001
837 #endif
838
839 #define CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE 0x1
840 #define CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME 0x2
841
842 #define CR_SUCCESS 0x00000000
843 #define CR_DEFAULT 0x00000001
844 #define CR_OUT_OF_MEMORY 0x00000002
845 #define CR_INVALID_POINTER 0x00000003
846 #define CR_INVALID_FLAG 0x00000004
847 #define CR_INVALID_DEVNODE 0x00000005
848 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
849 #define CR_INVALID_RES_DES 0x00000006
850 #define CR_INVALID_LOG_CONF 0x00000007
851 #define CR_INVALID_ARBITRATOR 0x00000008
852 #define CR_INVALID_NODELIST 0x00000009
853 #define CR_DEVNODE_HAS_REQS 0x0000000A
854 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
855 #define CR_INVALID_RESOURCEID 0x0000000B
856 #define CR_DLVXD_NOT_FOUND 0x0000000C
857 #define CR_NO_SUCH_DEVNODE 0x0000000D
858 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
859 #define CR_NO_MORE_LOG_CONF 0x0000000E
860 #define CR_NO_MORE_RES_DES 0x0000000F
861 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
862 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
863 #define CR_INVALID_RANGE_LIST 0x00000011
864 #define CR_INVALID_RANGE 0x00000012
865 #define CR_FAILURE 0x00000013
866 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
867 #define CR_CREATE_BLOCKED 0x00000015
868 #define CR_NOT_SYSTEM_VM 0x00000016
869 #define CR_REMOVE_VETOED 0x00000017
870 #define CR_APM_VETOED 0x00000018
871 #define CR_INVALID_LOAD_TYPE 0x00000019
872 #define CR_BUFFER_SMALL 0x0000001A
873 #define CR_NO_ARBITRATOR 0x0000001B
874 #define CR_NO_REGISTRY_HANDLE 0x0000001C
875 #define CR_REGISTRY_ERROR 0x0000001D
876 #define CR_INVALID_DEVICE_ID 0x0000001E
877 #define CR_INVALID_DATA 0x0000001F
878 #define CR_INVALID_API 0x00000020
879 #define CR_DEVLOADER_NOT_READY 0x00000021
880 #define CR_NEED_RESTART 0x00000022
881 #define CR_NO_MORE_HW_PROFILES 0x00000023
882 #define CR_DEVICE_NOT_THERE 0x00000024
883 #define CR_NO_SUCH_VALUE 0x00000025
884 #define CR_WRONG_TYPE 0x00000026
885 #define CR_INVALID_PRIORITY 0x00000027
886 #define CR_NOT_DISABLEABLE 0x00000028
887 #define CR_FREE_RESOURCES 0x00000029
888 #define CR_QUERY_VETOED 0x0000002A
889 #define CR_CANT_SHARE_IRQ 0x0000002B
890 #define CR_NO_DEPENDENT 0x0000002C
891 #define CR_SAME_RESOURCES 0x0000002D
892 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
893 #define CR_INVALID_MACHINENAME 0x0000002F
894 #define CR_REMOTE_COMM_FAILURE 0x00000030
895 #define CR_MACHINE_UNAVAILABLE 0x00000031
896 #define CR_NO_CM_SERVICES 0x00000032
897 #define CR_ACCESS_DENIED 0x00000033
898 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
899 #define CR_INVALID_PROPERTY 0x00000035
900 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
901 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
902 #define CR_INVALID_REFERENCE_STRING 0x00000038
903 #define CR_INVALID_CONFLICT_LIST 0x00000039
904 #define CR_INVALID_INDEX 0x0000003A
905 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
906 #define NUM_CR_RESULTS 0x0000003C
907
908 #define CM_GLOBAL_STATE_CAN_DO_UI 0x00000001
909 #define CM_GLOBAL_STATE_ON_BIG_STACK 0x00000002
910 #define CM_GLOBAL_STATE_SERVICES_AVAILABLE 0x00000004
911 #define CM_GLOBAL_STATE_SHUTTING_DOWN 0x00000008
912 #define CM_GLOBAL_STATE_DETECTION_PENDING 0x00000010
913 #if (WINVER >= _WIN32_WINNT_WIN7)
914 #define CM_GLOBAL_STATE_REBOOT_REQUIRED 0x00000020
915 #endif
916
917 /* FIXME : These definitions don't exist in the official header
918
919 #define CMP_MAGIC 0x01234567
920
921 CMAPI
922 CONFIGRET
923 WINAPI
924 CMP_Init_Detection(IN DWORD dwMagic);
925
926 CMAPI
927 CONFIGRET
928 WINAPI
929 CMP_RegisterNotification(
930 IN HANDLE hRecipient,
931 IN LPVOID lpvNotificationFilter,
932 IN DWORD dwFlags,
933 OUT PULONG pluhDevNotify);
934
935 CMAPI
936 CONFIGRET
937 WINAPI
938 CMP_Report_LogOn(
939 IN DWORD dwMagic,
940 IN DWORD dwProcessId);
941
942 CMAPI
943 CONFIGRET
944 WINAPI
945 CMP_UnregisterNotification(IN ULONG luhDevNotify);
946
947 CMAPI
948 CONFIGRET
949 WINAPI
950 CMP_WaitServicesAvailable(IN HMACHINE hMachine);
951 */
952
953 CMAPI
954 CONFIGRET
955 WINAPI
956 CM_Add_Empty_Log_Conf(
957 _Out_ PLOG_CONF plcLogConf,
958 _In_ DEVINST dnDevInst,
959 _In_ PRIORITY Priority,
960 _In_ ULONG ulFlags);
961
962 CMAPI
963 CONFIGRET
964 WINAPI
965 CM_Add_Empty_Log_Conf_Ex(
966 _Out_ PLOG_CONF plcLogConf,
967 _In_ DEVINST dnDevInst,
968 _In_ PRIORITY Priority,
969 _In_ ULONG ulFlags,
970 _In_opt_ HMACHINE hMachine);
971
972 CMAPI
973 CONFIGRET
974 WINAPI
975 CM_Add_IDA(
976 _In_ DEVINST dnDevInst,
977 _In_ PSTR pszID,
978 _In_ ULONG ulFlags);
979
980 CMAPI
981 CONFIGRET
982 WINAPI
983 CM_Add_ID_ExA(
984 _In_ DEVINST dnDevInst,
985 _In_ PSTR pszID,
986 _In_ ULONG ulFlags,
987 _In_opt_ HMACHINE hMachine);
988
989 CMAPI
990 CONFIGRET
991 WINAPI
992 CM_Add_ID_ExW(
993 _In_ DEVINST dnDevInst,
994 _In_ PWSTR pszID,
995 _In_ ULONG ulFlags,
996 _In_opt_ HMACHINE hMachine);
997
998 CMAPI
999 CONFIGRET
1000 WINAPI
1001 CM_Add_IDW(
1002 _In_ DEVINST dnDevInst,
1003 _In_ PWSTR pszID,
1004 _In_ ULONG ulFlags);
1005
1006 #ifdef UNICODE
1007 #define CM_Add_ID CM_Add_IDW
1008 #define CM_Add_ID_Ex CM_Add_ID_ExW
1009 #else
1010 #define CM_Add_ID CM_Add_IDA
1011 #define CM_Add_ID_Ex CM_Add_ID_ExA
1012 #endif /* UNICODE */
1013
1014 CMAPI
1015 CONFIGRET
1016 WINAPI
1017 CM_Add_Range(
1018 _In_ DWORDLONG ullStartValue,
1019 _In_ DWORDLONG ullEndValue,
1020 _In_ RANGE_LIST rlh,
1021 _In_ ULONG ulFlags);
1022
1023 CMAPI
1024 CONFIGRET
1025 WINAPI
1026 CM_Add_Res_Des(
1027 _Out_opt_ PRES_DES prdResDes,
1028 _In_ LOG_CONF lcLogConf,
1029 _In_ RESOURCEID ResourceID,
1030 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
1031 _In_ ULONG ResourceLen,
1032 _In_ ULONG ulFlags);
1033
1034 CMAPI
1035 CONFIGRET
1036 WINAPI
1037 CM_Add_Res_Des_Ex(
1038 _Out_opt_ PRES_DES prdResDes,
1039 _In_ LOG_CONF lcLogConf,
1040 _In_ RESOURCEID ResourceID,
1041 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
1042 _In_ ULONG ResourceLen,
1043 _In_ ULONG ulFlags,
1044 _In_opt_ HMACHINE hMachine);
1045
1046 CMAPI
1047 CONFIGRET
1048 WINAPI
1049 CM_Connect_MachineA(
1050 _In_opt_ PCSTR UNCServerName,
1051 _Out_ PHMACHINE phMachine);
1052
1053 CMAPI
1054 CONFIGRET
1055 WINAPI
1056 CM_Connect_MachineW(
1057 _In_opt_ PCWSTR UNCServerName,
1058 _Out_ PHMACHINE phMachine);
1059
1060 #ifdef UNICODE
1061 #define CM_Connect_Machine CM_Connect_MachineW
1062 #else
1063 #define CM_Connect_Machine CM_Connect_MachineA
1064 #endif /* UNICODE */
1065
1066 CMAPI
1067 CONFIGRET
1068 WINAPI
1069 CM_Create_DevNodeA(
1070 _Out_ PDEVINST pdnDevInst,
1071 _In_ DEVINSTID_A pDeviceID,
1072 _In_ DEVINST dnParent,
1073 _In_ ULONG ulFlags);
1074
1075 CMAPI
1076 CONFIGRET
1077 WINAPI
1078 CM_Create_DevNodeW(
1079 _Out_ PDEVINST pdnDevInst,
1080 _In_ DEVINSTID_W pDeviceID,
1081 _In_ DEVINST dnParent,
1082 _In_ ULONG ulFlags);
1083
1084 CMAPI
1085 CONFIGRET
1086 WINAPI
1087 CM_Create_DevNode_ExA(
1088 _Out_ PDEVINST pdnDevInst,
1089 _In_ DEVINSTID_A pDeviceID,
1090 _In_ DEVINST dnParent,
1091 _In_ ULONG ulFlags,
1092 _In_opt_ HANDLE hMachine);
1093
1094 CMAPI
1095 CONFIGRET
1096 WINAPI
1097 CM_Create_DevNode_ExW(
1098 _Out_ PDEVINST pdnDevInst,
1099 _In_ DEVINSTID_W pDeviceID,
1100 _In_ DEVINST dnParent,
1101 _In_ ULONG ulFlags,
1102 _In_opt_ HANDLE hMachine);
1103
1104 #define CM_Create_DevInstW CM_Create_DevNodeW
1105 #define CM_Create_DevInstA CM_Create_DevNodeA
1106 #define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
1107 #define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
1108 #ifdef UNICODE
1109 #define CM_Create_DevNode CM_Create_DevNodeW
1110 #define CM_Create_DevInst CM_Create_DevNodeW
1111 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
1112 #define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
1113 #else
1114 #define CM_Create_DevNode CM_Create_DevNodeA
1115 #define CM_Create_DevInst CM_Create_DevNodeA
1116 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
1117 #define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
1118 #endif /* UNICODE */
1119
1120 CMAPI
1121 CONFIGRET
1122 WINAPI
1123 CM_Create_Range_List(
1124 _Out_ PRANGE_LIST prlh,
1125 _In_ ULONG ulFlags);
1126
1127 CMAPI
1128 CONFIGRET
1129 WINAPI
1130 CM_Delete_Class_Key(
1131 _In_ LPGUID ClassGuid,
1132 _In_ ULONG ulFlags);
1133
1134 CMAPI
1135 CONFIGRET
1136 WINAPI
1137 CM_Delete_Class_Key_Ex(
1138 _In_ LPGUID ClassGuid,
1139 _In_ ULONG ulFlags,
1140 _In_opt_ HANDLE hMachine);
1141
1142 CMAPI
1143 CONFIGRET
1144 WINAPI
1145 CM_Delete_DevNode_Key(
1146 _In_ DEVNODE dnDevNode,
1147 _In_ ULONG ulHardwareProfile,
1148 _In_ ULONG ulFlags);
1149
1150 CMAPI
1151 CONFIGRET
1152 WINAPI
1153 CM_Delete_DevNode_Key_Ex(
1154 _In_ DEVNODE dnDevNode,
1155 _In_ ULONG ulHardwareProfile,
1156 _In_ ULONG ulFlags,
1157 _In_opt_ HANDLE hMachine);
1158
1159 #define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
1160 #define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
1161
1162 CMAPI
1163 CONFIGRET
1164 WINAPI
1165 CM_Delete_Range(
1166 _In_ DWORDLONG ullStartValue,
1167 _In_ DWORDLONG ullEndValue,
1168 _In_ RANGE_LIST rlh,
1169 _In_ ULONG ulFlags);
1170
1171 CMAPI
1172 CONFIGRET
1173 WINAPI
1174 CM_Detect_Resource_Conflict(
1175 _In_ DEVINST dnDevInst,
1176 _In_ RESOURCEID ResourceID,
1177 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
1178 _In_ ULONG ResourceLen,
1179 _Out_ PBOOL pbConflictDetected,
1180 _In_ ULONG ulFlags);
1181
1182 CMAPI
1183 CONFIGRET
1184 WINAPI
1185 CM_Detect_Resource_Conflict_Ex(
1186 _In_ DEVINST dnDevInst,
1187 _In_ RESOURCEID ResourceID,
1188 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
1189 _In_ ULONG ResourceLen,
1190 _Out_ PBOOL pbConflictDetected,
1191 _In_ ULONG ulFlags,
1192 _In_opt_ HMACHINE hMachine);
1193
1194 CMAPI
1195 CONFIGRET
1196 WINAPI
1197 CM_Disable_DevNode(
1198 _In_ DEVINST dnDevInst,
1199 _In_ ULONG ulFlags);
1200
1201 CMAPI
1202 CONFIGRET
1203 WINAPI
1204 CM_Disable_DevNode_Ex(
1205 _In_ DEVINST dnDevInst,
1206 _In_ ULONG ulFlags,
1207 _In_opt_ HMACHINE hMachine);
1208
1209 #define CM_Disable_DevInst CM_Disable_DevNode
1210 #define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
1211
1212 CMAPI
1213 CONFIGRET
1214 WINAPI
1215 CM_Disconnect_Machine(
1216 _In_opt_ HMACHINE hMachine);
1217
1218 CMAPI
1219 CONFIGRET
1220 WINAPI
1221 CM_Dup_Range_List(
1222 _In_ RANGE_LIST rlhOld,
1223 _In_ RANGE_LIST rlhNew,
1224 _In_ ULONG ulFlags);
1225
1226 CMAPI
1227 CONFIGRET
1228 WINAPI
1229 CM_Enable_DevNode(
1230 _In_ DEVINST dnDevInst,
1231 _In_ ULONG ulFlags);
1232
1233 CMAPI
1234 CONFIGRET
1235 WINAPI
1236 CM_Enable_DevNode_Ex(
1237 _In_ DEVINST dnDevInst,
1238 _In_ ULONG ulFlags,
1239 _In_opt_ HMACHINE hMachine);
1240
1241 #define CM_Enable_DevInst CM_Enable_DevNode
1242 #define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
1243
1244 CMAPI
1245 CONFIGRET
1246 WINAPI
1247 CM_Enumerate_Classes(
1248 _In_ ULONG ulClassIndex,
1249 _Out_ LPGUID ClassGuid,
1250 _In_ ULONG ulFlags);
1251
1252 CMAPI
1253 CONFIGRET
1254 WINAPI
1255 CM_Enumerate_Classes_Ex(
1256 _In_ ULONG ulClassIndex,
1257 _Out_ LPGUID ClassGuid,
1258 _In_ ULONG ulFlags,
1259 _In_opt_ HMACHINE hMachine);
1260
1261 CMAPI
1262 CONFIGRET
1263 WINAPI
1264 CM_Enumerate_EnumeratorsA(
1265 _In_ ULONG ulEnumIndex,
1266 _Out_writes_(*pulLength) PCHAR Buffer,
1267 _Inout_ PULONG pulLength,
1268 _In_ ULONG ulFlags);
1269
1270 CMAPI
1271 CONFIGRET
1272 WINAPI
1273 CM_Enumerate_Enumerators_ExA(
1274 _In_ ULONG ulEnumIndex,
1275 _Out_writes_(*pulLength) PCHAR Buffer,
1276 _Inout_ PULONG pulLength,
1277 _In_ ULONG ulFlags,
1278 _In_opt_ HMACHINE hMachine);
1279
1280 CMAPI
1281 CONFIGRET
1282 WINAPI
1283 CM_Enumerate_Enumerators_ExW(
1284 _In_ ULONG ulEnumIndex,
1285 _Out_writes_(*pulLength) PWCHAR Buffer,
1286 _Inout_ PULONG pulLength,
1287 _In_ ULONG ulFlags,
1288 _In_opt_ HMACHINE hMachine);
1289
1290 CMAPI
1291 CONFIGRET
1292 WINAPI
1293 CM_Enumerate_EnumeratorsW(
1294 _In_ ULONG ulEnumIndex,
1295 _Out_writes_(*pulLength) PWCHAR Buffer,
1296 _Inout_ PULONG pulLength,
1297 _In_ ULONG ulFlags);
1298
1299 #ifdef UNICODE
1300 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
1301 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
1302 #else
1303 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
1304 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
1305 #endif /* UNICODE */
1306
1307 CMAPI
1308 CONFIGRET
1309 WINAPI
1310 CM_Find_Range(
1311 _Out_ PDWORDLONG pullStart,
1312 _In_ DWORDLONG ullStart,
1313 _In_ ULONG ulLength,
1314 _In_ DWORDLONG ullAlignment,
1315 _In_ DWORDLONG ullEnd,
1316 _In_ RANGE_LIST rlh,
1317 _In_ ULONG ulFlags);
1318
1319 CMAPI
1320 CONFIGRET
1321 WINAPI
1322 CM_First_Range(
1323 _In_ RANGE_LIST rlh,
1324 _Out_ PDWORDLONG pullStart,
1325 _Out_ PDWORDLONG pullEnd,
1326 _Out_ PRANGE_ELEMENT preElement,
1327 _In_ ULONG ulFlags);
1328
1329 CMAPI
1330 CONFIGRET
1331 WINAPI
1332 CM_Free_Log_Conf(
1333 _In_ LOG_CONF lcLogConfToBeFreed,
1334 _In_ ULONG ulFlags);
1335
1336 CMAPI
1337 CONFIGRET
1338 WINAPI
1339 CM_Free_Log_Conf_Ex(
1340 _In_ LOG_CONF lcLogConfToBeFreed,
1341 _In_ ULONG ulFlags,
1342 _In_opt_ HMACHINE hMachine);
1343
1344 CMAPI
1345 CONFIGRET
1346 WINAPI
1347 CM_Free_Log_Conf_Handle(
1348 _In_ LOG_CONF lcLogConf);
1349
1350 CMAPI
1351 CONFIGRET
1352 WINAPI
1353 CM_Free_Range_List(
1354 _In_ RANGE_LIST rlh,
1355 _In_ ULONG ulFlags);
1356
1357 CMAPI
1358 CONFIGRET
1359 WINAPI
1360 CM_Free_Res_Des(
1361 _Out_opt_ PRES_DES prdResDes,
1362 _In_ RES_DES rdResDes,
1363 _In_ ULONG ulFlags);
1364
1365 CMAPI
1366 CONFIGRET
1367 WINAPI
1368 CM_Free_Res_Des_Ex(
1369 _Out_opt_ PRES_DES prdResDes,
1370 _In_ RES_DES rdResDes,
1371 _In_ ULONG ulFlags,
1372 _In_opt_ HMACHINE hMachine);
1373
1374 CMAPI
1375 CONFIGRET
1376 WINAPI
1377 CM_Free_Res_Des_Handle(
1378 _In_ RES_DES rdResDes);
1379
1380 CMAPI
1381 CONFIGRET
1382 WINAPI
1383 CM_Free_Resource_Conflict_Handle(
1384 _In_ CONFLICT_LIST clConflictList);
1385
1386 CMAPI
1387 CONFIGRET
1388 WINAPI
1389 CM_Get_Child(
1390 _Out_ PDEVINST pdnDevInst,
1391 _In_ DEVINST dnDevInst,
1392 _In_ ULONG ulFlags);
1393
1394 CMAPI
1395 CONFIGRET
1396 WINAPI
1397 CM_Get_Child_Ex(
1398 _Out_ PDEVINST pdnDevInst,
1399 _In_ DEVINST dnDevInst,
1400 _In_ ULONG ulFlags,
1401 _In_opt_ HMACHINE hMachine);
1402
1403 CMAPI
1404 CONFIGRET
1405 WINAPI
1406 CM_Get_Class_NameA(
1407 _In_ LPGUID ClassGuid,
1408 _Out_writes_opt_(*pulLength) PCHAR Buffer,
1409 _Inout_ PULONG pulLength,
1410 _In_ ULONG ulFlags);
1411
1412 CMAPI
1413 CONFIGRET
1414 WINAPI
1415 CM_Get_Class_NameW(
1416 _In_ LPGUID ClassGuid,
1417 _Out_writes_opt_(*pulLength) PWCHAR Buffer,
1418 _Inout_ PULONG pulLength,
1419 _In_ ULONG ulFlags);
1420
1421 CMAPI
1422 CONFIGRET
1423 WINAPI
1424 CM_Get_Class_Name_ExA(
1425 _In_ LPGUID ClassGuid,
1426 _Out_writes_opt_(*pulLength) PCHAR Buffer,
1427 _Inout_ PULONG pulLength,
1428 _In_ ULONG ulFlags,
1429 _In_opt_ HMACHINE hMachine);
1430
1431 CMAPI
1432 CONFIGRET
1433 WINAPI
1434 CM_Get_Class_Name_ExW(
1435 _In_ LPGUID ClassGuid,
1436 _Out_writes_opt_(*pulLength) PWCHAR Buffer,
1437 _Inout_ PULONG pulLength,
1438 _In_ ULONG ulFlags,
1439 _In_opt_ HMACHINE hMachine);
1440
1441 #ifdef UNICODE
1442 #define CM_Get_Class_Name CM_Get_Class_NameW
1443 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
1444 #else
1445 #define CM_Get_Class_Name CM_Get_Class_NameA
1446 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
1447 #endif /* UNICODE */
1448
1449 CMAPI
1450 CONFIGRET
1451 WINAPI
1452 CM_Get_Class_Key_NameA(
1453 _In_ LPGUID ClassGuid,
1454 _Out_writes_opt_(*pulLength) LPSTR pszKeyName,
1455 _Inout_ PULONG pulLength,
1456 _In_ ULONG ulFlags);
1457
1458 CMAPI
1459 CONFIGRET
1460 WINAPI
1461 CM_Get_Class_Key_NameW(
1462 _In_ LPGUID ClassGuid,
1463 _Out_writes_opt_(*pulLength) LPWSTR pszKeyName,
1464 _Inout_ PULONG pulLength,
1465 _In_ ULONG ulFlags);
1466
1467 CMAPI
1468 CONFIGRET
1469 WINAPI
1470 CM_Get_Class_Key_Name_ExA(
1471 _In_ LPGUID ClassGuid,
1472 _Out_writes_opt_(*pulLength) LPSTR pszKeyName,
1473 _Inout_ PULONG pulLength,
1474 _In_ ULONG ulFlags,
1475 _In_opt_ HMACHINE hMachine);
1476
1477 CMAPI
1478 CONFIGRET
1479 WINAPI
1480 CM_Get_Class_Key_Name_ExW(
1481 _In_ LPGUID ClassGuid,
1482 _Out_writes_opt_(*pulLength) LPWSTR pszKeyName,
1483 _Inout_ PULONG pulLength,
1484 _In_ ULONG ulFlags,
1485 _In_opt_ HMACHINE hMachine);
1486
1487 #ifdef UNICODE
1488 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
1489 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
1490 #else
1491 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
1492 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
1493 #endif /* UNICODE */
1494
1495 CMAPI
1496 CONFIGRET
1497 WINAPI
1498 CM_Get_Depth(
1499 _Out_ PULONG pulDepth,
1500 _In_ DEVINST dnDevInst,
1501 _In_ ULONG ulFlags);
1502
1503 CMAPI
1504 CONFIGRET
1505 WINAPI
1506 CM_Get_Depth_Ex(
1507 _Out_ PULONG pulDepth,
1508 _In_ DEVINST dnDevInst,
1509 _In_ ULONG ulFlags,
1510 _In_opt_ HMACHINE hMachine);
1511
1512 CMAPI
1513 CONFIGRET
1514 WINAPI
1515 CM_Get_Device_IDA(
1516 _In_ DEVINST dnDevInst,
1517 _Out_writes_(BufferLen) PCHAR Buffer,
1518 _In_ ULONG BufferLen,
1519 _In_ ULONG ulFlags);
1520
1521 CMAPI
1522 CONFIGRET
1523 WINAPI
1524 CM_Get_Device_ID_ExA(
1525 _In_ DEVINST dnDevInst,
1526 _Out_writes_(BufferLen) PCHAR Buffer,
1527 _In_ ULONG BufferLen,
1528 _In_ ULONG ulFlags,
1529 _In_opt_ HMACHINE hMachine);
1530
1531 CMAPI
1532 CONFIGRET
1533 WINAPI
1534 CM_Get_Device_ID_ExW(
1535 _In_ DEVINST dnDevInst,
1536 _Out_writes_(BufferLen) PWCHAR Buffer,
1537 _In_ ULONG BufferLen,
1538 _In_ ULONG ulFlags,
1539 _In_opt_ HMACHINE hMachine);
1540
1541 CMAPI
1542 CONFIGRET
1543 WINAPI
1544 CM_Get_Device_IDW(
1545 _In_ DEVINST dnDevInst,
1546 _Out_writes_(BufferLen) PWCHAR Buffer,
1547 _In_ ULONG BufferLen,
1548 _In_ ULONG ulFlags);
1549
1550 #ifdef UNICODE
1551 #define CM_Get_Device_ID CM_Get_Device_IDW
1552 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1553 #else
1554 #define CM_Get_Device_ID CM_Get_Device_IDA
1555 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1556 #endif /* UNICODE */
1557
1558 CMAPI
1559 CONFIGRET
1560 WINAPI
1561 CM_Get_Device_ID_ListA(
1562 _In_opt_ PCSTR pszFilter,
1563 _Out_writes_(BufferLen) PCHAR Buffer,
1564 _In_ ULONG BufferLen,
1565 _In_ ULONG ulFlags);
1566
1567 CMAPI
1568 CONFIGRET
1569 WINAPI
1570 CM_Get_Device_ID_List_ExA(
1571 _In_opt_ PCSTR pszFilter,
1572 _Out_writes_(BufferLen) PCHAR Buffer,
1573 _In_ ULONG BufferLen,
1574 _In_ ULONG ulFlags,
1575 _In_opt_ HMACHINE hMachine);
1576
1577 CMAPI
1578 CONFIGRET
1579 WINAPI
1580 CM_Get_Device_ID_List_ExW(
1581 _In_opt_ PCWSTR pszFilter,
1582 _Out_writes_(BufferLen) PWCHAR Buffer,
1583 _In_ ULONG BufferLen,
1584 _In_ ULONG ulFlags,
1585 _In_opt_ HMACHINE hMachine);
1586
1587 CMAPI
1588 CONFIGRET
1589 WINAPI
1590 CM_Get_Device_ID_ListW(
1591 _In_opt_ PCWSTR pszFilter,
1592 _Out_writes_(BufferLen) PWCHAR Buffer,
1593 _In_ ULONG BufferLen,
1594 _In_ ULONG ulFlags);
1595
1596 #ifdef UNICODE
1597 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1598 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1599 #else
1600 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1601 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1602 #endif /* UNICODE */
1603
1604 CMAPI
1605 CONFIGRET
1606 WINAPI
1607 CM_Get_Device_ID_List_SizeA(
1608 _Out_ PULONG pulLen,
1609 _In_opt_ PCSTR pszFilter,
1610 _In_ ULONG ulFlags);
1611
1612 CMAPI
1613 CONFIGRET
1614 WINAPI
1615 CM_Get_Device_ID_List_Size_ExA(
1616 _Out_ PULONG pulLen,
1617 _In_opt_ PCSTR pszFilter,
1618 _In_ ULONG ulFlags,
1619 _In_opt_ HMACHINE hMachine);
1620
1621 CMAPI
1622 CONFIGRET
1623 WINAPI
1624 CM_Get_Device_ID_List_Size_ExW(
1625 _Out_ PULONG pulLen,
1626 _In_opt_ PCWSTR pszFilter,
1627 _In_ ULONG ulFlags,
1628 _In_opt_ HMACHINE hMachine);
1629
1630 CMAPI
1631 CONFIGRET
1632 WINAPI
1633 CM_Get_Device_ID_List_SizeW(
1634 _Out_ PULONG pulLen,
1635 _In_opt_ PCWSTR pszFilter,
1636 _In_ ULONG ulFlags);
1637
1638 #ifdef UNICODE
1639 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1640 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1641 #else
1642 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1643 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1644 #endif /* UNICODE */
1645
1646 CMAPI
1647 CONFIGRET
1648 WINAPI
1649 CM_Get_Device_ID_Size(
1650 _Out_ PULONG pulLen,
1651 _In_ DEVINST dnDevInst,
1652 _In_ ULONG ulFlags);
1653
1654 CMAPI
1655 CONFIGRET
1656 WINAPI
1657 CM_Get_Device_ID_Size_Ex(
1658 _Out_ PULONG pulLen,
1659 _In_ DEVINST dnDevInst,
1660 _In_ ULONG ulFlags,
1661 _In_opt_ HMACHINE hMachine);
1662
1663 CMAPI
1664 CONFIGRET
1665 WINAPI
1666 CM_Get_DevNode_Registry_PropertyA(
1667 _In_ DEVINST dnDevInst,
1668 _In_ ULONG ulProperty,
1669 _Out_opt_ PULONG pulRegDataType,
1670 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1671 _Inout_ PULONG pulLength,
1672 _In_ ULONG ulFlags);
1673
1674 CMAPI
1675 CONFIGRET
1676 WINAPI
1677 CM_Get_DevNode_Registry_PropertyW(
1678 _In_ DEVINST dnDevInst,
1679 _In_ ULONG ulProperty,
1680 _Out_opt_ PULONG pulRegDataType,
1681 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1682 _Inout_ PULONG pulLength,
1683 _In_ ULONG ulFlags);
1684
1685 CMAPI
1686 CONFIGRET
1687 WINAPI
1688 CM_Get_DevNode_Registry_Property_ExA(
1689 _In_ DEVINST dnDevInst,
1690 _In_ ULONG ulProperty,
1691 _Out_opt_ PULONG pulRegDataType,
1692 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1693 _Inout_ PULONG pulLength,
1694 _In_ ULONG ulFlags,
1695 _In_opt_ HMACHINE hMachine);
1696
1697 CMAPI
1698 CONFIGRET
1699 WINAPI
1700 CM_Get_DevNode_Registry_Property_ExW(
1701 _In_ DEVINST dnDevInst,
1702 _In_ ULONG ulProperty,
1703 _Out_opt_ PULONG pulRegDataType,
1704 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1705 _Inout_ PULONG pulLength,
1706 _In_ ULONG ulFlags,
1707 _In_opt_ HMACHINE hMachine);
1708
1709 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1710 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1711 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1712 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1713
1714 #ifdef UNICODE
1715 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1716 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1717 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1718 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1719 #else
1720 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1721 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1722 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1723 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1724 #endif /* UNICODE */
1725
1726 #if (WINVER >= _WIN32_WINNT_WINXP)
1727
1728 CMAPI
1729 CONFIGRET
1730 WINAPI
1731 CM_Get_DevNode_Custom_PropertyA(
1732 _In_ DEVINST dnDevInst,
1733 _In_ PCSTR pszCustomPropertyName,
1734 _Out_opt_ PULONG pulRegDataType,
1735 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1736 _Inout_ PULONG pulLength,
1737 _In_ ULONG ulFlags);
1738
1739 CMAPI
1740 CONFIGRET
1741 WINAPI
1742 CM_Get_DevNode_Custom_PropertyW(
1743 _In_ DEVINST dnDevInst,
1744 _In_ PCWSTR pszCustomPropertyName,
1745 _Out_opt_ PULONG pulRegDataType,
1746 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1747 _Inout_ PULONG pulLength,
1748 _In_ ULONG ulFlags);
1749
1750 CMAPI
1751 CONFIGRET
1752 WINAPI
1753 CM_Get_DevNode_Custom_Property_ExA(
1754 _In_ DEVINST dnDevInst,
1755 _In_ PCSTR pszCustomPropertyName,
1756 _Out_opt_ PULONG pulRegDataType,
1757 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1758 _Inout_ PULONG pulLength,
1759 _In_ ULONG ulFlags,
1760 _In_opt_ HMACHINE hMachine);
1761
1762 CMAPI
1763 CONFIGRET
1764 WINAPI
1765 CM_Get_DevNode_Custom_Property_ExW(
1766 _In_ DEVINST dnDevInst,
1767 _In_ PCWSTR pszCustomPropertyName,
1768 _Out_opt_ PULONG pulRegDataType,
1769 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
1770 _Inout_ PULONG pulLength,
1771 _In_ ULONG ulFlags,
1772 _In_opt_ HMACHINE hMachine);
1773
1774 #define CM_Get_DevInst_Custom_PropertyW CM_Get_DevNode_Custom_PropertyW
1775 #define CM_Get_DevInst_Custom_PropertyA CM_Get_DevNode_Custom_PropertyA
1776 #define CM_Get_DevInst_Custom_Property_ExW CM_Get_DevNode_Custom_Property_ExW
1777 #define CM_Get_DevInst_Custom_Property_ExA CM_Get_DevNode_Custom_Property_ExA
1778 #ifdef UNICODE
1779 #define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyW
1780 #define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
1781 #define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyW
1782 #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
1783 #else
1784 #define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyA
1785 #define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA
1786 #define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyA
1787 #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA
1788 #endif
1789
1790 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
1791
1792 CMAPI
1793 CONFIGRET
1794 WINAPI
1795 CM_Get_DevNode_Status(
1796 _Out_ PULONG pulStatus,
1797 _Out_ PULONG pulProblemNumber,
1798 _In_ DEVINST dnDevInst,
1799 _In_ ULONG ulFlags);
1800
1801 CMAPI
1802 CONFIGRET
1803 WINAPI
1804 CM_Get_DevNode_Status_Ex(
1805 _Out_ PULONG pulStatus,
1806 _Out_ PULONG pulProblemNumber,
1807 _In_ DEVINST dnDevInst,
1808 _In_ ULONG ulFlags,
1809 _In_opt_ HMACHINE hMachine);
1810
1811 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1812 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1813
1814 CMAPI
1815 CONFIGRET
1816 WINAPI
1817 CM_Get_First_Log_Conf(
1818 _Out_opt_ PLOG_CONF plcLogConf,
1819 _In_ DEVINST dnDevInst,
1820 _In_ ULONG ulFlags);
1821
1822 CMAPI
1823 CONFIGRET
1824 WINAPI
1825 CM_Get_First_Log_Conf_Ex(
1826 _Out_opt_ PLOG_CONF plcLogConf,
1827 _In_ DEVINST dnDevInst,
1828 _In_ ULONG ulFlags,
1829 _In_opt_ HMACHINE hMachine);
1830
1831 CMAPI
1832 CONFIGRET
1833 WINAPI
1834 CM_Get_Global_State(
1835 _Out_ PULONG pulState,
1836 _In_ ULONG ulFlags);
1837
1838 CMAPI
1839 CONFIGRET
1840 WINAPI
1841 CM_Get_Global_State_Ex(
1842 _Out_ PULONG pulState,
1843 _In_ ULONG ulFlags,
1844 _In_opt_ HMACHINE hMachine);
1845
1846 CMAPI
1847 CONFIGRET
1848 WINAPI
1849 CM_Get_Hardware_Profile_InfoA(
1850 _In_ ULONG ulIndex,
1851 _Out_ PHWPROFILEINFO_A pHWProfileInfo,
1852 _In_ ULONG ulFlags);
1853
1854 CMAPI
1855 CONFIGRET
1856 WINAPI
1857 CM_Get_Hardware_Profile_Info_ExA(
1858 _In_ ULONG ulIndex,
1859 _Out_ PHWPROFILEINFO_A pHWProfileInfo,
1860 _In_ ULONG ulFlags,
1861 _In_opt_ HMACHINE hMachine);
1862
1863 CMAPI
1864 CONFIGRET
1865 WINAPI
1866 CM_Get_Hardware_Profile_InfoW(
1867 _In_ ULONG ulIndex,
1868 _Out_ PHWPROFILEINFO_W pHWProfileInfo,
1869 _In_ ULONG ulFlags);
1870
1871 CMAPI
1872 CONFIGRET
1873 WINAPI
1874 CM_Get_Hardware_Profile_Info_ExW(
1875 _In_ ULONG ulIndex,
1876 _Out_ PHWPROFILEINFO_W pHWProfileInfo,
1877 _In_ ULONG ulFlags,
1878 _In_opt_ HMACHINE hMachine);
1879
1880 #ifdef UNICODE
1881 #define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoW
1882 #define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExW
1883 #else
1884 #define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoA
1885 #define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExA
1886 #endif
1887
1888 CMAPI
1889 CONFIGRET
1890 WINAPI
1891 CM_Get_HW_Prof_FlagsA(
1892 _In_ DEVINSTID_A szDevInstName,
1893 _In_ ULONG ulHardwareProfile,
1894 _Out_ PULONG pulValue,
1895 _In_ ULONG ulFlags);
1896
1897 CMAPI
1898 CONFIGRET
1899 WINAPI
1900 CM_Get_HW_Prof_FlagsW(
1901 _In_ DEVINSTID_W szDevInstName,
1902 _In_ ULONG ulHardwareProfile,
1903 _Out_ PULONG pulValue,
1904 _In_ ULONG ulFlags);
1905
1906 CMAPI
1907 CONFIGRET
1908 WINAPI
1909 CM_Get_HW_Prof_Flags_ExA(
1910 _In_ DEVINSTID_A szDevInstName,
1911 _In_ ULONG ulHardwareProfile,
1912 _Out_ PULONG pulValue,
1913 _In_ ULONG ulFlags,
1914 _In_opt_ HMACHINE hMachine);
1915
1916 CMAPI
1917 CONFIGRET
1918 WINAPI
1919 CM_Get_HW_Prof_Flags_ExW(
1920 _In_ DEVINSTID_W szDevInstName,
1921 _In_ ULONG ulHardwareProfile,
1922 _Out_ PULONG pulValue,
1923 _In_ ULONG ulFlags,
1924 _In_opt_ HMACHINE hMachine);
1925
1926 #ifdef UNICODE
1927 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
1928 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
1929 #else
1930 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
1931 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
1932 #endif
1933
1934 CMAPI
1935 CONFIGRET
1936 WINAPI
1937 CM_Get_Device_Interface_AliasA(
1938 _In_ LPCSTR pszDeviceInterface,
1939 _In_ LPGUID AliasInterfaceGuid,
1940 _Out_writes_(*pulLength) LPSTR pszAliasDeviceInterface,
1941 _Inout_ PULONG pulLength,
1942 _In_ ULONG ulFlags);
1943
1944 CMAPI
1945 CONFIGRET
1946 WINAPI
1947 CM_Get_Device_Interface_AliasW(
1948 _In_ LPCWSTR pszDeviceInterface,
1949 _In_ LPGUID AliasInterfaceGuid,
1950 _Out_writes_(*pulLength) LPWSTR pszAliasDeviceInterface,
1951 _Inout_ PULONG pulLength,
1952 _In_ ULONG ulFlags);
1953
1954 CMAPI
1955 CONFIGRET
1956 WINAPI
1957 CM_Get_Device_Interface_Alias_ExA(
1958 _In_ LPCSTR pszDeviceInterface,
1959 _In_ LPGUID AliasInterfaceGuid,
1960 _Out_writes_(*pulLength) LPSTR pszAliasDeviceInterface,
1961 _Inout_ PULONG pulLength,
1962 _In_ ULONG ulFlags,
1963 _In_opt_ HMACHINE hMachine);
1964
1965 CMAPI
1966 CONFIGRET
1967 WINAPI
1968 CM_Get_Device_Interface_Alias_ExW(
1969 _In_ LPCWSTR pszDeviceInterface,
1970 _In_ LPGUID AliasInterfaceGuid,
1971 _Out_writes_(*pulLength) LPWSTR pszAliasDeviceInterface,
1972 _Inout_ PULONG pulLength,
1973 _In_ ULONG ulFlags,
1974 _In_opt_ HMACHINE hMachine);
1975
1976 #ifdef UNICODE
1977 #define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasW
1978 #define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExW
1979 #else
1980 #define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasA
1981 #define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExA
1982 #endif
1983
1984 CMAPI
1985 CONFIGRET
1986 WINAPI
1987 CM_Get_Device_Interface_ListA(
1988 _In_ LPGUID InterfaceClassGuid,
1989 _In_opt_ DEVINSTID_A pDeviceID,
1990 _Out_writes_(BufferLen) PCHAR Buffer,
1991 _In_ ULONG BufferLen,
1992 _In_ ULONG ulFlags);
1993
1994 CMAPI
1995 CONFIGRET
1996 WINAPI
1997 CM_Get_Device_Interface_ListW(
1998 _In_ LPGUID InterfaceClassGuid,
1999 _In_opt_ DEVINSTID_W pDeviceID,
2000 _Out_writes_(BufferLen) PWCHAR Buffer,
2001 _In_ ULONG BufferLen,
2002 _In_ ULONG ulFlags);
2003
2004 CMAPI
2005 CONFIGRET
2006 WINAPI
2007 CM_Get_Device_Interface_List_ExA(
2008 _In_ LPGUID InterfaceClassGuid,
2009 _In_opt_ DEVINSTID_A pDeviceID,
2010 _Out_writes_(BufferLen) PCHAR Buffer,
2011 _In_ ULONG BufferLen,
2012 _In_ ULONG ulFlags,
2013 _In_opt_ HMACHINE hMachine);
2014
2015 CMAPI
2016 CONFIGRET
2017 WINAPI
2018 CM_Get_Device_Interface_List_ExW(
2019 _In_ LPGUID InterfaceClassGuid,
2020 _In_opt_ DEVINSTID_W pDeviceID,
2021 _Out_writes_(BufferLen) PWCHAR Buffer,
2022 _In_ ULONG BufferLen,
2023 _In_ ULONG ulFlags,
2024 _In_opt_ HMACHINE hMachine);
2025
2026 #ifdef UNICODE
2027 #define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListW
2028 #define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExW
2029 #else
2030 #define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListA
2031 #define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExA
2032 #endif
2033
2034 CMAPI
2035 CONFIGRET
2036 WINAPI
2037 CM_Get_Device_Interface_List_SizeA(
2038 _Out_ PULONG pulLen,
2039 _In_ LPGUID InterfaceClassGuid,
2040 _In_opt_ DEVINSTID_A pDeviceID,
2041 _In_ ULONG ulFlags);
2042
2043 CMAPI
2044 CONFIGRET
2045 WINAPI
2046 CM_Get_Device_Interface_List_SizeW(
2047 _Out_ PULONG pulLen,
2048 _In_ LPGUID InterfaceClassGuid,
2049 _In_opt_ DEVINSTID_W pDeviceID,
2050 _In_ ULONG ulFlags);
2051
2052 CMAPI
2053 CONFIGRET
2054 WINAPI
2055 CM_Get_Device_Interface_List_Size_ExA(
2056 _Out_ PULONG pulLen,
2057 _In_ LPGUID InterfaceClassGuid,
2058 _In_opt_ DEVINSTID_A pDeviceID,
2059 _In_ ULONG ulFlags,
2060 _In_opt_ HMACHINE hMachine);
2061
2062 CMAPI
2063 CONFIGRET
2064 WINAPI
2065 CM_Get_Device_Interface_List_Size_ExW(
2066 _Out_ PULONG pulLen,
2067 _In_ LPGUID InterfaceClassGuid,
2068 _In_opt_ DEVINSTID_W pDeviceID,
2069 _In_ ULONG ulFlags,
2070 _In_opt_ HMACHINE hMachine);
2071
2072 #ifdef UNICODE
2073 #define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeW
2074 #define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ExW
2075 #else
2076 #define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeA
2077 #define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ExA
2078 #endif
2079
2080 CMAPI
2081 CONFIGRET
2082 WINAPI
2083 CM_Get_Log_Conf_Priority(
2084 _In_ LOG_CONF lcLogConf,
2085 _Out_ PPRIORITY pPriority,
2086 _In_ ULONG ulFlags);
2087
2088 CMAPI
2089 CONFIGRET
2090 WINAPI
2091 CM_Get_Log_Conf_Priority_Ex(
2092 _In_ LOG_CONF lcLogConf,
2093 _Out_ PPRIORITY pPriority,
2094 _In_ ULONG ulFlags,
2095 _In_opt_ HMACHINE hMachine);
2096
2097 CMAPI
2098 CONFIGRET
2099 WINAPI
2100 CM_Get_Next_Log_Conf(
2101 _Out_opt_ PLOG_CONF plcLogConf,
2102 _In_ LOG_CONF lcLogConf,
2103 _In_ ULONG ulFlags);
2104
2105 CMAPI
2106 CONFIGRET
2107 WINAPI
2108 CM_Get_Next_Log_Conf_Ex(
2109 _Out_opt_ PLOG_CONF plcLogConf,
2110 _In_ LOG_CONF lcLogConf,
2111 _In_ ULONG ulFlags,
2112 _In_opt_ HMACHINE hMachine);
2113
2114 CMAPI
2115 CONFIGRET
2116 WINAPI
2117 CM_Get_Next_Res_Des(
2118 _Out_ PRES_DES prdResDes,
2119 _In_ RES_DES rdResDes,
2120 _In_ RESOURCEID ForResource,
2121 _Out_opt_ PRESOURCEID pResourceID,
2122 _In_ ULONG ulFlags);
2123
2124 CMAPI
2125 CONFIGRET
2126 WINAPI
2127 CM_Get_Next_Res_Des_Ex(
2128 _Out_ PRES_DES prdResDes,
2129 _In_ RES_DES rdResDes,
2130 _In_ RESOURCEID ForResource,
2131 _Out_opt_ PRESOURCEID pResourceID,
2132 _In_ ULONG ulFlags,
2133 _In_opt_ HMACHINE hMachine);
2134
2135 CMAPI
2136 CONFIGRET
2137 WINAPI
2138 CM_Get_Parent(
2139 _Out_ PDEVINST pdnDevInst,
2140 _In_ DEVINST dnDevInst,
2141 _In_ ULONG ulFlags);
2142
2143 CMAPI
2144 CONFIGRET
2145 WINAPI
2146 CM_Get_Parent_Ex(
2147 _Out_ PDEVINST pdnDevInst,
2148 _In_ DEVINST dnDevInst,
2149 _In_ ULONG ulFlags,
2150 _In_opt_ HMACHINE hMachine);
2151
2152 CMAPI
2153 CONFIGRET
2154 WINAPI
2155 CM_Get_Res_Des_Data(
2156 _In_ RES_DES rdResDes,
2157 _Out_writes_bytes_(BufferLen) PVOID Buffer,
2158 _In_ ULONG BufferLen,
2159 _In_ ULONG ulFlags);
2160
2161 CMAPI
2162 CONFIGRET
2163 WINAPI
2164 CM_Get_Res_Des_Data_Ex(
2165 _In_ RES_DES rdResDes,
2166 _Out_writes_bytes_(BufferLen) PVOID Buffer,
2167 _In_ ULONG BufferLen,
2168 _In_ ULONG ulFlags,
2169 _In_opt_ HMACHINE hMachine);
2170
2171 CMAPI
2172 CONFIGRET
2173 WINAPI
2174 CM_Get_Res_Des_Data_Size(
2175 _Out_ PULONG pulSize,
2176 _In_ RES_DES rdResDes,
2177 _In_ ULONG ulFlags);
2178
2179 CMAPI
2180 CONFIGRET
2181 WINAPI
2182 CM_Get_Res_Des_Data_Size_Ex(
2183 _Out_ PULONG pulSize,
2184 _In_ RES_DES rdResDes,
2185 _In_ ULONG ulFlags,
2186 _In_opt_ HMACHINE hMachine);
2187
2188 CMAPI
2189 CONFIGRET
2190 WINAPI
2191 CM_Get_Resource_Conflict_Count(
2192 _In_ CONFLICT_LIST clConflictList,
2193 _Out_ PULONG pulCount);
2194
2195 CMAPI
2196 CONFIGRET
2197 WINAPI
2198 CM_Get_Resource_Conflict_DetailsA(
2199 _In_ CONFLICT_LIST clConflictList,
2200 _In_ ULONG ulIndex,
2201 _Inout_ PCONFLICT_DETAILS_A pConflictDetails);
2202
2203 CMAPI
2204 CONFIGRET
2205 WINAPI
2206 CM_Get_Resource_Conflict_DetailsW(
2207 _In_ CONFLICT_LIST clConflictList,
2208 _In_ ULONG ulIndex,
2209 _Inout_ PCONFLICT_DETAILS_W pConflictDetails);
2210
2211 #ifdef UNICODE
2212 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
2213 #else
2214 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
2215 #endif /* UNICODE */
2216
2217 CMAPI
2218 CONFIGRET
2219 WINAPI
2220 CM_Get_Class_Registry_PropertyW(
2221 _In_ LPGUID ClassGuid,
2222 _In_ ULONG ulProperty,
2223 _Out_opt_ PULONG pulRegDataType,
2224 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
2225 _Inout_ PULONG pulLength,
2226 _In_ ULONG ulFlags,
2227 _In_opt_ HMACHINE hMachine);
2228
2229 CMAPI
2230 CONFIGRET
2231 WINAPI
2232 CM_Set_Class_Registry_PropertyW(
2233 _In_ LPGUID ClassGuid,
2234 _In_ ULONG ulProperty,
2235 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
2236 _In_ ULONG ulLength,
2237 _In_ ULONG ulFlags,
2238 _In_opt_ HMACHINE hMachine);
2239
2240 CMAPI
2241 CONFIGRET
2242 WINAPI
2243 CM_Get_Class_Registry_PropertyA(
2244 _In_ LPGUID ClassGuid,
2245 _In_ ULONG ulProperty,
2246 _Out_opt_ PULONG pulRegDataType,
2247 _Out_writes_bytes_opt_(*pulLength) PVOID Buffer,
2248 _Inout_ PULONG pulLength,
2249 _In_ ULONG ulFlags,
2250 _In_opt_ HMACHINE hMachine);
2251
2252 CMAPI
2253 CONFIGRET
2254 WINAPI
2255 CM_Set_Class_Registry_PropertyA(
2256 _In_ LPGUID ClassGuid,
2257 _In_ ULONG ulProperty,
2258 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
2259 _In_ ULONG ulLength,
2260 _In_ ULONG ulFlags,
2261 _In_opt_ HMACHINE hMachine);
2262
2263 #ifdef UNICODE
2264 #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyW
2265 #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyW
2266 #else
2267 #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyA
2268 #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyA
2269 #endif // UNICODE
2270
2271 CMAPI
2272 CONFIGRET
2273 WINAPI
2274 CM_Get_Sibling(
2275 _Out_ PDEVINST pdnDevInst,
2276 _In_ DEVINST DevInst,
2277 _In_ ULONG ulFlags);
2278
2279 CMAPI
2280 CONFIGRET
2281 WINAPI
2282 CM_Get_Sibling_Ex(
2283 _Out_ PDEVINST pdnDevInst,
2284 _In_ DEVINST DevInst,
2285 _In_ ULONG ulFlags,
2286 _In_opt_ HMACHINE hMachine);
2287
2288 CMAPI
2289 WORD
2290 WINAPI
2291 CM_Get_Version(VOID);
2292
2293 CMAPI
2294 WORD
2295 WINAPI
2296 CM_Get_Version_Ex(
2297 _In_opt_ HMACHINE hMachine);
2298
2299 #if (WINVER >= _WIN32_WINNT_WINXP)
2300
2301 CMAPI
2302 BOOL
2303 WINAPI
2304 CM_Is_Version_Available(
2305 _In_ WORD wVersion);
2306
2307 CMAPI
2308 BOOL
2309 WINAPI
2310 CM_Is_Version_Available_Ex(
2311 _In_ WORD wVersion,
2312 _In_opt_ HMACHINE hMachine);
2313
2314 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
2315
2316 CMAPI
2317 CONFIGRET
2318 WINAPI
2319 CM_Intersect_Range_List(
2320 _In_ RANGE_LIST rlhOld1,
2321 _In_ RANGE_LIST rlhOld2,
2322 _In_ RANGE_LIST rlhNew,
2323 _In_ ULONG ulFlags);
2324
2325 CMAPI
2326 CONFIGRET
2327 WINAPI
2328 CM_Invert_Range_List(
2329 _In_ RANGE_LIST rlhOld,
2330 _In_ RANGE_LIST rlhNew,
2331 _In_ DWORDLONG ullMaxValue,
2332 _In_ ULONG ulFlags);
2333
2334 CMAPI
2335 CONFIGRET
2336 WINAPI
2337 CM_Is_Dock_Station_Present(
2338 _Out_ PBOOL pbPresent);
2339
2340 CMAPI
2341 CONFIGRET
2342 WINAPI
2343 CM_Is_Dock_Station_Present_Ex(
2344 _Out_ PBOOL pbPresent,
2345 _In_opt_ HMACHINE hMachine);
2346
2347 CMAPI
2348 CONFIGRET
2349 WINAPI
2350 CM_Locate_DevNodeA(
2351 _Out_ PDEVINST pdnDevInst,
2352 _In_opt_ DEVINSTID_A pDeviceID,
2353 _In_ ULONG ulFlags);
2354
2355 CMAPI
2356 CONFIGRET
2357 WINAPI
2358 CM_Locate_DevNode_ExA(
2359 _Out_ PDEVINST pdnDevInst,
2360 _In_opt_ DEVINSTID_A pDeviceID,
2361 _In_ ULONG ulFlags,
2362 _In_opt_ HMACHINE hMachine);
2363
2364 CMAPI
2365 CONFIGRET
2366 WINAPI
2367 CM_Locate_DevNode_ExW(
2368 _Out_ PDEVINST pdnDevInst,
2369 _In_opt_ DEVINSTID_W pDeviceID,
2370 _In_ ULONG ulFlags,
2371 _In_opt_ HMACHINE hMachine);
2372
2373 CMAPI
2374 CONFIGRET
2375 WINAPI
2376 CM_Locate_DevNodeW(
2377 _Out_ PDEVINST pdnDevInst,
2378 _In_opt_ DEVINSTID_W pDeviceID,
2379 _In_ ULONG ulFlags);
2380
2381 #define CM_Locate_DevInstA CM_Locate_DevNodeA
2382 #define CM_Locate_DevInstW CM_Locate_DevNodeW
2383 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
2384 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
2385
2386 #ifdef UNICODE
2387 #define CM_Locate_DevNode CM_Locate_DevNodeW
2388 #define CM_Locate_DevInst CM_Locate_DevNodeW
2389 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
2390 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
2391 #else
2392 #define CM_Locate_DevNode CM_Locate_DevNodeA
2393 #define CM_Locate_DevInst CM_Locate_DevNodeA
2394 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
2395 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
2396 #endif /* UNICODE */
2397
2398 CMAPI
2399 CONFIGRET
2400 WINAPI
2401 CM_Merge_Range_List(
2402 _In_ RANGE_LIST rlhOld1,
2403 _In_ RANGE_LIST rlhOld2,
2404 _In_ RANGE_LIST rlhNew,
2405 _In_ ULONG ulFlags);
2406
2407 CMAPI
2408 CONFIGRET
2409 WINAPI
2410 CM_Modify_Res_Des(
2411 _Out_ PRES_DES prdResDes,
2412 _In_ RES_DES rdResDes,
2413 _In_ RESOURCEID ResourceID,
2414 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
2415 _In_ ULONG ResourceLen,
2416 _In_ ULONG ulFlags);
2417
2418 CMAPI
2419 CONFIGRET
2420 WINAPI
2421 CM_Modify_Res_Des_Ex(
2422 _Out_ PRES_DES prdResDes,
2423 _In_ RES_DES rdResDes,
2424 _In_ RESOURCEID ResourceID,
2425 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
2426 _In_ ULONG ResourceLen,
2427 _In_ ULONG ulFlags,
2428 _In_opt_ HMACHINE hMachine);
2429
2430 CMAPI
2431 CONFIGRET
2432 WINAPI
2433 CM_Move_DevNode(
2434 _In_ DEVINST dnFromDevInst,
2435 _In_ DEVINST dnToDevInst,
2436 _In_ ULONG ulFlags);
2437
2438 CMAPI
2439 CONFIGRET
2440 WINAPI
2441 CM_Move_DevNode_Ex(
2442 _In_ DEVINST dnFromDevInst,
2443 _In_ DEVINST dnToDevInst,
2444 _In_ ULONG ulFlags,
2445 _In_opt_ HMACHINE hMachine);
2446
2447 #define CM_Move_DevInst CM_Move_DevNode
2448 #define CM_Move_DevInst_Ex CM_Move_DevNode_Ex
2449
2450 CMAPI
2451 CONFIGRET
2452 WINAPI
2453 CM_Next_Range(
2454 _Inout_ PRANGE_ELEMENT preElement,
2455 _Out_ PDWORDLONG pullStart,
2456 _Out_ PDWORDLONG pullEnd,
2457 _In_ ULONG ulFlags);
2458
2459 CMAPI
2460 CONFIGRET
2461 WINAPI
2462 CM_Open_Class_KeyA(
2463 _In_opt_ LPGUID ClassGuid,
2464 _In_opt_ LPCSTR pszClassName,
2465 _In_ REGSAM samDesired,
2466 _In_ REGDISPOSITION Disposition,
2467 _Out_ PHKEY phkClass,
2468 _In_ ULONG ulFlags);
2469
2470 CMAPI
2471 CONFIGRET
2472 WINAPI
2473 CM_Open_Class_KeyW(
2474 _In_opt_ LPGUID ClassGuid,
2475 _In_opt_ LPCWSTR pszClassName,
2476 _In_ REGSAM samDesired,
2477 _In_ REGDISPOSITION Disposition,
2478 _Out_ PHKEY phkClass,
2479 _In_ ULONG ulFlags);
2480
2481 CMAPI
2482 CONFIGRET
2483 WINAPI
2484 CM_Open_Class_Key_ExA(
2485 _In_opt_ LPGUID pszClassGuid,
2486 _In_opt_ LPCSTR pszClassName,
2487 _In_ REGSAM samDesired,
2488 _In_ REGDISPOSITION Disposition,
2489 _Out_ PHKEY phkClass,
2490 _In_ ULONG ulFlags,
2491 _In_opt_ HMACHINE hMachine);
2492
2493 CMAPI
2494 CONFIGRET
2495 WINAPI
2496 CM_Open_Class_Key_ExW(
2497 _In_opt_ LPGUID pszClassGuid,
2498 _In_opt_ LPCWSTR pszClassName,
2499 _In_ REGSAM samDesired,
2500 _In_ REGDISPOSITION Disposition,
2501 _Out_ PHKEY phkClass,
2502 _In_ ULONG ulFlags,
2503 _In_opt_ HMACHINE hMachine);
2504
2505 #ifdef UNICODE
2506 #define CM_Open_Class_Key CM_Open_Class_KeyW
2507 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
2508 #else
2509 #define CM_Open_Class_Key CM_Open_Class_KeyA
2510 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
2511 #endif /* UNICODE */
2512
2513 CMAPI
2514 CONFIGRET
2515 WINAPI
2516 CM_Open_DevNode_Key(
2517 _In_ DEVINST dnDevNode,
2518 _In_ REGSAM samDesired,
2519 _In_ ULONG ulHardwareProfile,
2520 _In_ REGDISPOSITION Disposition,
2521 _Out_ PHKEY phkDevice,
2522 _In_ ULONG ulFlags);
2523
2524 CMAPI
2525 CONFIGRET
2526 WINAPI
2527 CM_Open_DevNode_Key_Ex(
2528 _In_ DEVINST dnDevNode,
2529 _In_ REGSAM samDesired,
2530 _In_ ULONG ulHardwareProfile,
2531 _In_ REGDISPOSITION Disposition,
2532 _Out_ PHKEY phkDevice,
2533 _In_ ULONG ulFlags,
2534 _In_opt_ HMACHINE hMachine);
2535
2536 #define CM_Open_DevInst_Key CM_Open_DevNode_Key
2537 #define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
2538
2539 #if (WINVER >= _WIN32_WINNT_VISTA)
2540
2541 CMAPI
2542 CONFIGRET
2543 WINAPI
2544 CM_Open_Device_Interface_KeyA(
2545 _In_ LPCSTR pszDeviceInterface,
2546 _In_ REGSAM samDesired,
2547 _In_ REGDISPOSITION Disposition,
2548 _Out_ PHKEY phkDeviceInterface,
2549 _In_ ULONG ulFlags);
2550
2551 CMAPI
2552 CONFIGRET
2553 WINAPI
2554 CM_Open_Device_Interface_KeyW(
2555 _In_ LPCWSTR pszDeviceInterface,
2556 _In_ REGSAM samDesired,
2557 _In_ REGDISPOSITION Disposition,
2558 _Out_ PHKEY phkDeviceInterface,
2559 _In_ ULONG ulFlags);
2560
2561 CMAPI
2562 CONFIGRET
2563 WINAPI
2564 CM_Open_Device_Interface_Key_ExA(
2565 _In_ LPCSTR pszDeviceInterface,
2566 _In_ REGSAM samDesired,
2567 _In_ REGDISPOSITION Disposition,
2568 _Out_ PHKEY phkDeviceInterface,
2569 _In_ ULONG ulFlags,
2570 _In_opt_ HMACHINE hMachine);
2571
2572 CMAPI
2573 CONFIGRET
2574 WINAPI
2575 CM_Open_Device_Interface_Key_ExW(
2576 _In_ LPCWSTR pszDeviceInterface,
2577 _In_ REGSAM samDesired,
2578 _In_ REGDISPOSITION Disposition,
2579 _Out_ PHKEY phkDeviceInterface,
2580 _In_ ULONG ulFlags,
2581 _In_opt_ HMACHINE hMachine);
2582
2583 #ifdef UNICODE
2584 #define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyW
2585 #define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExW
2586 #else
2587 #define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyA
2588 #define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExA
2589 #endif
2590
2591 CMAPI
2592 CONFIGRET
2593 WINAPI
2594 CM_Delete_Device_Interface_KeyA(
2595 _In_ LPCSTR pszDeviceInterface,
2596 _In_ ULONG ulFlags);
2597
2598 CMAPI
2599 CONFIGRET
2600 WINAPI
2601 CM_Delete_Device_Interface_KeyW(
2602 _In_ LPCWSTR pszDeviceInterface,
2603 _In_ ULONG ulFlags);
2604
2605 CMAPI
2606 CONFIGRET
2607 WINAPI
2608 CM_Delete_Device_Interface_Key_ExA(
2609 _In_ LPCSTR pszDeviceInterface,
2610 _In_ ULONG ulFlags,
2611 _In_opt_ HMACHINE hMachine);
2612
2613 CMAPI
2614 CONFIGRET
2615 WINAPI
2616 CM_Delete_Device_Interface_Key_ExW(
2617 _In_ LPCWSTR pszDeviceInterface,
2618 _In_ ULONG ulFlags,
2619 _In_opt_ HMACHINE hMachine);
2620
2621 #ifdef UNICODE
2622 #define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyW
2623 #define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExW
2624 #else
2625 #define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyA
2626 #define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExA
2627 #endif
2628
2629 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
2630
2631 CMAPI
2632 CONFIGRET
2633 WINAPI
2634 CM_Query_Arbitrator_Free_Data(
2635 _Out_writes_bytes_(DataLen) PVOID pData,
2636 _In_ ULONG DataLen,
2637 _In_ DEVINST dnDevInst,
2638 _In_ RESOURCEID ResourceID,
2639 _In_ ULONG ulFlags);
2640
2641 CMAPI
2642 CONFIGRET
2643 WINAPI
2644 CM_Query_Arbitrator_Free_Data_Ex(
2645 _Out_writes_bytes_(DataLen) PVOID pData,
2646 _In_ ULONG DataLen,
2647 _In_ DEVINST dnDevInst,
2648 _In_ RESOURCEID ResourceID,
2649 _In_ ULONG ulFlags,
2650 _In_opt_ HMACHINE hMachine);
2651
2652 CMAPI
2653 CONFIGRET
2654 WINAPI
2655 CM_Query_Arbitrator_Free_Size(
2656 _Out_ PULONG pulSize,
2657 _In_ DEVINST dnDevInst,
2658 _In_ RESOURCEID ResourceID,
2659 _In_ ULONG ulFlags);
2660
2661 CMAPI
2662 CONFIGRET
2663 WINAPI
2664 CM_Query_Arbitrator_Free_Size_Ex(
2665 _Out_ PULONG pulSize,
2666 _In_ DEVINST dnDevInst,
2667 _In_ RESOURCEID ResourceID,
2668 _In_ ULONG ulFlags,
2669 _In_opt_ HMACHINE hMachine);
2670
2671 CMAPI
2672 CONFIGRET
2673 WINAPI
2674 CM_Query_Remove_SubTree(
2675 _In_ DEVINST dnAncestor,
2676 _In_ ULONG ulFlags);
2677
2678 CMAPI
2679 CONFIGRET
2680 WINAPI
2681 CM_Query_Remove_SubTree_Ex(
2682 _In_ DEVINST dnAncestor,
2683 _In_ ULONG ulFlags,
2684 _In_opt_ HMACHINE hMachine);
2685
2686 CMAPI
2687 CONFIGRET
2688 WINAPI
2689 CM_Query_And_Remove_SubTreeA(
2690 _In_ DEVINST dnAncestor,
2691 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2692 _Out_writes_opt_(ulNameLength) LPSTR pszVetoName,
2693 _In_ ULONG ulNameLength,
2694 _In_ ULONG ulFlags);
2695
2696 CMAPI
2697 CONFIGRET
2698 WINAPI
2699 CM_Query_And_Remove_SubTreeW(
2700 _In_ DEVINST dnAncestor,
2701 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2702 _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName,
2703 _In_ ULONG ulNameLength,
2704 _In_ ULONG ulFlags);
2705
2706 CMAPI
2707 CONFIGRET
2708 WINAPI
2709 CM_Query_And_Remove_SubTree_ExA(
2710 _In_ DEVINST dnAncestor,
2711 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2712 _Out_writes_opt_(ulNameLength) LPSTR pszVetoName,
2713 _In_ ULONG ulNameLength,
2714 _In_ ULONG ulFlags,
2715 _In_opt_ HMACHINE hMachine);
2716
2717 CMAPI
2718 CONFIGRET
2719 WINAPI
2720 CM_Query_And_Remove_SubTree_ExW(
2721 _In_ DEVINST dnAncestor,
2722 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2723 _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName,
2724 _In_ ULONG ulNameLength,
2725 _In_ ULONG ulFlags,
2726 _In_opt_ HMACHINE hMachine);
2727
2728 #ifdef UNICODE
2729 #define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeW
2730 #define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExW
2731 #else
2732 #define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeA
2733 #define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExA
2734 #endif
2735
2736 CMAPI
2737 CONFIGRET
2738 WINAPI
2739 CM_Query_Resource_Conflict_List(
2740 _Out_ PCONFLICT_LIST pclConflictList,
2741 _In_ DEVINST dnDevInst,
2742 _In_ RESOURCEID ResourceID,
2743 _In_reads_bytes_(ResourceLen) PCVOID ResourceData,
2744 _In_ ULONG ResourceLen,
2745 _In_ ULONG ulFlags,
2746 _In_opt_ HMACHINE hMachine);
2747
2748 CMAPI
2749 CONFIGRET
2750 WINAPI
2751 CM_Reenumerate_DevNode(
2752 _In_ DEVINST dnDevInst,
2753 _In_ ULONG ulFlags);
2754
2755 CMAPI
2756 CONFIGRET
2757 WINAPI
2758 CM_Reenumerate_DevNode_Ex(
2759 _In_ DEVINST dnDevInst,
2760 _In_ ULONG ulFlags,
2761 _In_opt_ HMACHINE hMachine);
2762
2763 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
2764 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
2765
2766 CMAPI
2767 CONFIGRET
2768 WINAPI
2769 CM_Register_Device_InterfaceA(
2770 _In_ DEVINST dnDevInst,
2771 _In_ LPGUID InterfaceClassGuid,
2772 _In_opt_ LPCSTR pszReference,
2773 _Out_writes_(*pulLength) LPSTR pszDeviceInterface,
2774 _Inout_ PULONG pulLength,
2775 _In_ ULONG ulFlags);
2776
2777 CMAPI
2778 CONFIGRET
2779 WINAPI
2780 CM_Register_Device_InterfaceW(
2781 _In_ DEVINST dnDevInst,
2782 _In_ LPGUID InterfaceClassGuid,
2783 _In_opt_ LPCWSTR pszReference,
2784 _Out_writes_(*pulLength) LPWSTR pszDeviceInterface,
2785 _Inout_ PULONG pulLength,
2786 _In_ ULONG ulFlags);
2787
2788 CMAPI
2789 CONFIGRET
2790 WINAPI
2791 CM_Register_Device_Interface_ExA(
2792 _In_ DEVINST dnDevInst,
2793 _In_ LPGUID InterfaceClassGuid,
2794 _In_opt_ LPCSTR pszReference,
2795 _Out_writes_(*pulLength) LPSTR pszDeviceInterface,
2796 _Inout_ PULONG pulLength,
2797 _In_ ULONG ulFlags,
2798 _In_opt_ HMACHINE hMachine);
2799
2800 CMAPI
2801 CONFIGRET
2802 WINAPI
2803 CM_Register_Device_Interface_ExW(
2804 _In_ DEVINST dnDevInst,
2805 _In_ LPGUID InterfaceClassGuid,
2806 _In_opt_ LPCWSTR pszReference,
2807 _Out_writes_(*pulLength) LPWSTR pszDeviceInterface,
2808 _Inout_ PULONG pulLength,
2809 _In_ ULONG ulFlags,
2810 _In_opt_ HMACHINE hMachine);
2811
2812 #ifdef UNICODE
2813 #define CM_Register_Device_Interface CM_Register_Device_InterfaceW
2814 #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExW
2815 #else
2816 #define CM_Register_Device_Interface CM_Register_Device_InterfaceA
2817 #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExA
2818 #endif
2819
2820 CMAPI
2821 CONFIGRET
2822 WINAPI
2823 CM_Request_Device_EjectA(
2824 _In_ DEVINST dnDevInst,
2825 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2826 _Out_writes_opt_(ulNameLength) LPSTR pszVetoName,
2827 _In_ ULONG ulNameLength,
2828 _In_ ULONG ulFlags);
2829
2830 CMAPI
2831 CONFIGRET
2832 WINAPI
2833 CM_Request_Device_Eject_ExW(
2834 _In_ DEVINST dnDevInst,
2835 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2836 _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName,
2837 _In_ ULONG ulNameLength,
2838 _In_ ULONG ulFlags,
2839 _In_opt_ HMACHINE hMachine);
2840
2841 CMAPI
2842 CONFIGRET
2843 WINAPI
2844 CM_Request_Device_Eject_ExA(
2845 _In_ DEVINST dnDevInst,
2846 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2847 _Out_writes_opt_(ulNameLength) LPSTR pszVetoName,
2848 _In_ ULONG ulNameLength,
2849 _In_ ULONG ulFlags,
2850 _In_opt_ HMACHINE hMachine);
2851
2852 CMAPI
2853 CONFIGRET
2854 WINAPI
2855 CM_Request_Device_EjectW(
2856 _In_ DEVINST dnDevInst,
2857 _Out_opt_ PPNP_VETO_TYPE pVetoType,
2858 _Out_writes_opt_(ulNameLength) LPWSTR pszVetoName,
2859 _In_ ULONG ulNameLength,
2860 _In_ ULONG ulFlags);
2861
2862 #ifdef UNICODE
2863 #define CM_Request_Device_Eject CM_Request_Device_EjectW
2864 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
2865 #else
2866 #define CM_Request_Device_Eject CM_Request_Device_EjectA
2867 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
2868 #endif
2869
2870 CMAPI
2871 CONFIGRET
2872 WINAPI
2873 CM_Request_Eject_PC(VOID);
2874
2875 CMAPI
2876 CONFIGRET
2877 WINAPI
2878 CM_Request_Eject_PC_Ex(
2879 _In_opt_ HMACHINE hMachine);
2880
2881 CMAPI
2882 CONFIGRET
2883 WINAPI
2884 CM_Run_Detection(
2885 _In_ ULONG ulFlags);
2886
2887 CMAPI
2888 CONFIGRET
2889 WINAPI
2890 CM_Run_Detection_Ex(
2891 _In_ ULONG ulFlags,
2892 _In_opt_ HMACHINE hMachine);
2893
2894 #if (WINVER >= _WIN32_WINNT_VISTA)
2895
2896 CONFIGRET
2897 CM_Apply_PowerScheme(VOID);
2898
2899 CONFIGRET
2900 CM_Write_UserPowerKey(
2901 _In_opt_ CONST GUID *SchemeGuid,
2902 _In_opt_ CONST GUID *SubGroupOfPowerSettingsGuid,
2903 _In_opt_ CONST GUID *PowerSettingGuid,
2904 _In_ ULONG AccessFlags,
2905 _In_ ULONG Type,
2906 _In_reads_bytes_(BufferSize) UCHAR *Buffer,
2907 _In_ DWORD BufferSize,
2908 _Out_ PDWORD Error);
2909
2910 CONFIGRET
2911 CM_Set_ActiveScheme(
2912 _In_ CONST GUID *SchemeGuid,
2913 _Out_ PDWORD Error);
2914
2915 CONFIGRET
2916 CM_Restore_DefaultPowerScheme(
2917 _In_ CONST GUID *SchemeGuid,
2918 _Out_ PDWORD Error);
2919
2920 CONFIGRET
2921 CM_RestoreAll_DefaultPowerSchemes(
2922 _Out_ PDWORD Error);
2923
2924 CONFIGRET
2925 CM_Duplicate_PowerScheme(
2926 _In_ CONST GUID *SourceSchemeGuid,
2927 _Inout_ GUID **DestinationSchemeGuid,
2928 _Out_ PDWORD Error);
2929
2930 CONFIGRET
2931 CM_Delete_PowerScheme(
2932 _In_ CONST GUID *SchemeGuid,
2933 _Out_ PDWORD Error);
2934
2935 CONFIGRET
2936 CM_Import_PowerScheme(
2937 _In_ LPCWSTR ImportFileNamePath,
2938 _Inout_ GUID **DestinationSchemeGuid,
2939 _Out_ PDWORD Error);
2940
2941 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
2942
2943 CMAPI
2944 CONFIGRET
2945 WINAPI
2946 CM_Set_DevNode_Problem(
2947 _In_ DEVINST dnDevInst,
2948 _In_ ULONG ulProblem,
2949 _In_ ULONG ulFlags);
2950
2951 CMAPI
2952 CONFIGRET
2953 WINAPI
2954 CM_Set_DevNode_Problem_Ex(
2955 _In_ DEVINST dnDevInst,
2956 _In_ ULONG ulProblem,
2957 _In_ ULONG ulFlags,
2958 _In_opt_ HMACHINE hMachine);
2959
2960 #define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
2961 #define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
2962
2963 CMAPI
2964 CONFIGRET
2965 WINAPI
2966 CM_Unregister_Device_InterfaceA(
2967 _In_ LPCSTR pszDeviceInterface,
2968 _In_ ULONG ulFlags);
2969
2970 CMAPI
2971 CONFIGRET
2972 WINAPI
2973 CM_Unregister_Device_InterfaceW(
2974 _In_ LPCWSTR pszDeviceInterface,
2975 _In_ ULONG ulFlags);
2976
2977 CMAPI
2978 CONFIGRET
2979 WINAPI
2980 CM_Unregister_Device_Interface_ExA(
2981 _In_ LPCSTR pszDeviceInterface,
2982 _In_ ULONG ulFlags,
2983 _In_opt_ HMACHINE hMachine);
2984
2985 CMAPI
2986 CONFIGRET
2987 WINAPI
2988 CM_Unregister_Device_Interface_ExW(
2989 _In_ LPCWSTR pszDeviceInterface,
2990 _In_ ULONG ulFlags,
2991 _In_opt_ HMACHINE hMachine);
2992
2993 #ifdef UNICODE
2994 #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceW
2995 #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExW
2996 #else
2997 #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceA
2998 #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExA
2999 #endif
3000
3001 CMAPI
3002 CONFIGRET
3003 WINAPI
3004 CM_Register_Device_Driver(
3005 _In_ DEVINST dnDevInst,
3006 _In_ ULONG ulFlags);
3007
3008 CMAPI
3009 CONFIGRET
3010 WINAPI
3011 CM_Register_Device_Driver_Ex(
3012 _In_ DEVINST dnDevInst,
3013 _In_ ULONG ulFlags,
3014 _In_opt_ HMACHINE hMachine);
3015
3016 CMAPI
3017 CONFIGRET
3018 WINAPI
3019 CM_Remove_SubTree(
3020 _In_ DEVINST dnAncestor,
3021 _In_ ULONG ulFlags);
3022
3023 CMAPI
3024 CONFIGRET
3025 WINAPI
3026 CM_Remove_SubTree_Ex(
3027 _In_ DEVINST dnAncestor,
3028 _In_ ULONG ulFlags,
3029 _In_opt_ HMACHINE hMachine);
3030
3031 CMAPI
3032 CONFIGRET
3033 WINAPI
3034 CM_Set_DevNode_Registry_PropertyA(
3035 _In_ DEVINST dnDevInst,
3036 _In_ ULONG ulProperty,
3037 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
3038 _In_ ULONG ulLength,
3039 _In_ ULONG ulFlags);
3040
3041 CMAPI
3042 CONFIGRET
3043 WINAPI
3044 CM_Set_DevNode_Registry_PropertyW(
3045 _In_ DEVINST dnDevInst,
3046 _In_ ULONG ulProperty,
3047 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
3048 _In_ ULONG ulLength,
3049 _In_ ULONG ulFlags);
3050
3051 CMAPI
3052 CONFIGRET
3053 WINAPI
3054 CM_Set_DevNode_Registry_Property_ExA(
3055 _In_ DEVINST dnDevInst,
3056 _In_ ULONG ulProperty,
3057 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
3058 _In_ ULONG ulLength,
3059 _In_ ULONG ulFlags,
3060 _In_opt_ HMACHINE hMachine);
3061
3062 CMAPI
3063 CONFIGRET
3064 WINAPI
3065 CM_Set_DevNode_Registry_Property_ExW(
3066 _In_ DEVINST dnDevInst,
3067 _In_ ULONG ulProperty,
3068 _In_reads_bytes_opt_(ulLength) PCVOID Buffer,
3069 _In_ ULONG ulLength,
3070 _In_ ULONG ulFlags,
3071 _In_opt_ HMACHINE hMachine);
3072
3073 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
3074 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
3075 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
3076 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
3077
3078 #ifdef UNICODE
3079 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
3080 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
3081 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
3082 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
3083 #else
3084 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
3085 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
3086 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
3087 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
3088 #endif /* UNICODE */
3089
3090 CMAPI
3091 CONFIGRET
3092 WINAPI
3093 CM_Set_HW_Prof(
3094 _In_ ULONG ulHardwareProfile,
3095 _In_ ULONG ulFlags);
3096
3097 CMAPI
3098 CONFIGRET
3099 WINAPI
3100 CM_Set_HW_Prof_Ex(
3101 _In_ ULONG ulHardwareProfile,
3102 _In_ ULONG ulFlags,
3103 _In_opt_ HMACHINE hMachine);
3104
3105 CMAPI
3106 CONFIGRET
3107 WINAPI
3108 CM_Set_HW_Prof_FlagsA(
3109 _In_ DEVINSTID_A szDevInstName,
3110 _In_ ULONG ulConfig,
3111 _In_ ULONG ulValue,
3112 _In_ ULONG ulFlags);
3113
3114 CMAPI
3115 CONFIGRET
3116 WINAPI
3117 CM_Set_HW_Prof_FlagsW(
3118 _In_ DEVINSTID_W szDevInstName,
3119 _In_ ULONG ulConfig,
3120 _In_ ULONG ulValue,
3121 _In_ ULONG ulFlags);
3122
3123 CMAPI
3124 CONFIGRET
3125 WINAPI
3126 CM_Set_HW_Prof_Flags_ExA(
3127 _In_ DEVINSTID_A szDevInstName,
3128 _In_ ULONG ulConfig,
3129 _In_ ULONG ulValue,
3130 _In_ ULONG ulFlags,
3131 _In_opt_ HMACHINE hMachine);
3132
3133 CMAPI
3134 CONFIGRET
3135 WINAPI
3136 CM_Set_HW_Prof_Flags_ExW(
3137 _In_ DEVINSTID_W szDevInstName,
3138 _In_ ULONG ulConfig,
3139 _In_ ULONG ulValue,
3140 _In_ ULONG ulFlags,
3141 _In_opt_ HMACHINE hMachine);
3142
3143 #ifdef UNICODE
3144 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
3145 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
3146 #else
3147 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
3148 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
3149 #endif /* UNICODE */
3150
3151 CMAPI
3152 CONFIGRET
3153 WINAPI
3154 CM_Setup_DevNode(
3155 _In_ DEVINST dnDevInst,
3156 _In_ ULONG ulFlags);
3157
3158 CMAPI
3159 CONFIGRET
3160 WINAPI
3161 CM_Setup_DevNode_Ex(
3162 _In_ DEVINST dnDevInst,
3163 _In_ ULONG ulFlags,
3164 _In_opt_ HMACHINE hMachine);
3165
3166 #define CM_Setup_DevInst CM_Setup_DevNode
3167 #define CM_Setup_DevInst_Ex CM_Setup_DevNode_Ex
3168
3169 CMAPI
3170 CONFIGRET
3171 WINAPI
3172 CM_Test_Range_Available(
3173 _In_ DWORDLONG ullStartValue,
3174 _In_ DWORDLONG ullEndValue,
3175 _In_ RANGE_LIST rlh,
3176 _In_ ULONG ulFlags);
3177
3178 CMAPI
3179 CONFIGRET
3180 WINAPI
3181 CM_Uninstall_DevNode(
3182 _In_ DEVINST dnPhantom,
3183 _In_ ULONG ulFlags);
3184
3185 CMAPI
3186 CONFIGRET
3187 WINAPI
3188 CM_Uninstall_DevNode_Ex(
3189 _In_ DEVINST dnPhantom,
3190 _In_ ULONG ulFlags,
3191 _In_opt_ HMACHINE hMachine);
3192
3193 #define CM_Uninstall_DevInst CM_Uninstall_DevNode
3194 #define CM_Uninstall_DevInst_Ex CM_Uninstall_DevNode_Ex
3195
3196
3197 #if (WINVER >= _WIN32_WINNT_WIN2K)
3198
3199 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
3200
3201 CMAPI
3202 DWORD
3203 WINAPI
3204 CMP_WaitNoPendingInstallEvents(
3205 _In_ DWORD dwTimeout);
3206
3207 #endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
3208
3209 #ifdef __cplusplus
3210 }
3211 #endif
3212
3213 #endif /* _CFGMGR32_H_ */