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