[PSDK]
[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 */
947
948 CMAPI
949 CONFIGRET
950 WINAPI
951 CM_Add_Empty_Log_Conf(
952 OUT PLOG_CONF plcLogConf,
953 IN DEVINST dnDevInst,
954 IN PRIORITY Priority,
955 IN ULONG ulFlags);
956
957 CMAPI
958 CONFIGRET
959 WINAPI
960 CM_Add_Empty_Log_Conf_Ex(
961 OUT PLOG_CONF plcLogConf,
962 IN DEVINST dnDevInst,
963 IN PRIORITY Priority,
964 IN ULONG ulFlags,
965 IN HMACHINE hMachine);
966
967 CMAPI
968 CONFIGRET
969 WINAPI
970 CM_Add_IDA(
971 IN DEVINST dnDevInst,
972 IN PSTR pszID,
973 IN ULONG ulFlags);
974
975 CMAPI
976 CONFIGRET
977 WINAPI
978 CM_Add_ID_ExA(
979 IN DEVINST dnDevInst,
980 IN PSTR pszID,
981 IN ULONG ulFlags,
982 IN HMACHINE hMachine);
983
984 CMAPI
985 CONFIGRET
986 WINAPI
987 CM_Add_ID_ExW(
988 IN DEVINST dnDevInst,
989 IN PWSTR pszID,
990 IN ULONG ulFlags,
991 IN HMACHINE hMachine);
992
993 CMAPI
994 CONFIGRET
995 WINAPI
996 CM_Add_IDW(
997 IN DEVINST dnDevInst,
998 IN PWSTR pszID,
999 IN ULONG ulFlags);
1000
1001 #ifdef UNICODE
1002 #define CM_Add_ID CM_Add_IDW
1003 #define CM_Add_ID_Ex CM_Add_ID_ExW
1004 #else
1005 #define CM_Add_ID CM_Add_IDA
1006 #define CM_Add_ID_Ex CM_Add_ID_ExA
1007 #endif /* UNICODE */
1008
1009 CMAPI
1010 CONFIGRET
1011 WINAPI
1012 CM_Add_Range(
1013 IN DWORDLONG ullStartValue,
1014 IN DWORDLONG ullEndValue,
1015 IN RANGE_LIST rlh,
1016 IN ULONG ulFlags);
1017
1018 CMAPI
1019 CONFIGRET
1020 WINAPI
1021 CM_Add_Res_Des(
1022 OUT PRES_DES prdResDes OPTIONAL,
1023 IN LOG_CONF lcLogConf,
1024 IN RESOURCEID ResourceID,
1025 IN PCVOID ResourceData,
1026 IN ULONG ResourceLen,
1027 IN ULONG ulFlags);
1028
1029 CMAPI
1030 CONFIGRET
1031 WINAPI
1032 CM_Add_Res_Des_Ex(
1033 OUT PRES_DES prdResDes OPTIONAL,
1034 IN LOG_CONF lcLogConf,
1035 IN RESOURCEID ResourceID,
1036 IN PCVOID ResourceData,
1037 IN ULONG ResourceLen,
1038 IN ULONG ulFlags,
1039 IN HMACHINE hMachine);
1040
1041 CMAPI
1042 CONFIGRET
1043 WINAPI
1044 CM_Connect_MachineA(
1045 IN PCSTR UNCServerName OPTIONAL,
1046 OUT PHMACHINE phMachine);
1047
1048 CMAPI
1049 CONFIGRET
1050 WINAPI
1051 CM_Connect_MachineW(
1052 IN PCWSTR UNCServerName OPTIONAL,
1053 OUT PHMACHINE phMachine);
1054
1055 #ifdef UNICODE
1056 #define CM_Connect_Machine CM_Connect_MachineW
1057 #else
1058 #define CM_Connect_Machine CM_Connect_MachineA
1059 #endif /* UNICODE */
1060
1061 CMAPI
1062 CONFIGRET
1063 WINAPI
1064 CM_Create_DevNodeA(
1065 OUT PDEVINST pdnDevInst,
1066 IN DEVINSTID_A pDeviceID,
1067 IN DEVINST dnParent,
1068 IN ULONG ulFlags);
1069
1070 CMAPI
1071 CONFIGRET
1072 WINAPI
1073 CM_Create_DevNodeW(
1074 OUT PDEVINST pdnDevInst,
1075 IN DEVINSTID_W pDeviceID,
1076 IN DEVINST dnParent,
1077 IN ULONG ulFlags);
1078
1079 CMAPI
1080 CONFIGRET
1081 WINAPI
1082 CM_Create_DevNode_ExA(
1083 OUT PDEVINST pdnDevInst,
1084 IN DEVINSTID_A pDeviceID,
1085 IN DEVINST dnParent,
1086 IN ULONG ulFlags,
1087 IN HANDLE hMachine);
1088
1089 CMAPI
1090 CONFIGRET
1091 WINAPI
1092 CM_Create_DevNode_ExW(
1093 OUT PDEVINST pdnDevInst,
1094 IN DEVINSTID_W pDeviceID,
1095 IN DEVINST dnParent,
1096 IN ULONG ulFlags,
1097 IN HANDLE hMachine);
1098
1099 #define CM_Create_DevInstW CM_Create_DevNodeW
1100 #define CM_Create_DevInstA CM_Create_DevNodeA
1101 #define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
1102 #define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
1103 #ifdef UNICODE
1104 #define CM_Create_DevNode CM_Create_DevNodeW
1105 #define CM_Create_DevInst CM_Create_DevNodeW
1106 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
1107 #define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
1108 #else
1109 #define CM_Create_DevNode CM_Create_DevNodeA
1110 #define CM_Create_DevInst CM_Create_DevNodeA
1111 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
1112 #define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
1113 #endif /* UNICODE */
1114
1115 CMAPI
1116 CONFIGRET
1117 WINAPI
1118 CM_Create_Range_List(
1119 OUT PRANGE_LIST prlh,
1120 IN ULONG ulFlags);
1121
1122 CMAPI
1123 CONFIGRET
1124 WINAPI
1125 CM_Delete_Class_Key(
1126 IN LPGUID ClassGuid,
1127 IN ULONG ulFlags);
1128
1129 CMAPI
1130 CONFIGRET
1131 WINAPI
1132 CM_Delete_Class_Key_Ex(
1133 IN LPGUID ClassGuid,
1134 IN ULONG ulFlags,
1135 IN HANDLE hMachine);
1136
1137 CMAPI
1138 CONFIGRET
1139 WINAPI
1140 CM_Delete_DevNode_Key(
1141 IN DEVNODE dnDevNode,
1142 IN ULONG ulHardwareProfile,
1143 IN ULONG ulFlags);
1144
1145 CMAPI
1146 CONFIGRET
1147 WINAPI
1148 CM_Delete_DevNode_Key_Ex(
1149 IN DEVNODE dnDevNode,
1150 IN ULONG ulHardwareProfile,
1151 IN ULONG ulFlags,
1152 IN HANDLE hMachine);
1153
1154 #define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
1155 #define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
1156
1157 CMAPI
1158 CONFIGRET
1159 WINAPI
1160 CM_Delete_Range(
1161 IN DWORDLONG ullStartValue,
1162 IN DWORDLONG ullEndValue,
1163 IN RANGE_LIST rlh,
1164 IN ULONG ulFlags);
1165
1166 CMAPI
1167 CONFIGRET
1168 WINAPI
1169 CM_Detect_Resource_Conflict(
1170 IN DEVINST dnDevInst,
1171 IN RESOURCEID ResourceID,
1172 IN PCVOID ResourceData,
1173 IN ULONG ResourceLen,
1174 OUT PBOOL pbConflictDetected,
1175 IN ULONG ulFlags);
1176
1177 CMAPI
1178 CONFIGRET
1179 WINAPI
1180 CM_Detect_Resource_Conflict_Ex(
1181 IN DEVINST dnDevInst,
1182 IN RESOURCEID ResourceID,
1183 IN PCVOID ResourceData,
1184 IN ULONG ResourceLen,
1185 OUT PBOOL pbConflictDetected,
1186 IN ULONG ulFlags,
1187 IN HMACHINE hMachine OPTIONAL);
1188
1189 CMAPI
1190 CONFIGRET
1191 WINAPI
1192 CM_Disable_DevNode(
1193 IN DEVINST dnDevInst,
1194 IN ULONG ulFlags);
1195
1196 CMAPI
1197 CONFIGRET
1198 WINAPI
1199 CM_Disable_DevNode_Ex(
1200 IN DEVINST dnDevInst,
1201 IN ULONG ulFlags,
1202 IN HMACHINE hMachine OPTIONAL);
1203
1204 #define CM_Disable_DevInst CM_Disable_DevNode
1205 #define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
1206
1207 CMAPI
1208 CONFIGRET
1209 WINAPI
1210 CM_Disconnect_Machine(
1211 IN HMACHINE hMachine OPTIONAL);
1212
1213 CMAPI
1214 CONFIGRET
1215 WINAPI
1216 CM_Dup_Range_List(
1217 IN RANGE_LIST rlhOld,
1218 IN RANGE_LIST rlhNew,
1219 IN ULONG ulFlags);
1220
1221 CMAPI
1222 CONFIGRET
1223 WINAPI
1224 CM_Enable_DevNode(
1225 IN DEVINST dnDevInst,
1226 IN ULONG ulFlags);
1227
1228 CMAPI
1229 CONFIGRET
1230 WINAPI
1231 CM_Enable_DevNode_Ex(
1232 IN DEVINST dnDevInst,
1233 IN ULONG ulFlags,
1234 IN HMACHINE hMachine OPTIONAL);
1235
1236 #define CM_Enable_DevInst CM_Enable_DevNode
1237 #define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
1238
1239 CMAPI
1240 CONFIGRET
1241 WINAPI
1242 CM_Enumerate_Classes(
1243 IN ULONG ulClassIndex,
1244 OUT LPGUID ClassGuid,
1245 IN ULONG ulFlags);
1246
1247 CMAPI
1248 CONFIGRET
1249 WINAPI
1250 CM_Enumerate_Classes_Ex(
1251 IN ULONG ulClassIndex,
1252 OUT LPGUID ClassGuid,
1253 IN ULONG ulFlags,
1254 IN HMACHINE hMachine OPTIONAL);
1255
1256 CMAPI
1257 CONFIGRET
1258 WINAPI
1259 CM_Enumerate_EnumeratorsA(
1260 IN ULONG ulEnumIndex,
1261 OUT PCHAR Buffer,
1262 IN OUT PULONG pulLength,
1263 IN ULONG ulFlags);
1264
1265 CMAPI
1266 CONFIGRET
1267 WINAPI
1268 CM_Enumerate_Enumerators_ExA(
1269 IN ULONG ulEnumIndex,
1270 OUT PCHAR Buffer,
1271 IN OUT PULONG pulLength,
1272 IN ULONG ulFlags,
1273 IN HMACHINE hMachine OPTIONAL);
1274
1275 CMAPI
1276 CONFIGRET
1277 WINAPI
1278 CM_Enumerate_Enumerators_ExW(
1279 IN ULONG ulEnumIndex,
1280 OUT PWCHAR Buffer,
1281 IN OUT PULONG pulLength,
1282 IN ULONG ulFlags,
1283 IN HMACHINE hMachine OPTIONAL);
1284
1285 CMAPI
1286 CONFIGRET
1287 WINAPI
1288 CM_Enumerate_EnumeratorsW(
1289 IN ULONG ulEnumIndex,
1290 OUT PWCHAR Buffer,
1291 IN OUT PULONG pulLength,
1292 IN ULONG ulFlags);
1293
1294 #ifdef UNICODE
1295 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
1296 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
1297 #else
1298 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
1299 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
1300 #endif /* UNICODE */
1301
1302 CMAPI
1303 CONFIGRET
1304 WINAPI
1305 CM_Find_Range(
1306 OUT PDWORDLONG pullStart,
1307 IN DWORDLONG ullStart,
1308 IN ULONG ulLength,
1309 IN DWORDLONG ullAlignment,
1310 IN DWORDLONG ullEnd,
1311 IN RANGE_LIST rlh,
1312 IN ULONG ulFlags);
1313
1314 CMAPI
1315 CONFIGRET
1316 WINAPI
1317 CM_First_Range(
1318 IN RANGE_LIST rlh,
1319 OUT PDWORDLONG pullStart,
1320 OUT PDWORDLONG pullEnd,
1321 OUT PRANGE_ELEMENT preElement,
1322 IN ULONG ulFlags);
1323
1324 CMAPI
1325 CONFIGRET
1326 WINAPI
1327 CM_Free_Log_Conf(
1328 IN LOG_CONF lcLogConfToBeFreed,
1329 IN ULONG ulFlags);
1330
1331 CMAPI
1332 CONFIGRET
1333 WINAPI
1334 CM_Free_Log_Conf_Ex(
1335 IN LOG_CONF lcLogConfToBeFreed,
1336 IN ULONG ulFlags,
1337 IN HMACHINE hMachine);
1338
1339 CMAPI
1340 CONFIGRET
1341 WINAPI
1342 CM_Free_Log_Conf_Handle(
1343 IN LOG_CONF lcLogConf);
1344
1345 CMAPI
1346 CONFIGRET
1347 WINAPI
1348 CM_Free_Range_List(
1349 IN RANGE_LIST rlh,
1350 IN ULONG ulFlags);
1351
1352 CMAPI
1353 CONFIGRET
1354 WINAPI
1355 CM_Free_Res_Des(
1356 OUT PRES_DES prdResDes,
1357 IN RES_DES rdResDes,
1358 IN ULONG ulFlags);
1359
1360 CMAPI
1361 CONFIGRET
1362 WINAPI
1363 CM_Free_Res_Des_Ex(
1364 OUT PRES_DES prdResDes,
1365 IN RES_DES rdResDes,
1366 IN ULONG ulFlags,
1367 IN HMACHINE hMachine);
1368
1369 CMAPI
1370 CONFIGRET
1371 WINAPI
1372 CM_Free_Res_Des_Handle(
1373 IN RES_DES rdResDes);
1374
1375 CMAPI
1376 CONFIGRET
1377 WINAPI
1378 CM_Free_Resource_Conflict_Handle(
1379 IN CONFLICT_LIST clConflictList);
1380
1381 CMAPI
1382 CONFIGRET
1383 WINAPI
1384 CM_Get_Child(
1385 OUT PDEVINST pdnDevInst,
1386 IN DEVINST dnDevInst,
1387 IN ULONG ulFlags);
1388
1389 CMAPI
1390 CONFIGRET
1391 WINAPI
1392 CM_Get_Child_Ex(
1393 OUT PDEVINST pdnDevInst,
1394 IN DEVINST dnDevInst,
1395 IN ULONG ulFlags,
1396 IN HMACHINE hMachine);
1397
1398 CMAPI
1399 CONFIGRET
1400 WINAPI
1401 CM_Get_Class_NameA(
1402 IN LPGUID ClassGuid,
1403 OUT PCHAR Buffer,
1404 IN OUT PULONG pulLength,
1405 IN ULONG ulFlags);
1406
1407 CMAPI
1408 CONFIGRET
1409 WINAPI
1410 CM_Get_Class_NameW(
1411 IN LPGUID ClassGuid,
1412 OUT PWCHAR Buffer,
1413 IN OUT PULONG pulLength,
1414 IN ULONG ulFlags);
1415
1416 CMAPI
1417 CONFIGRET
1418 WINAPI
1419 CM_Get_Class_Name_ExA(
1420 IN LPGUID ClassGuid,
1421 OUT PCHAR Buffer,
1422 IN OUT PULONG pulLength,
1423 IN ULONG ulFlags,
1424 IN HMACHINE hMachine);
1425
1426 CMAPI
1427 CONFIGRET
1428 WINAPI
1429 CM_Get_Class_Name_ExW(
1430 IN LPGUID ClassGuid,
1431 OUT PWCHAR Buffer,
1432 IN OUT PULONG pulLength,
1433 IN ULONG ulFlags,
1434 IN HMACHINE hMachine);
1435
1436 #ifdef UNICODE
1437 #define CM_Get_Class_Name CM_Get_Class_NameW
1438 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
1439 #else
1440 #define CM_Get_Class_Name CM_Get_Class_NameA
1441 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
1442 #endif /* UNICODE */
1443
1444 CMAPI
1445 CONFIGRET
1446 WINAPI
1447 CM_Get_Class_Key_NameA(
1448 IN LPGUID ClassGuid,
1449 OUT LPSTR pszKeyName,
1450 IN OUT PULONG pulLength,
1451 IN ULONG ulFlags);
1452
1453 CMAPI
1454 CONFIGRET
1455 WINAPI
1456 CM_Get_Class_Key_NameW(
1457 IN LPGUID ClassGuid,
1458 OUT LPWSTR pszKeyName,
1459 IN OUT PULONG pulLength,
1460 IN ULONG ulFlags);
1461
1462 CMAPI
1463 CONFIGRET
1464 WINAPI
1465 CM_Get_Class_Key_Name_ExA(
1466 IN LPGUID ClassGuid,
1467 OUT LPSTR pszKeyName,
1468 IN OUT PULONG pulLength,
1469 IN ULONG ulFlags,
1470 IN HMACHINE hMachine);
1471
1472 CMAPI
1473 CONFIGRET
1474 WINAPI
1475 CM_Get_Class_Key_Name_ExW(
1476 IN LPGUID ClassGuid,
1477 OUT LPWSTR pszKeyName,
1478 IN OUT PULONG pulLength,
1479 IN ULONG ulFlags,
1480 IN HMACHINE hMachine);
1481
1482 #ifdef UNICODE
1483 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
1484 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
1485 #else
1486 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
1487 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
1488 #endif /* UNICODE */
1489
1490 CMAPI
1491 CONFIGRET
1492 WINAPI
1493 CM_Get_Depth(
1494 OUT PULONG pulDepth,
1495 IN DEVINST dnDevInst,
1496 IN ULONG ulFlags);
1497
1498 CMAPI
1499 CONFIGRET
1500 WINAPI
1501 CM_Get_Depth_Ex(
1502 OUT PULONG pulDepth,
1503 IN DEVINST dnDevInst,
1504 IN ULONG ulFlags,
1505 IN HMACHINE hMachine);
1506
1507 CMAPI
1508 CONFIGRET
1509 WINAPI
1510 CM_Get_Device_IDA(
1511 IN DEVINST dnDevInst,
1512 OUT PCHAR Buffer,
1513 IN ULONG BufferLen,
1514 IN ULONG ulFlags);
1515
1516 CMAPI
1517 CONFIGRET
1518 WINAPI
1519 CM_Get_Device_ID_ExA(
1520 IN DEVINST dnDevInst,
1521 OUT PCHAR Buffer,
1522 IN ULONG BufferLen,
1523 IN ULONG ulFlags,
1524 IN HMACHINE hMachine);
1525
1526 CMAPI
1527 CONFIGRET
1528 WINAPI
1529 CM_Get_Device_ID_ExW(
1530 IN DEVINST dnDevInst,
1531 OUT PWCHAR Buffer,
1532 IN ULONG BufferLen,
1533 IN ULONG ulFlags,
1534 IN HMACHINE hMachine);
1535
1536 CMAPI
1537 CONFIGRET
1538 WINAPI
1539 CM_Get_Device_IDW(
1540 IN DEVINST dnDevInst,
1541 OUT PWCHAR Buffer,
1542 IN ULONG BufferLen,
1543 IN ULONG ulFlags);
1544
1545 #ifdef UNICODE
1546 #define CM_Get_Device_ID CM_Get_Device_IDW
1547 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1548 #else
1549 #define CM_Get_Device_ID CM_Get_Device_IDA
1550 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1551 #endif /* UNICODE */
1552
1553 CMAPI
1554 CONFIGRET
1555 WINAPI
1556 CM_Get_Device_ID_ListA(
1557 IN PCSTR pszFilter OPTIONAL,
1558 OUT PCHAR Buffer,
1559 IN ULONG BufferLen,
1560 IN ULONG ulFlags);
1561
1562 CMAPI
1563 CONFIGRET
1564 WINAPI
1565 CM_Get_Device_ID_List_ExA(
1566 IN PCSTR pszFilter OPTIONAL,
1567 OUT PCHAR Buffer,
1568 IN ULONG BufferLen,
1569 IN ULONG ulFlags,
1570 IN HMACHINE hMachine);
1571
1572 CMAPI
1573 CONFIGRET
1574 WINAPI
1575 CM_Get_Device_ID_List_ExW(
1576 IN PCWSTR pszFilter OPTIONAL,
1577 OUT PWCHAR Buffer,
1578 IN ULONG BufferLen,
1579 IN ULONG ulFlags,
1580 IN HMACHINE hMachine);
1581
1582 CMAPI
1583 CONFIGRET
1584 WINAPI
1585 CM_Get_Device_ID_ListW(
1586 IN PCWSTR pszFilter OPTIONAL,
1587 OUT PWCHAR Buffer,
1588 IN ULONG BufferLen,
1589 IN ULONG ulFlags);
1590
1591 #ifdef UNICODE
1592 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1593 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1594 #else
1595 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1596 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1597 #endif /* UNICODE */
1598
1599 CMAPI
1600 CONFIGRET
1601 WINAPI
1602 CM_Get_Device_ID_List_SizeA(
1603 OUT PULONG pulLen,
1604 IN PCSTR pszFilter OPTIONAL,
1605 IN ULONG ulFlags);
1606
1607 CMAPI
1608 CONFIGRET
1609 WINAPI
1610 CM_Get_Device_ID_List_Size_ExA(
1611 OUT PULONG pulLen,
1612 IN PCSTR pszFilter OPTIONAL,
1613 IN ULONG ulFlags,
1614 IN HMACHINE hMachine);
1615
1616 CMAPI
1617 CONFIGRET
1618 WINAPI
1619 CM_Get_Device_ID_List_Size_ExW(
1620 OUT PULONG pulLen,
1621 IN PCWSTR pszFilter OPTIONAL,
1622 IN ULONG ulFlags,
1623 IN HMACHINE hMachine);
1624
1625 CMAPI
1626 CONFIGRET
1627 WINAPI
1628 CM_Get_Device_ID_List_SizeW(
1629 OUT PULONG pulLen,
1630 IN PCWSTR pszFilter OPTIONAL,
1631 IN ULONG ulFlags);
1632
1633 #ifdef UNICODE
1634 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1635 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1636 #else
1637 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1638 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1639 #endif /* UNICODE */
1640
1641 CMAPI
1642 CONFIGRET
1643 WINAPI
1644 CM_Get_Device_ID_Size(
1645 OUT PULONG pulLen,
1646 IN DEVINST dnDevInst,
1647 IN ULONG ulFlags);
1648
1649 CMAPI
1650 CONFIGRET
1651 WINAPI
1652 CM_Get_Device_ID_Size_Ex(
1653 OUT PULONG pulLen,
1654 IN DEVINST dnDevInst,
1655 IN ULONG ulFlags,
1656 IN HMACHINE hMachine);
1657
1658 CMAPI
1659 CONFIGRET
1660 WINAPI
1661 CM_Get_DevNode_Registry_PropertyA(
1662 IN DEVINST dnDevInst,
1663 IN ULONG ulProperty,
1664 OUT PULONG pulRegDataType OPTIONAL,
1665 OUT PVOID Buffer OPTIONAL,
1666 IN OUT PULONG pulLength,
1667 IN ULONG ulFlags);
1668
1669 CMAPI
1670 CONFIGRET
1671 WINAPI
1672 CM_Get_DevNode_Registry_PropertyW(
1673 IN DEVINST dnDevInst,
1674 IN ULONG ulProperty,
1675 OUT PULONG pulRegDataType OPTIONAL,
1676 OUT PVOID Buffer OPTIONAL,
1677 IN OUT PULONG pulLength,
1678 IN ULONG ulFlags);
1679
1680 CMAPI
1681 CONFIGRET
1682 WINAPI
1683 CM_Get_DevNode_Registry_Property_ExA(
1684 IN DEVINST dnDevInst,
1685 IN ULONG ulProperty,
1686 OUT PULONG pulRegDataType OPTIONAL,
1687 OUT PVOID Buffer OPTIONAL,
1688 IN OUT PULONG pulLength,
1689 IN ULONG ulFlags,
1690 IN HMACHINE hMachine);
1691
1692 CMAPI
1693 CONFIGRET
1694 WINAPI
1695 CM_Get_DevNode_Registry_Property_ExW(
1696 IN DEVINST dnDevInst,
1697 IN ULONG ulProperty,
1698 OUT PULONG pulRegDataType OPTIONAL,
1699 OUT PVOID Buffer OPTIONAL,
1700 IN OUT PULONG pulLength,
1701 IN ULONG ulFlags,
1702 IN HMACHINE hMachine);
1703
1704 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1705 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1706 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1707 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1708
1709 #ifdef UNICODE
1710 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1711 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1712 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1713 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1714 #else
1715 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1716 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1717 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1718 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1719 #endif /* UNICODE */
1720
1721 #if (WINVER >= _WIN32_WINNT_WINXP)
1722
1723 CMAPI
1724 CONFIGRET
1725 WINAPI
1726 CM_Get_DevNode_Custom_PropertyA(
1727 IN DEVINST dnDevInst,
1728 IN PCSTR pszCustomPropertyName,
1729 OUT PULONG pulRegDataType OPTIONAL,
1730 OUT PVOID Buffer OPTIONAL,
1731 IN OUT PULONG pulLength,
1732 IN ULONG ulFlags);
1733
1734 CMAPI
1735 CONFIGRET
1736 WINAPI
1737 CM_Get_DevNode_Custom_PropertyW(
1738 IN DEVINST dnDevInst,
1739 IN PCWSTR pszCustomPropertyName,
1740 OUT PULONG pulRegDataType OPTIONAL,
1741 OUT PVOID Buffer OPTIONAL,
1742 IN OUT PULONG pulLength,
1743 IN ULONG ulFlags);
1744
1745 CMAPI
1746 CONFIGRET
1747 WINAPI
1748 CM_Get_DevNode_Custom_Property_ExA(
1749 IN DEVINST dnDevInst,
1750 IN PCSTR pszCustomPropertyName,
1751 OUT PULONG pulRegDataType OPTIONAL,
1752 OUT PVOID Buffer OPTIONAL,
1753 IN OUT PULONG pulLength,
1754 IN ULONG ulFlags,
1755 IN HMACHINE hMachine OPTIONAL);
1756
1757 CMAPI
1758 CONFIGRET
1759 WINAPI
1760 CM_Get_DevNode_Custom_Property_ExW(
1761 IN DEVINST dnDevInst,
1762 IN PCWSTR pszCustomPropertyName,
1763 OUT PULONG pulRegDataType OPTIONAL,
1764 OUT PVOID Buffer OPTIONAL,
1765 IN OUT PULONG pulLength,
1766 IN ULONG ulFlags,
1767 IN HMACHINE hMachine OPTIONAL);
1768
1769 #define CM_Get_DevInst_Custom_PropertyW CM_Get_DevNode_Custom_PropertyW
1770 #define CM_Get_DevInst_Custom_PropertyA CM_Get_DevNode_Custom_PropertyA
1771 #define CM_Get_DevInst_Custom_Property_ExW CM_Get_DevNode_Custom_Property_ExW
1772 #define CM_Get_DevInst_Custom_Property_ExA CM_Get_DevNode_Custom_Property_ExA
1773 #ifdef UNICODE
1774 #define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyW
1775 #define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
1776 #define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyW
1777 #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExW
1778 #else
1779 #define CM_Get_DevInst_Custom_Property CM_Get_DevNode_Custom_PropertyA
1780 #define CM_Get_DevInst_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA
1781 #define CM_Get_DevNode_Custom_Property CM_Get_DevNode_Custom_PropertyA
1782 #define CM_Get_DevNode_Custom_Property_Ex CM_Get_DevNode_Custom_Property_ExA
1783 #endif
1784
1785 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
1786
1787 CMAPI
1788 CONFIGRET
1789 WINAPI
1790 CM_Get_DevNode_Status(
1791 OUT PULONG pulStatus,
1792 OUT PULONG pulProblemNumber,
1793 IN DEVINST dnDevInst,
1794 IN ULONG ulFlags);
1795
1796 CMAPI
1797 CONFIGRET
1798 WINAPI
1799 CM_Get_DevNode_Status_Ex(
1800 OUT PULONG pulStatus,
1801 OUT PULONG pulProblemNumber,
1802 IN DEVINST dnDevInst,
1803 IN ULONG ulFlags,
1804 IN HMACHINE hMachine);
1805
1806 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1807 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1808
1809 CMAPI
1810 CONFIGRET
1811 WINAPI
1812 CM_Get_First_Log_Conf(
1813 OUT PLOG_CONF plcLogConf OPTIONAL,
1814 IN DEVINST dnDevInst,
1815 IN ULONG ulFlags);
1816
1817 CMAPI
1818 CONFIGRET
1819 WINAPI
1820 CM_Get_First_Log_Conf_Ex(
1821 OUT PLOG_CONF plcLogConf OPTIONAL,
1822 IN DEVINST dnDevInst,
1823 IN ULONG ulFlags,
1824 IN HMACHINE hMachine OPTIONAL);
1825
1826 CMAPI
1827 CONFIGRET
1828 WINAPI
1829 CM_Get_Global_State(
1830 OUT PULONG pulState,
1831 IN ULONG ulFlags);
1832
1833 CMAPI
1834 CONFIGRET
1835 WINAPI
1836 CM_Get_Global_State_Ex(
1837 OUT PULONG pulState,
1838 IN ULONG ulFlags,
1839 IN HMACHINE hMachine);
1840
1841 CMAPI
1842 CONFIGRET
1843 WINAPI
1844 CM_Get_Hardware_Profile_InfoA(
1845 IN ULONG ulIndex,
1846 OUT PHWPROFILEINFO_A pHWProfileInfo,
1847 IN ULONG ulFlags);
1848
1849 CMAPI
1850 CONFIGRET
1851 WINAPI
1852 CM_Get_Hardware_Profile_Info_ExA(
1853 IN ULONG ulIndex,
1854 OUT PHWPROFILEINFO_A pHWProfileInfo,
1855 IN ULONG ulFlags,
1856 IN HMACHINE hMachine OPTIONAL);
1857
1858 CMAPI
1859 CONFIGRET
1860 WINAPI
1861 CM_Get_Hardware_Profile_InfoW(
1862 IN ULONG ulIndex,
1863 OUT PHWPROFILEINFO_W pHWProfileInfo,
1864 IN ULONG ulFlags);
1865
1866 CMAPI
1867 CONFIGRET
1868 WINAPI
1869 CM_Get_Hardware_Profile_Info_ExW(
1870 IN ULONG ulIndex,
1871 OUT PHWPROFILEINFO_W pHWProfileInfo,
1872 IN ULONG ulFlags,
1873 IN HMACHINE hMachine OPTIONAL);
1874
1875 #ifdef UNICODE
1876 #define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoW
1877 #define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExW
1878 #else
1879 #define CM_Get_Hardware_Profile_Info CM_Get_Hardware_Profile_InfoA
1880 #define CM_Get_Hardware_Profile_Info_Ex CM_Get_Hardware_Profile_Info_ExA
1881 #endif
1882
1883 CMAPI
1884 CONFIGRET
1885 WINAPI
1886 CM_Get_HW_Prof_FlagsA(
1887 IN DEVINSTID_A szDevInstName,
1888 IN ULONG ulHardwareProfile,
1889 OUT PULONG pulValue,
1890 IN ULONG ulFlags);
1891
1892 CMAPI
1893 CONFIGRET
1894 WINAPI
1895 CM_Get_HW_Prof_FlagsW(
1896 IN DEVINSTID_W szDevInstName,
1897 IN ULONG ulHardwareProfile,
1898 OUT PULONG pulValue,
1899 IN ULONG ulFlags);
1900
1901 CMAPI
1902 CONFIGRET
1903 WINAPI
1904 CM_Get_HW_Prof_Flags_ExA(
1905 IN DEVINSTID_A szDevInstName,
1906 IN ULONG ulHardwareProfile,
1907 OUT PULONG pulValue,
1908 IN ULONG ulFlags,
1909 IN HMACHINE hMachine);
1910
1911 CMAPI
1912 CONFIGRET
1913 WINAPI
1914 CM_Get_HW_Prof_Flags_ExW(
1915 IN DEVINSTID_W szDevInstName,
1916 IN ULONG ulHardwareProfile,
1917 OUT PULONG pulValue,
1918 IN ULONG ulFlags,
1919 IN HMACHINE hMachine);
1920
1921 #ifdef UNICODE
1922 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
1923 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
1924 #else
1925 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
1926 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
1927 #endif
1928
1929 CMAPI
1930 CONFIGRET
1931 WINAPI
1932 CM_Get_Device_Interface_AliasA(
1933 IN LPCSTR pszDeviceInterface,
1934 IN LPGUID AliasInterfaceGuid,
1935 OUT LPSTR pszAliasDeviceInterface,
1936 IN OUT PULONG pulLength,
1937 IN ULONG ulFlags);
1938
1939 CMAPI
1940 CONFIGRET
1941 WINAPI
1942 CM_Get_Device_Interface_AliasW(
1943 IN LPCWSTR pszDeviceInterface,
1944 IN LPGUID AliasInterfaceGuid,
1945 OUT LPWSTR pszAliasDeviceInterface,
1946 IN OUT PULONG pulLength,
1947 IN ULONG ulFlags);
1948
1949 CMAPI
1950 CONFIGRET
1951 WINAPI
1952 CM_Get_Device_Interface_Alias_ExA(
1953 IN LPCSTR pszDeviceInterface,
1954 IN LPGUID AliasInterfaceGuid,
1955 OUT LPSTR pszAliasDeviceInterface,
1956 IN OUT PULONG pulLength,
1957 IN ULONG ulFlags,
1958 IN HMACHINE hMachine OPTIONAL);
1959
1960 CMAPI
1961 CONFIGRET
1962 WINAPI
1963 CM_Get_Device_Interface_Alias_ExW(
1964 IN LPCWSTR pszDeviceInterface,
1965 IN LPGUID AliasInterfaceGuid,
1966 OUT LPWSTR pszAliasDeviceInterface,
1967 IN OUT PULONG pulLength,
1968 IN ULONG ulFlags,
1969 IN HMACHINE hMachine OPTIONAL);
1970
1971 #ifdef UNICODE
1972 #define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasW
1973 #define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExW
1974 #else
1975 #define CM_Get_Device_Interface_Alias CM_Get_Device_Interface_AliasA
1976 #define CM_Get_Device_Interface_Alias_Ex CM_Get_Device_Interface_Alias_ExA
1977 #endif
1978
1979 CMAPI
1980 CONFIGRET
1981 WINAPI
1982 CM_Get_Device_Interface_ListA(
1983 IN LPGUID InterfaceClassGuid,
1984 IN DEVINSTID_A pDeviceID OPTIONAL,
1985 OUT PCHAR Buffer,
1986 IN ULONG BufferLen,
1987 IN ULONG ulFlags);
1988
1989 CMAPI
1990 CONFIGRET
1991 WINAPI
1992 CM_Get_Device_Interface_ListW(
1993 IN LPGUID InterfaceClassGuid,
1994 IN DEVINSTID_W pDeviceID OPTIONAL,
1995 OUT PWCHAR Buffer,
1996 IN ULONG BufferLen,
1997 IN ULONG ulFlags);
1998
1999 CMAPI
2000 CONFIGRET
2001 WINAPI
2002 CM_Get_Device_Interface_List_ExA(
2003 IN LPGUID InterfaceClassGuid,
2004 IN DEVINSTID_A pDeviceID OPTIONAL,
2005 OUT PCHAR Buffer,
2006 IN ULONG BufferLen,
2007 IN ULONG ulFlags,
2008 IN HMACHINE hMachine OPTIONAL);
2009
2010 CMAPI
2011 CONFIGRET
2012 WINAPI
2013 CM_Get_Device_Interface_List_ExW(
2014 IN LPGUID InterfaceClassGuid,
2015 IN DEVINSTID_W pDeviceID OPTIONAL,
2016 OUT PWCHAR Buffer,
2017 IN ULONG BufferLen,
2018 IN ULONG ulFlags,
2019 IN HMACHINE hMachine OPTIONAL);
2020
2021 #ifdef UNICODE
2022 #define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListW
2023 #define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExW
2024 #else
2025 #define CM_Get_Device_Interface_List CM_Get_Device_Interface_ListA
2026 #define CM_Get_Device_Interface_List_Ex CM_Get_Device_Interface_List_ExA
2027 #endif
2028
2029 CMAPI
2030 CONFIGRET
2031 WINAPI
2032 CM_Get_Device_Interface_List_SizeA(
2033 OUT PULONG pulLen,
2034 IN LPGUID InterfaceClassGuid,
2035 IN DEVINSTID_A pDeviceID OPTIONAL,
2036 IN ULONG ulFlags);
2037
2038 CMAPI
2039 CONFIGRET
2040 WINAPI
2041 CM_Get_Device_Interface_List_SizeW(
2042 OUT PULONG pulLen,
2043 IN LPGUID InterfaceClassGuid,
2044 IN DEVINSTID_W pDeviceID OPTIONAL,
2045 IN ULONG ulFlags);
2046
2047 CMAPI
2048 CONFIGRET
2049 WINAPI
2050 CM_Get_Device_Interface_List_Size_ExA(
2051 OUT PULONG pulLen,
2052 IN LPGUID InterfaceClassGuid,
2053 IN DEVINSTID_A pDeviceID OPTIONAL,
2054 IN ULONG ulFlags,
2055 IN HMACHINE hMachine OPTIONAL);
2056
2057 CMAPI
2058 CONFIGRET
2059 WINAPI
2060 CM_Get_Device_Interface_List_Size_ExW(
2061 OUT PULONG pulLen,
2062 IN LPGUID InterfaceClassGuid,
2063 IN DEVINSTID_W pDeviceID OPTIONAL,
2064 IN ULONG ulFlags,
2065 IN HMACHINE hMachine OPTIONAL);
2066
2067 #ifdef UNICODE
2068 #define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeW
2069 #define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ExW
2070 #else
2071 #define CM_Get_Device_Interface_List_Size CM_Get_Device_Interface_List_SizeA
2072 #define CM_Get_Device_Interface_List_Size_Ex CM_Get_Device_Interface_List_Size_ExA
2073 #endif
2074
2075 CMAPI
2076 CONFIGRET
2077 WINAPI
2078 CM_Get_Log_Conf_Priority(
2079 IN LOG_CONF lcLogConf,
2080 OUT PPRIORITY pPriority,
2081 IN ULONG ulFlags);
2082
2083 CMAPI
2084 CONFIGRET
2085 WINAPI
2086 CM_Get_Log_Conf_Priority_Ex(
2087 IN LOG_CONF lcLogConf,
2088 OUT PPRIORITY pPriority,
2089 IN ULONG ulFlags,
2090 IN HMACHINE hMachine);
2091
2092 CMAPI
2093 CONFIGRET
2094 WINAPI
2095 CM_Get_Next_Log_Conf(
2096 OUT PLOG_CONF plcLogConf OPTIONAL,
2097 IN LOG_CONF lcLogConf,
2098 IN ULONG ulFlags);
2099
2100 CMAPI
2101 CONFIGRET
2102 WINAPI
2103 CM_Get_Next_Log_Conf_Ex(
2104 OUT PLOG_CONF plcLogConf OPTIONAL,
2105 IN LOG_CONF lcLogConf,
2106 IN ULONG ulFlags,
2107 IN HMACHINE hMachine);
2108
2109 CMAPI
2110 CONFIGRET
2111 WINAPI
2112 CM_Get_Next_Res_Des(
2113 OUT PRES_DES prdResDes,
2114 IN RES_DES rdResDes,
2115 IN RESOURCEID ForResource,
2116 OUT PRESOURCEID pResourceID,
2117 IN ULONG ulFlags);
2118
2119 CMAPI
2120 CONFIGRET
2121 WINAPI
2122 CM_Get_Next_Res_Des_Ex(
2123 OUT PRES_DES prdResDes,
2124 IN RES_DES rdResDes,
2125 IN RESOURCEID ForResource,
2126 OUT PRESOURCEID pResourceID,
2127 IN ULONG ulFlags,
2128 IN HMACHINE hMachine);
2129
2130 CMAPI
2131 CONFIGRET
2132 WINAPI
2133 CM_Get_Parent(
2134 OUT PDEVINST pdnDevInst,
2135 IN DEVINST dnDevInst,
2136 IN ULONG ulFlags);
2137
2138 CMAPI
2139 CONFIGRET
2140 WINAPI
2141 CM_Get_Parent_Ex(
2142 OUT PDEVINST pdnDevInst,
2143 IN DEVINST dnDevInst,
2144 IN ULONG ulFlags,
2145 IN HMACHINE hMachine);
2146
2147 CMAPI
2148 CONFIGRET
2149 WINAPI
2150 CM_Get_Res_Des_Data(
2151 IN RES_DES rdResDes,
2152 OUT PVOID Buffer,
2153 IN ULONG BufferLen,
2154 IN ULONG ulFlags);
2155
2156 CMAPI
2157 CONFIGRET
2158 WINAPI
2159 CM_Get_Res_Des_Data_Ex(
2160 IN RES_DES rdResDes,
2161 OUT PVOID Buffer,
2162 IN ULONG BufferLen,
2163 IN ULONG ulFlags,
2164 IN HMACHINE hMachine);
2165
2166 CMAPI
2167 CONFIGRET
2168 WINAPI
2169 CM_Get_Res_Des_Data_Size(
2170 OUT PULONG pulSize,
2171 IN RES_DES rdResDes,
2172 IN ULONG ulFlags);
2173
2174 CMAPI
2175 CONFIGRET
2176 WINAPI
2177 CM_Get_Res_Des_Data_Size_Ex(
2178 OUT PULONG pulSize,
2179 IN RES_DES rdResDes,
2180 IN ULONG ulFlags,
2181 IN HMACHINE hMachine);
2182
2183 CMAPI
2184 CONFIGRET
2185 WINAPI
2186 CM_Get_Resource_Conflict_Count(
2187 IN CONFLICT_LIST clConflictList,
2188 OUT PULONG pulCount);
2189
2190 CMAPI
2191 CONFIGRET
2192 WINAPI
2193 CM_Get_Resource_Conflict_DetailsA(
2194 IN CONFLICT_LIST clConflictList,
2195 IN ULONG ulIndex,
2196 IN OUT PCONFLICT_DETAILS_A pConflictDetails);
2197
2198 CMAPI
2199 CONFIGRET
2200 WINAPI
2201 CM_Get_Resource_Conflict_DetailsW(
2202 IN CONFLICT_LIST clConflictList,
2203 IN ULONG ulIndex,
2204 IN OUT PCONFLICT_DETAILS_W pConflictDetails);
2205
2206 #ifdef UNICODE
2207 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
2208 #else
2209 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
2210 #endif /* UNICODE */
2211
2212 CMAPI
2213 CONFIGRET
2214 WINAPI
2215 CM_Get_Class_Registry_PropertyW(
2216 IN LPGUID ClassGuid,
2217 IN ULONG ulProperty,
2218 OUT PULONG pulRegDataType OPTIONAL,
2219 OUT PVOID Buffer OPTIONAL,
2220 IN OUT PULONG pulLength,
2221 IN ULONG ulFlags,
2222 IN HMACHINE hMachine OPTIONAL);
2223
2224 CMAPI
2225 CONFIGRET
2226 WINAPI
2227 CM_Set_Class_Registry_PropertyW(
2228 IN LPGUID ClassGuid,
2229 IN ULONG ulProperty,
2230 IN PCVOID Buffer OPTIONAL,
2231 IN ULONG ulLength,
2232 IN ULONG ulFlags,
2233 IN HMACHINE hMachine OPTIONAL);
2234
2235 CMAPI
2236 CONFIGRET
2237 WINAPI
2238 CM_Get_Class_Registry_PropertyA(
2239 IN LPGUID ClassGuid,
2240 IN ULONG ulProperty,
2241 OUT PULONG pulRegDataType OPTIONAL,
2242 OUT PVOID Buffer OPTIONAL,
2243 IN OUT PULONG pulLength,
2244 IN ULONG ulFlags,
2245 IN HMACHINE hMachine OPTIONAL);
2246
2247 CMAPI
2248 CONFIGRET
2249 WINAPI
2250 CM_Set_Class_Registry_PropertyA(
2251 IN LPGUID ClassGuid,
2252 IN ULONG ulProperty,
2253 IN PCVOID Buffer OPTIONAL,
2254 IN ULONG ulLength,
2255 IN ULONG ulFlags,
2256 IN HMACHINE hMachine OPTIONAL);
2257
2258 #ifdef UNICODE
2259 #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyW
2260 #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyW
2261 #else
2262 #define CM_Get_Class_Registry_Property CM_Get_Class_Registry_PropertyA
2263 #define CM_Set_Class_Registry_Property CM_Set_Class_Registry_PropertyA
2264 #endif // UNICODE
2265
2266 CMAPI
2267 CONFIGRET
2268 WINAPI
2269 CM_Get_Sibling(
2270 OUT PDEVINST pdnDevInst,
2271 IN DEVINST DevInst,
2272 IN ULONG ulFlags);
2273
2274 CMAPI
2275 CONFIGRET
2276 WINAPI
2277 CM_Get_Sibling_Ex(
2278 OUT PDEVINST pdnDevInst,
2279 IN DEVINST DevInst,
2280 IN ULONG ulFlags,
2281 IN HMACHINE hMachine);
2282
2283 CMAPI
2284 WORD
2285 WINAPI
2286 CM_Get_Version(VOID);
2287
2288 CMAPI
2289 WORD
2290 WINAPI
2291 CM_Get_Version_Ex(
2292 IN HMACHINE hMachine);
2293
2294 #if (WINVER >= _WIN32_WINNT_WINXP)
2295
2296 CMAPI
2297 BOOL
2298 WINAPI
2299 CM_Is_Version_Available(
2300 IN WORD wVersion);
2301
2302 CMAPI
2303 BOOL
2304 WINAPI
2305 CM_Is_Version_Available_Ex(
2306 IN WORD wVersion,
2307 IN HMACHINE hMachine OPTIONAL);
2308
2309 #endif /* (WINVER >= _WIN32_WINNT_WINXP) */
2310
2311 CMAPI
2312 CONFIGRET
2313 WINAPI
2314 CM_Intersect_Range_List(
2315 IN RANGE_LIST rlhOld1,
2316 IN RANGE_LIST rlhOld2,
2317 IN RANGE_LIST rlhNew,
2318 IN ULONG ulFlags);
2319
2320 CMAPI
2321 CONFIGRET
2322 WINAPI
2323 CM_Invert_Range_List(
2324 IN RANGE_LIST rlhOld,
2325 IN RANGE_LIST rlhNew,
2326 IN DWORDLONG ullMaxValue,
2327 IN ULONG ulFlags);
2328
2329 CMAPI
2330 CONFIGRET
2331 WINAPI
2332 CM_Is_Dock_Station_Present(
2333 OUT PBOOL pbPresent);
2334
2335 CMAPI
2336 CONFIGRET
2337 WINAPI
2338 CM_Is_Dock_Station_Present_Ex(
2339 OUT PBOOL pbPresent,
2340 IN HMACHINE hMachine OPTIONAL);
2341
2342 CMAPI
2343 CONFIGRET
2344 WINAPI
2345 CM_Locate_DevNodeA(
2346 OUT PDEVINST pdnDevInst,
2347 IN DEVINSTID_A pDeviceID OPTIONAL,
2348 IN ULONG ulFlags);
2349
2350 CMAPI
2351 CONFIGRET
2352 WINAPI
2353 CM_Locate_DevNode_ExA(
2354 OUT PDEVINST pdnDevInst,
2355 IN DEVINSTID_A pDeviceID OPTIONAL,
2356 IN ULONG ulFlags,
2357 IN HMACHINE hMachine);
2358
2359 CMAPI
2360 CONFIGRET
2361 WINAPI
2362 CM_Locate_DevNode_ExW(
2363 OUT PDEVINST pdnDevInst,
2364 IN DEVINSTID_W pDeviceID OPTIONAL,
2365 IN ULONG ulFlags,
2366 IN HMACHINE hMachine);
2367
2368 CMAPI
2369 CONFIGRET
2370 WINAPI
2371 CM_Locate_DevNodeW(
2372 OUT PDEVINST pdnDevInst,
2373 IN DEVINSTID_W pDeviceID OPTIONAL,
2374 IN ULONG ulFlags);
2375
2376 #define CM_Locate_DevInstA CM_Locate_DevNodeA
2377 #define CM_Locate_DevInstW CM_Locate_DevNodeW
2378 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
2379 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
2380
2381 #ifdef UNICODE
2382 #define CM_Locate_DevNode CM_Locate_DevNodeW
2383 #define CM_Locate_DevInst CM_Locate_DevNodeW
2384 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
2385 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
2386 #else
2387 #define CM_Locate_DevNode CM_Locate_DevNodeA
2388 #define CM_Locate_DevInst CM_Locate_DevNodeA
2389 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
2390 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
2391 #endif /* UNICODE */
2392
2393 CMAPI
2394 CONFIGRET
2395 WINAPI
2396 CM_Merge_Range_List(
2397 IN RANGE_LIST rlhOld1,
2398 IN RANGE_LIST rlhOld2,
2399 IN RANGE_LIST rlhNew,
2400 IN ULONG ulFlags);
2401
2402 CMAPI
2403 CONFIGRET
2404 WINAPI
2405 CM_Modify_Res_Des(
2406 OUT PRES_DES prdResDes,
2407 IN RES_DES rdResDes,
2408 IN RESOURCEID ResourceID,
2409 IN PCVOID ResourceData,
2410 IN ULONG ResourceLen,
2411 IN ULONG ulFlags);
2412
2413 CMAPI
2414 CONFIGRET
2415 WINAPI
2416 CM_Modify_Res_Des_Ex(
2417 OUT PRES_DES prdResDes,
2418 IN RES_DES rdResDes,
2419 IN RESOURCEID ResourceID,
2420 IN PCVOID ResourceData,
2421 IN ULONG ResourceLen,
2422 IN ULONG ulFlags,
2423 IN HMACHINE hMachine);
2424
2425 CMAPI
2426 CONFIGRET
2427 WINAPI
2428 CM_Move_DevNode(
2429 IN DEVINST dnFromDevInst,
2430 IN DEVINST dnToDevInst,
2431 IN ULONG ulFlags);
2432
2433 CMAPI
2434 CONFIGRET
2435 WINAPI
2436 CM_Move_DevNode_Ex(
2437 IN DEVINST dnFromDevInst,
2438 IN DEVINST dnToDevInst,
2439 IN ULONG ulFlags,
2440 IN HMACHINE hMachine OPTIONAL);
2441
2442 #define CM_Move_DevInst CM_Move_DevNode
2443 #define CM_Move_DevInst_Ex CM_Move_DevNode_Ex
2444
2445 CMAPI
2446 CONFIGRET
2447 WINAPI
2448 CM_Next_Range(
2449 IN OUT PRANGE_ELEMENT preElement,
2450 OUT PDWORDLONG pullStart,
2451 OUT PDWORDLONG pullEnd,
2452 IN ULONG ulFlags);
2453
2454 CMAPI
2455 CONFIGRET
2456 WINAPI
2457 CM_Open_Class_KeyA(
2458 IN LPGUID ClassGuid OPTIONAL,
2459 IN LPCSTR pszClassName OPTIONAL,
2460 IN REGSAM samDesired,
2461 IN REGDISPOSITION Disposition,
2462 OUT PHKEY phkClass,
2463 IN ULONG ulFlags);
2464
2465 CMAPI
2466 CONFIGRET
2467 WINAPI
2468 CM_Open_Class_KeyW(
2469 IN LPGUID ClassGuid OPTIONAL,
2470 IN LPCWSTR pszClassName OPTIONAL,
2471 IN REGSAM samDesired,
2472 IN REGDISPOSITION Disposition,
2473 OUT PHKEY phkClass,
2474 IN ULONG ulFlags);
2475
2476 CMAPI
2477 CONFIGRET
2478 WINAPI
2479 CM_Open_Class_Key_ExA(
2480 IN LPGUID pszClassGuid OPTIONAL,
2481 IN LPCSTR pszClassName OPTIONAL,
2482 IN REGSAM samDesired,
2483 IN REGDISPOSITION Disposition,
2484 OUT PHKEY phkClass,
2485 IN ULONG ulFlags,
2486 IN HMACHINE hMachine);
2487
2488 CMAPI
2489 CONFIGRET
2490 WINAPI
2491 CM_Open_Class_Key_ExW(
2492 IN LPGUID pszClassGuid OPTIONAL,
2493 IN LPCWSTR pszClassName OPTIONAL,
2494 IN REGSAM samDesired,
2495 IN REGDISPOSITION Disposition,
2496 OUT PHKEY phkClass,
2497 IN ULONG ulFlags,
2498 IN HMACHINE hMachine);
2499
2500 #ifdef UNICODE
2501 #define CM_Open_Class_Key CM_Open_Class_KeyW
2502 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
2503 #else
2504 #define CM_Open_Class_Key CM_Open_Class_KeyA
2505 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
2506 #endif /* UNICODE */
2507
2508 CMAPI
2509 CONFIGRET
2510 WINAPI
2511 CM_Open_DevNode_Key(
2512 IN DEVINST dnDevNode,
2513 IN REGSAM samDesired,
2514 IN ULONG ulHardwareProfile,
2515 IN REGDISPOSITION Disposition,
2516 OUT PHKEY phkDevice,
2517 IN ULONG ulFlags);
2518
2519 CMAPI
2520 CONFIGRET
2521 WINAPI
2522 CM_Open_DevNode_Key_Ex(
2523 IN DEVINST dnDevNode,
2524 IN REGSAM samDesired,
2525 IN ULONG ulHardwareProfile,
2526 IN REGDISPOSITION Disposition,
2527 OUT PHKEY phkDevice,
2528 IN ULONG ulFlags,
2529 IN HMACHINE hMachine);
2530
2531 #define CM_Open_DevInst_Key CM_Open_DevNode_Key
2532 #define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
2533
2534 #if (WINVER >= _WIN32_WINNT_VISTA)
2535
2536 CMAPI
2537 CONFIGRET
2538 WINAPI
2539 CM_Open_Device_Interface_KeyA(
2540 IN LPCSTR pszDeviceInterface,
2541 IN REGSAM samDesired,
2542 IN REGDISPOSITION Disposition,
2543 OUT PHKEY phkDeviceInterface,
2544 IN ULONG ulFlags);
2545
2546 CMAPI
2547 CONFIGRET
2548 WINAPI
2549 CM_Open_Device_Interface_KeyW(
2550 IN LPCWSTR pszDeviceInterface,
2551 IN REGSAM samDesired,
2552 IN REGDISPOSITION Disposition,
2553 OUT PHKEY phkDeviceInterface,
2554 IN ULONG ulFlags);
2555
2556 CMAPI
2557 CONFIGRET
2558 WINAPI
2559 CM_Open_Device_Interface_Key_ExA(
2560 IN LPCSTR pszDeviceInterface,
2561 IN REGSAM samDesired,
2562 IN REGDISPOSITION Disposition,
2563 OUT PHKEY phkDeviceInterface,
2564 IN ULONG ulFlags,
2565 IN HMACHINE hMachine OPTIONAL);
2566
2567 CMAPI
2568 CONFIGRET
2569 WINAPI
2570 CM_Open_Device_Interface_Key_ExW(
2571 IN LPCWSTR pszDeviceInterface,
2572 IN REGSAM samDesired,
2573 IN REGDISPOSITION Disposition,
2574 OUT PHKEY phkDeviceInterface,
2575 IN ULONG ulFlags,
2576 IN HMACHINE hMachine OPTIONAL);
2577
2578 #ifdef UNICODE
2579 #define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyW
2580 #define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExW
2581 #else
2582 #define CM_Open_Device_Interface_Key CM_Open_Device_Interface_KeyA
2583 #define CM_Open_Device_Interface_Key_Ex CM_Open_Device_Interface_Key_ExA
2584 #endif
2585
2586 CMAPI
2587 CONFIGRET
2588 WINAPI
2589 CM_Delete_Device_Interface_KeyA(
2590 IN LPCSTR pszDeviceInterface,
2591 IN ULONG ulFlags);
2592
2593 CMAPI
2594 CONFIGRET
2595 WINAPI
2596 CM_Delete_Device_Interface_KeyW(
2597 IN LPCWSTR pszDeviceInterface,
2598 IN ULONG ulFlags);
2599
2600 CMAPI
2601 CONFIGRET
2602 WINAPI
2603 CM_Delete_Device_Interface_Key_ExA(
2604 IN LPCSTR pszDeviceInterface,
2605 IN ULONG ulFlags,
2606 IN HMACHINE hMachine OPTIONAL);
2607
2608 CMAPI
2609 CONFIGRET
2610 WINAPI
2611 CM_Delete_Device_Interface_Key_ExW(
2612 IN LPCWSTR pszDeviceInterface,
2613 IN ULONG ulFlags,
2614 IN HMACHINE hMachine OPTIONAL);
2615
2616 #ifdef UNICODE
2617 #define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyW
2618 #define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExW
2619 #else
2620 #define CM_Delete_Device_Interface_Key CM_Delete_Device_Interface_KeyA
2621 #define CM_Delete_Device_Interface_Key_Ex CM_Delete_Device_Interface_Key_ExA
2622 #endif
2623
2624 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
2625
2626 CMAPI
2627 CONFIGRET
2628 WINAPI
2629 CM_Query_Arbitrator_Free_Data(
2630 OUT PVOID pData,
2631 IN ULONG DataLen,
2632 IN DEVINST dnDevInst,
2633 IN RESOURCEID ResourceID,
2634 IN ULONG ulFlags);
2635
2636 CMAPI
2637 CONFIGRET
2638 WINAPI
2639 CM_Query_Arbitrator_Free_Data_Ex(
2640 OUT PVOID pData,
2641 IN ULONG DataLen,
2642 IN DEVINST dnDevInst,
2643 IN RESOURCEID ResourceID,
2644 IN ULONG ulFlags,
2645 IN HMACHINE hMachine OPTIONAL);
2646
2647 CMAPI
2648 CONFIGRET
2649 WINAPI
2650 CM_Query_Arbitrator_Free_Size(
2651 OUT PULONG pulSize,
2652 IN DEVINST dnDevInst,
2653 IN RESOURCEID ResourceID,
2654 IN ULONG ulFlags);
2655
2656 CMAPI
2657 CONFIGRET
2658 WINAPI
2659 CM_Query_Arbitrator_Free_Size_Ex(
2660 OUT PULONG pulSize,
2661 IN DEVINST dnDevInst,
2662 IN RESOURCEID ResourceID,
2663 IN ULONG ulFlags,
2664 IN HMACHINE hMachine OPTIONAL);
2665
2666 CMAPI
2667 CONFIGRET
2668 WINAPI
2669 CM_Query_Remove_SubTree(
2670 IN DEVINST dnAncestor,
2671 IN ULONG ulFlags);
2672
2673 CMAPI
2674 CONFIGRET
2675 WINAPI
2676 CM_Query_Remove_SubTree_Ex(
2677 IN DEVINST dnAncestor,
2678 IN ULONG ulFlags,
2679 IN HMACHINE hMachine OPTIONAL);
2680
2681 CMAPI
2682 CONFIGRET
2683 WINAPI
2684 CM_Query_And_Remove_SubTreeA(
2685 IN DEVINST dnAncestor,
2686 OUT PPNP_VETO_TYPE pVetoType,
2687 OUT LPSTR pszVetoName,
2688 IN ULONG ulNameLength,
2689 IN ULONG ulFlags);
2690
2691 CMAPI
2692 CONFIGRET
2693 WINAPI
2694 CM_Query_And_Remove_SubTreeW(
2695 IN DEVINST dnAncestor,
2696 OUT PPNP_VETO_TYPE pVetoType,
2697 OUT LPWSTR pszVetoName,
2698 IN ULONG ulNameLength,
2699 IN ULONG ulFlags);
2700
2701 CMAPI
2702 CONFIGRET
2703 WINAPI
2704 CM_Query_And_Remove_SubTree_ExA(
2705 IN DEVINST dnAncestor,
2706 OUT PPNP_VETO_TYPE pVetoType,
2707 OUT LPSTR pszVetoName,
2708 IN ULONG ulNameLength,
2709 IN ULONG ulFlags,
2710 IN HMACHINE hMachine);
2711
2712 CMAPI
2713 CONFIGRET
2714 WINAPI
2715 CM_Query_And_Remove_SubTree_ExW(
2716 IN DEVINST dnAncestor,
2717 OUT PPNP_VETO_TYPE pVetoType,
2718 OUT LPWSTR pszVetoName,
2719 IN ULONG ulNameLength,
2720 IN ULONG ulFlags,
2721 IN HMACHINE hMachine);
2722
2723 #ifdef UNICODE
2724 #define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeW
2725 #define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExW
2726 #else
2727 #define CM_Query_And_Remove_SubTree CM_Query_And_Remove_SubTreeA
2728 #define CM_Query_And_Remove_SubTree_Ex CM_Query_And_Remove_SubTree_ExA
2729 #endif
2730
2731 CMAPI
2732 CONFIGRET
2733 WINAPI
2734 CM_Query_Resource_Conflict_List(
2735 OUT PCONFLICT_LIST pclConflictList,
2736 IN DEVINST dnDevInst,
2737 IN RESOURCEID ResourceID,
2738 IN PCVOID ResourceData,
2739 IN ULONG ResourceLen,
2740 IN ULONG ulFlags,
2741 IN HMACHINE hMachine OPTIONAL);
2742
2743 CMAPI
2744 CONFIGRET
2745 WINAPI
2746 CM_Reenumerate_DevNode(
2747 IN DEVINST dnDevInst,
2748 IN ULONG ulFlags);
2749
2750 CMAPI
2751 CONFIGRET
2752 WINAPI
2753 CM_Reenumerate_DevNode_Ex(
2754 IN DEVINST dnDevInst,
2755 IN ULONG ulFlags,
2756 IN HMACHINE hMachine);
2757
2758 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
2759 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
2760
2761 CMAPI
2762 CONFIGRET
2763 WINAPI
2764 CM_Register_Device_InterfaceA(
2765 IN DEVINST dnDevInst,
2766 IN LPGUID InterfaceClassGuid,
2767 IN LPCSTR pszReference OPTIONAL,
2768 OUT LPSTR pszDeviceInterface,
2769 IN OUT PULONG pulLength,
2770 IN ULONG ulFlags);
2771
2772 CMAPI
2773 CONFIGRET
2774 WINAPI
2775 CM_Register_Device_InterfaceW(
2776 IN DEVINST dnDevInst,
2777 IN LPGUID InterfaceClassGuid,
2778 IN LPCWSTR pszReference OPTIONAL,
2779 OUT LPWSTR pszDeviceInterface,
2780 IN OUT PULONG pulLength,
2781 IN ULONG ulFlags);
2782
2783 CMAPI
2784 CONFIGRET
2785 WINAPI
2786 CM_Register_Device_Interface_ExA(
2787 IN DEVINST dnDevInst,
2788 IN LPGUID InterfaceClassGuid,
2789 IN LPCSTR pszReference OPTIONAL,
2790 OUT LPSTR pszDeviceInterface,
2791 IN OUT PULONG pulLength,
2792 IN ULONG ulFlags,
2793 IN HMACHINE hMachine OPTIONAL);
2794
2795 CMAPI
2796 CONFIGRET
2797 WINAPI
2798 CM_Register_Device_Interface_ExW(
2799 IN DEVINST dnDevInst,
2800 IN LPGUID InterfaceClassGuid,
2801 IN LPCWSTR pszReference OPTIONAL,
2802 OUT LPWSTR pszDeviceInterface,
2803 IN OUT PULONG pulLength,
2804 IN ULONG ulFlags,
2805 IN HMACHINE hMachine OPTIONAL);
2806
2807 #ifdef UNICODE
2808 #define CM_Register_Device_Interface CM_Register_Device_InterfaceW
2809 #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExW
2810 #else
2811 #define CM_Register_Device_Interface CM_Register_Device_InterfaceA
2812 #define CM_Register_Device_Interface_Ex CM_Register_Device_Interface_ExA
2813 #endif
2814
2815 CMAPI
2816 CONFIGRET
2817 WINAPI
2818 CM_Request_Device_EjectA(
2819 IN DEVINST dnDevInst,
2820 OUT PPNP_VETO_TYPE pVetoType,
2821 OUT LPSTR pszVetoName,
2822 IN ULONG ulNameLength,
2823 IN ULONG ulFlags);
2824
2825 CMAPI
2826 CONFIGRET
2827 WINAPI
2828 CM_Request_Device_Eject_ExW(
2829 IN DEVINST dnDevInst,
2830 OUT PPNP_VETO_TYPE pVetoType,
2831 OUT LPWSTR pszVetoName,
2832 IN ULONG ulNameLength,
2833 IN ULONG ulFlags,
2834 IN HMACHINE hMachine);
2835
2836 CMAPI
2837 CONFIGRET
2838 WINAPI
2839 CM_Request_Device_Eject_ExA(
2840 IN DEVINST dnDevInst,
2841 OUT PPNP_VETO_TYPE pVetoType,
2842 OUT LPSTR pszVetoName,
2843 IN ULONG ulNameLength,
2844 IN ULONG ulFlags,
2845 IN HMACHINE hMachine);
2846
2847 CMAPI
2848 CONFIGRET
2849 WINAPI
2850 CM_Request_Device_EjectW(
2851 IN DEVINST dnDevInst,
2852 OUT PPNP_VETO_TYPE pVetoType,
2853 OUT LPWSTR pszVetoName,
2854 IN ULONG ulNameLength,
2855 IN ULONG ulFlags);
2856
2857 #ifdef UNICODE
2858 #define CM_Request_Device_Eject CM_Request_Device_EjectW
2859 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
2860 #else
2861 #define CM_Request_Device_Eject CM_Request_Device_EjectA
2862 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
2863 #endif
2864
2865 CMAPI
2866 CONFIGRET
2867 WINAPI
2868 CM_Request_Eject_PC(VOID);
2869
2870 CMAPI
2871 CONFIGRET
2872 WINAPI
2873 CM_Request_Eject_PC_Ex(
2874 IN HMACHINE hMachine OPTIONAL);
2875
2876 CMAPI
2877 CONFIGRET
2878 WINAPI
2879 CM_Run_Detection(
2880 IN ULONG ulFlags);
2881
2882 CMAPI
2883 CONFIGRET
2884 WINAPI
2885 CM_Run_Detection_Ex(
2886 IN ULONG ulFlags,
2887 IN HMACHINE hMachine OPTIONAL);
2888
2889 #if (WINVER >= _WIN32_WINNT_VISTA)
2890
2891 CONFIGRET
2892 CM_Apply_PowerScheme(VOID);
2893
2894 CONFIGRET
2895 CM_Write_UserPowerKey(
2896 IN CONST GUID *SchemeGuid OPTIONAL,
2897 IN CONST GUID *SubGroupOfPowerSettingsGuid OPTIONAL,
2898 IN CONST GUID *PowerSettingGuid OPTIONAL,
2899 IN ULONG AccessFlags,
2900 IN ULONG Type,
2901 IN UCHAR *Buffer,
2902 IN DWORD BufferSize,
2903 OUT PDWORD Error);
2904
2905 CONFIGRET
2906 CM_Set_ActiveScheme(
2907 IN CONST GUID *SchemeGuid,
2908 OUT PDWORD Error);
2909
2910 CONFIGRET
2911 CM_Restore_DefaultPowerScheme(
2912 IN CONST GUID *SchemeGuid,
2913 OUT PDWORD Error);
2914
2915 CONFIGRET
2916 CM_RestoreAll_DefaultPowerSchemes(
2917 OUT PDWORD Error);
2918
2919 CONFIGRET
2920 CM_Duplicate_PowerScheme(
2921 IN CONST GUID *SourceSchemeGuid,
2922 IN GUID **DestinationSchemeGuid,
2923 OUT PDWORD Error);
2924
2925 CONFIGRET
2926 CM_Delete_PowerScheme(
2927 IN CONST GUID *SchemeGuid,
2928 OUT PDWORD Error);
2929
2930 CONFIGRET
2931 CM_Import_PowerScheme(
2932 IN LPCWSTR ImportFileNamePath,
2933 IN OUT GUID **DestinationSchemeGuid,
2934 OUT PDWORD Error);
2935
2936 #endif /* (WINVER >= _WIN32_WINNT_VISTA) */
2937
2938 CMAPI
2939 CONFIGRET
2940 WINAPI
2941 CM_Set_DevNode_Problem(
2942 IN DEVINST dnDevInst,
2943 IN ULONG ulProblem,
2944 IN ULONG ulFlags);
2945
2946 CMAPI
2947 CONFIGRET
2948 WINAPI
2949 CM_Set_DevNode_Problem_Ex(
2950 IN DEVINST dnDevInst,
2951 IN ULONG ulProblem,
2952 IN ULONG ulFlags,
2953 IN HMACHINE hMachine);
2954
2955 #define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
2956 #define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
2957
2958 CMAPI
2959 CONFIGRET
2960 WINAPI
2961 CM_Unregister_Device_InterfaceA(
2962 IN LPCSTR pszDeviceInterface,
2963 IN ULONG ulFlags);
2964
2965 CMAPI
2966 CONFIGRET
2967 WINAPI
2968 CM_Unregister_Device_InterfaceW(
2969 IN LPCWSTR pszDeviceInterface,
2970 IN ULONG ulFlags);
2971
2972 CMAPI
2973 CONFIGRET
2974 WINAPI
2975 CM_Unregister_Device_Interface_ExA(
2976 IN LPCSTR pszDeviceInterface,
2977 IN ULONG ulFlags,
2978 IN HMACHINE hMachine OPTIONAL);
2979
2980 CMAPI
2981 CONFIGRET
2982 WINAPI
2983 CM_Unregister_Device_Interface_ExW(
2984 IN LPCWSTR pszDeviceInterface,
2985 IN ULONG ulFlags,
2986 IN HMACHINE hMachine OPTIONAL);
2987
2988 #ifdef UNICODE
2989 #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceW
2990 #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExW
2991 #else
2992 #define CM_Unregister_Device_Interface CM_Unregister_Device_InterfaceA
2993 #define CM_Unregister_Device_Interface_Ex CM_Unregister_Device_Interface_ExA
2994 #endif
2995
2996 CMAPI
2997 CONFIGRET
2998 WINAPI
2999 CM_Register_Device_Driver(
3000 IN DEVINST dnDevInst,
3001 IN ULONG ulFlags);
3002
3003 CMAPI
3004 CONFIGRET
3005 WINAPI
3006 CM_Register_Device_Driver_Ex(
3007 IN DEVINST dnDevInst,
3008 IN ULONG ulFlags,
3009 IN HMACHINE hMachine OPTIONAL);
3010
3011 CMAPI
3012 CONFIGRET
3013 WINAPI
3014 CM_Remove_SubTree(
3015 IN DEVINST dnAncestor,
3016 IN ULONG ulFlags);
3017
3018 CMAPI
3019 CONFIGRET
3020 WINAPI
3021 CM_Remove_SubTree_Ex(
3022 IN DEVINST dnAncestor,
3023 IN ULONG ulFlags,
3024 IN HMACHINE hMachine OPTIONAL);
3025
3026 CMAPI
3027 CONFIGRET
3028 WINAPI
3029 CM_Set_DevNode_Registry_PropertyA(
3030 IN DEVINST dnDevInst,
3031 IN ULONG ulProperty,
3032 IN PCVOID Buffer OPTIONAL,
3033 IN ULONG ulLength,
3034 IN ULONG ulFlags);
3035
3036 CMAPI
3037 CONFIGRET
3038 WINAPI
3039 CM_Set_DevNode_Registry_PropertyW(
3040 IN DEVINST dnDevInst,
3041 IN ULONG ulProperty,
3042 IN PCVOID Buffer OPTIONAL,
3043 IN ULONG ulLength,
3044 IN ULONG ulFlags);
3045
3046 CMAPI
3047 CONFIGRET
3048 WINAPI
3049 CM_Set_DevNode_Registry_Property_ExA(
3050 IN DEVINST dnDevInst,
3051 IN ULONG ulProperty,
3052 IN PCVOID Buffer OPTIONAL,
3053 IN ULONG ulLength,
3054 IN ULONG ulFlags,
3055 IN HMACHINE hMachine);
3056
3057 CMAPI
3058 CONFIGRET
3059 WINAPI
3060 CM_Set_DevNode_Registry_Property_ExW(
3061 IN DEVINST dnDevInst,
3062 IN ULONG ulProperty,
3063 IN PCVOID Buffer OPTIONAL,
3064 IN ULONG ulLength,
3065 IN ULONG ulFlags,
3066 IN HMACHINE hMachine);
3067
3068 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
3069 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
3070 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
3071 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
3072
3073 #ifdef UNICODE
3074 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
3075 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
3076 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
3077 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
3078 #else
3079 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
3080 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
3081 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
3082 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
3083 #endif /* UNICODE */
3084
3085 CMAPI
3086 CONFIGRET
3087 WINAPI
3088 CM_Set_HW_Prof(
3089 IN ULONG ulHardwareProfile,
3090 IN ULONG ulFlags);
3091
3092 CMAPI
3093 CONFIGRET
3094 WINAPI
3095 CM_Set_HW_Prof_Ex(
3096 IN ULONG ulHardwareProfile,
3097 IN ULONG ulFlags,
3098 IN HMACHINE hMachine);
3099
3100 CMAPI
3101 CONFIGRET
3102 WINAPI
3103 CM_Set_HW_Prof_FlagsA(
3104 IN DEVINSTID_A szDevInstName,
3105 IN ULONG ulConfig,
3106 IN ULONG ulValue,
3107 IN ULONG ulFlags);
3108
3109 CMAPI
3110 CONFIGRET
3111 WINAPI
3112 CM_Set_HW_Prof_FlagsW(
3113 IN DEVINSTID_W szDevInstName,
3114 IN ULONG ulConfig,
3115 IN ULONG ulValue,
3116 IN ULONG ulFlags);
3117
3118 CMAPI
3119 CONFIGRET
3120 WINAPI
3121 CM_Set_HW_Prof_Flags_ExA(
3122 IN DEVINSTID_A szDevInstName,
3123 IN ULONG ulConfig,
3124 IN ULONG ulValue,
3125 IN ULONG ulFlags,
3126 IN HMACHINE hMachine);
3127
3128 CMAPI
3129 CONFIGRET
3130 WINAPI
3131 CM_Set_HW_Prof_Flags_ExW(
3132 IN DEVINSTID_W szDevInstName,
3133 IN ULONG ulConfig,
3134 IN ULONG ulValue,
3135 IN ULONG ulFlags,
3136 IN HMACHINE hMachine);
3137
3138 #ifdef UNICODE
3139 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
3140 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
3141 #else
3142 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
3143 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
3144 #endif /* UNICODE */
3145
3146 CMAPI
3147 CONFIGRET
3148 WINAPI
3149 CM_Setup_DevNode(
3150 IN DEVINST dnDevInst,
3151 IN ULONG ulFlags);
3152
3153 CMAPI
3154 CONFIGRET
3155 WINAPI
3156 CM_Setup_DevNode_Ex(
3157 IN DEVINST dnDevInst,
3158 IN ULONG ulFlags,
3159 IN HMACHINE hMachine OPTIONAL);
3160
3161 #define CM_Setup_DevInst CM_Setup_DevNode
3162 #define CM_Setup_DevInst_Ex CM_Setup_DevNode_Ex
3163
3164 CMAPI
3165 CONFIGRET
3166 WINAPI
3167 CM_Test_Range_Available(
3168 IN DWORDLONG ullStartValue,
3169 IN DWORDLONG ullEndValue,
3170 IN RANGE_LIST rlh,
3171 IN ULONG ulFlags);
3172
3173 CMAPI
3174 CONFIGRET
3175 WINAPI
3176 CM_Uninstall_DevNode(
3177 IN DEVINST dnPhantom,
3178 IN ULONG ulFlags);
3179
3180 CMAPI
3181 CONFIGRET
3182 WINAPI
3183 CM_Uninstall_DevNode_Ex(
3184 IN DEVINST dnPhantom,
3185 IN ULONG ulFlags,
3186 IN HMACHINE hMachine);
3187
3188 #define CM_Uninstall_DevInst CM_Uninstall_DevNode
3189 #define CM_Uninstall_DevInst_Ex CM_Uninstall_DevNode_Ex
3190
3191
3192 #if (WINVER >= _WIN32_WINNT_WIN2K)
3193
3194 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
3195
3196 CMAPI
3197 DWORD
3198 WINAPI
3199 CMP_WaitNoPendingInstallEvents(
3200 IN DWORD dwTimeout);
3201
3202 #endif /* (WINVER >= _WIN32_WINNT_WIN2K) */
3203
3204 #ifdef __cplusplus
3205 }
3206 #endif