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