- Implement CM_Is_Dock_Station_Present[_Ex]
[reactos.git] / reactos / w32api / include / ddk / 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 #ifndef __CFGMGR32_H
24 #define __CFGMGR32_H
25
26 #if __GNUC__ >=3
27 #pragma GCC system_header
28 #endif
29
30 #include "cfg.h"
31
32 #ifdef __cplusplus
33 extern "C" {
34 #endif
35
36 #if defined(_CFGMGR32_)
37 #define CMAPI DECLSPEC_EXPORT
38 #else
39 #define CMAPI DECLSPEC_IMPORT
40 #endif
41
42 #include <pshpack1.h>
43
44 #define CR_SUCCESS 0x00000000
45 #define CR_DEFAULT 0x00000001
46 #define CR_OUT_OF_MEMORY 0x00000002
47 #define CR_INVALID_POINTER 0x00000003
48 #define CR_INVALID_FLAG 0x00000004
49 #define CR_INVALID_DEVNODE 0x00000005
50 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
51 #define CR_INVALID_RES_DES 0x00000006
52 #define CR_INVALID_LOG_CONF 0x00000007
53 #define CR_INVALID_ARBITRATOR 0x00000008
54 #define CR_INVALID_NODELIST 0x00000009
55 #define CR_DEVNODE_HAS_REQS 0x0000000A
56 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
57 #define CR_INVALID_RESOURCEID 0x0000000B
58 #define CR_DLVXD_NOT_FOUND 0x0000000C
59 #define CR_NO_SUCH_DEVNODE 0x0000000D
60 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
61 #define CR_NO_MORE_LOG_CONF 0x0000000E
62 #define CR_NO_MORE_RES_DES 0x0000000F
63 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
64 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
65 #define CR_INVALID_RANGE_LIST 0x00000011
66 #define CR_INVALID_RANGE 0x00000012
67 #define CR_FAILURE 0x00000013
68 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
69 #define CR_CREATE_BLOCKED 0x00000015
70 #define CR_NOT_SYSTEM_VM 0x00000016
71 #define CR_REMOVE_VETOED 0x00000017
72 #define CR_APM_VETOED 0x00000018
73 #define CR_INVALID_LOAD_TYPE 0x00000019
74 #define CR_BUFFER_SMALL 0x0000001A
75 #define CR_NO_ARBITRATOR 0x0000001B
76 #define CR_NO_REGISTRY_HANDLE 0x0000001C
77 #define CR_REGISTRY_ERROR 0x0000001D
78 #define CR_INVALID_DEVICE_ID 0x0000001E
79 #define CR_INVALID_DATA 0x0000001F
80 #define CR_INVALID_API 0x00000020
81 #define CR_DEVLOADER_NOT_READY 0x00000021
82 #define CR_NEED_RESTART 0x00000022
83 #define CR_NO_MORE_HW_PROFILES 0x00000023
84 #define CR_DEVICE_NOT_THERE 0x00000024
85 #define CR_NO_SUCH_VALUE 0x00000025
86 #define CR_WRONG_TYPE 0x00000026
87 #define CR_INVALID_PRIORITY 0x00000027
88 #define CR_NOT_DISABLEABLE 0x00000028
89 #define CR_FREE_RESOURCES 0x00000029
90 #define CR_QUERY_VETOED 0x0000002A
91 #define CR_CANT_SHARE_IRQ 0x0000002B
92 #define CR_NO_DEPENDENT 0x0000002C
93 #define CR_SAME_RESOURCES 0x0000002D
94 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
95 #define CR_INVALID_MACHINENAME 0x0000002F
96 #define CR_REMOTE_COMM_FAILURE 0x00000030
97 #define CR_MACHINE_UNAVAILABLE 0x00000031
98 #define CR_NO_CM_SERVICES 0x00000032
99 #define CR_ACCESS_DENIED 0x00000033
100 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
101 #define CR_INVALID_PROPERTY 0x00000035
102 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
103 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
104 #define CR_INVALID_REFERENCE_STRING 0x00000038
105 #define CR_INVALID_CONFLICT_LIST 0x00000039
106 #define CR_INVALID_INDEX 0x0000003A
107 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
108
109
110 typedef DWORD RETURN_TYPE;
111 typedef RETURN_TYPE CONFIGRET;
112
113 typedef HANDLE HMACHINE;
114 typedef HMACHINE *PHMACHINE;
115
116 typedef DWORD_PTR RES_DES;
117 typedef RES_DES *PRES_DES;
118
119 typedef DWORD_PTR RANGE_ELEMENT;
120 typedef RANGE_ELEMENT *PRANGE_ELEMENT;
121
122 typedef ULONG_PTR CONFLICT_LIST;
123 typedef CONFLICT_LIST *PCONFLICT_LIST;
124
125 typedef DWORD_PTR LOG_CONF;
126 typedef LOG_CONF *PLOG_CONF;
127
128 typedef ULONG PRIORITY;
129 typedef PRIORITY *PPRIORITY;
130
131 typedef DWORD_PTR RANGE_LIST;
132 typedef RANGE_LIST *PRANGE_LIST;
133
134 typedef DWORD DEVNODE, DEVINST;
135 typedef DEVNODE *PDEVNODE, *PDEVINST;
136
137 typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
138 typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
139
140 #ifdef UNICODE
141 typedef DEVNODEID_W DEVNODEID;
142 typedef DEVINSTID_W DEVINSTID;
143 #else
144 typedef DEVNODEID_A DEVNODEID;
145 typedef DEVINSTID_A DEVINSTID;
146 #endif
147
148 typedef ULONG REGDISPOSITION;
149
150 typedef ULONG RESOURCEID;
151 typedef RESOURCEID *PRESOURCEID;
152
153 #define CM_RESDES_WIDTH_DEFAULT 0x00000000
154 #define CM_RESDES_WIDTH_32 0x00000001
155 #define CM_RESDES_WIDTH_64 0x00000002
156 #define CM_RESDES_WIDTH_BITS 0x00000003
157
158
159 #define MAX_CONFIG_VALUE 9999
160 #define MAX_INSTANCE_VALUE 9999
161
162 #define MAX_DEVICE_ID_LEN 200
163 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
164
165 #define MAX_CLASS_NAME_LEN 32
166 #define MAX_GUID_STRING_LEN 39
167 #define MAX_PROFILE_LEN 80
168
169
170 #define ResType_All 0x00000000
171 #define ResType_None 0x00000000
172 #define ResType_Mem 0x00000001
173 #define ResType_IO 0x00000002
174 #define ResType_DMA 0x00000003
175 #define ResType_IRQ 0x00000004
176 #define ResType_DoNotUse 0x00000005
177 #define ResType_BusNumber 0x00000006
178 #define ResType_MAX 0x00000006
179 #define ResType_Ignored_Bit 0x00008000
180 #define ResType_ClassSpecific 0x0000FFFF
181 #define ResType_Reserved 0x00008000
182 #define ResType_DevicePrivate 0x00008001
183 #define ResType_PcCardConfig 0x00008002
184 #define ResType_MfCardConfig 0x00008003
185
186 #define CM_GETIDLIST_FILTER_NONE 0x00000000
187 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
188 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002
189 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
190 #define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
191 #define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
192 #define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
193 #define CM_GETIDLIST_DONOTGENERATE 0x10000040
194 #define CM_GETIDLIST_FILTER_BITS 0x1000007F
195
196 #define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
197 #define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
198 #define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
199
200 #define CM_DRP_DEVICEDESC 0x00000001
201 #define CM_DRP_HARDWAREID 0x00000002
202 #define CM_DRP_COMPATIBLEIDS 0x00000003
203 #define CM_DRP_UNUSED0 0x00000004
204 #define CM_DRP_SERVICE 0x00000005
205 #define CM_DRP_UNUSED1 0x00000006
206 #define CM_DRP_UNUSED2 0x00000007
207 #define CM_DRP_CLASS 0x00000008
208 #define CM_DRP_CLASSGUID 0x00000009
209 #define CM_DRP_DRIVER 0x0000000A
210 #define CM_DRP_CONFIGFLAGS 0x0000000B
211 #define CM_DRP_MFG 0x0000000C
212 #define CM_DRP_FRIENDLYNAME 0x0000000D
213 #define CM_DRP_LOCATION_INFORMATION 0x0000000E
214 #define CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME 0x0000000F
215 #define CM_DRP_CAPABILITIES 0x00000010
216 #define CM_DRP_UI_NUMBER 0x00000011
217 #define CM_DRP_UPPERFILTERS 0x00000012
218 #define CM_DRP_LOWERFILTERS 0x00000013
219 #define CM_DRP_BUSTYPEGUID 0x00000014
220 #define CM_DRP_LEGACYBUSTYPE 0x00000015
221 #define CM_DRP_BUSNUMBER 0x00000016
222 #define CM_DRP_ENUMERATOR_NAME 0x00000017
223
224 #define CM_DRP_MIN 0x00000001
225 #define CM_DRP_MAX 0x00000017
226
227
228 typedef struct BusNumber_Des_s {
229 DWORD BUSD_Count;
230 DWORD BUSD_Type;
231 DWORD BUSD_Flags;
232 ULONG BUSD_Alloc_Base;
233 ULONG BUSD_Alloc_End;
234 } BUSNUMBER_DES, *PBUSNUMBER_DES;
235
236 typedef struct BusNumber_Range_s {
237 ULONG BUSR_Min;
238 ULONG BUSR_Max;
239 ULONG BUSR_nBusNumbers;
240 ULONG BUSR_Flags;
241 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
242
243 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
244
245 typedef struct BusNumber_Resource_s {
246 BUSNUMBER_DES BusNumber_Header;
247 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
248 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
249
250 typedef struct CS_Des_s {
251 DWORD CSD_SignatureLength;
252 DWORD CSD_LegacyDataOffset;
253 DWORD CSD_LegacyDataSize;
254 DWORD CSD_Flags;
255 GUID CSD_ClassGuid;
256 BYTE CSD_Signature[ANYSIZE_ARRAY];
257 } CS_DES, *PCS_DES;
258
259 typedef struct CS_Resource_s {
260 CS_DES CS_Header;
261 } CS_RESOURCE, *PCS_RESOURCE;
262
263 typedef struct DevPrivate_Des_s {
264 DWORD PD_Count;
265 DWORD PD_Type;
266 DWORD PD_Data1;
267 DWORD PD_Data2;
268 DWORD PD_Data3;
269 DWORD PD_Flags;
270 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
271
272 typedef struct DevPrivate_Range_s {
273 DWORD PR_Data1;
274 DWORD PR_Data2;
275 DWORD PR_Data3;
276 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
277
278 #define PType_Range sizeof(DEVPRIVATE_RANGE)
279
280 typedef struct DevPrivate_Resource_s {
281 DEVPRIVATE_DES PRV_Header;
282 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
283 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
284
285 /* DMA_DES.DD_Flags constants and masks */
286 #define mDD_Width 0x3
287 #define fDD_BYTE 0x0
288 #define fDD_WORD 0x1
289 #define fDD_DWORD 0x2
290 #define fDD_BYTE_AND_WORD 0x3
291
292 #define mDD_BusMaster 0x4
293 #define fDD_NoBusMaster 0x0
294 #define fDD_BusMaster 0x4
295
296 #define mDD_Type 0x18
297 #define fDD_TypeStandard 0x00
298 #define fDD_TypeA 0x08
299 #define fDD_TypeB 0x10
300 #define fDD_TypeF 0x18
301
302 typedef struct DMA_Des_s {
303 DWORD DD_Count;
304 DWORD DD_Type;
305 DWORD DD_Flags;
306 ULONG DD_Alloc_Chan;
307 } DMA_DES, *PDMA_DES;
308
309 typedef struct DMA_Range_s {
310 ULONG DR_Min;
311 ULONG DR_Max;
312 ULONG DR_Flags;
313 } DMA_RANGE, *PDMA_RANGE;
314
315 #define DType_Range sizeof(DMA_RANGE)
316
317 typedef struct DMA_Resource_s {
318 DMA_DES DMA_Header;
319 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
320 } DMA_RESOURCE, *PDMA_RESOURCE;
321
322 /* IO_DES.Type constants and masks */
323 #define fIOD_PortType 0x1
324 #define fIOD_Memory 0x0
325 #define fIOD_IO 0x1
326 #define fIOD_DECODE 0x00fc
327 #define fIOD_10_BIT_DECODE 0x0004
328 #define fIOD_12_BIT_DECODE 0x0008
329 #define fIOD_16_BIT_DECODE 0x0010
330 #define fIOD_POSITIVE_DECODE 0x0020
331 #define fIOD_PASSIVE_DECODE 0x0040
332 #define fIOD_WINDOW_DECODE 0x0080
333
334 typedef struct IO_Des_s {
335 DWORD IOD_Count;
336 DWORD IOD_Type;
337 DWORDLONG IOD_Alloc_Base;
338 DWORDLONG IOD_Alloc_End;
339 DWORD IOD_DesFlags;
340 } IO_DES, *PIO_DES;
341
342 /* IO_RANGE.IOR_Alias constants */
343 #define IO_ALIAS_10_BIT_DECODE 0x00000004
344 #define IO_ALIAS_12_BIT_DECODE 0x00000010
345 #define IO_ALIAS_16_BIT_DECODE 0x00000000
346 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
347
348 typedef struct IO_Range_s {
349 DWORDLONG IOR_Align;
350 DWORD IOR_nPorts;
351 DWORDLONG IOR_Min;
352 DWORDLONG IOR_Max;
353 DWORD IOR_RangeFlags;
354 DWORDLONG IOR_Alias;
355 } IO_RANGE, *PIO_RANGE;
356
357 #define IOType_Range sizeof(IO_RANGE)
358
359 typedef struct IO_Resource_s {
360 IO_DES IO_Header;
361 IO_RANGE IO_Data[ANYSIZE_ARRAY];
362 } IO_RESOURCE, *PIO_RESOURCE;
363
364 /* IRQ_DES.IRQD_flags constants */
365 #define mIRQD_Share 0x1
366 #define fIRQD_Exclusive 0x0
367 #define fIRQD_Share 0x1
368
369 #define fIRQD_Share_Bit 0
370 #define fIRQD_Level_Bit 1
371
372 #define mIRQD_Edge_Level 0x2
373 #define fIRQD_Level 0x0
374 #define fIRQD_Edge 0x2
375
376 typedef struct IRQ_Des_32_s {
377 DWORD IRQD_Count;
378 DWORD IRQD_Type;
379 DWORD IRQD_Flags;
380 ULONG IRQD_Alloc_Num;
381 ULONG32 IRQD_Affinity;
382 } IRQ_DES_32, *PIRQ_DES_32;
383
384 typedef struct IRQ_Des_64_s {
385 DWORD IRQD_Count;
386 DWORD IRQD_Type;
387 DWORD IRQD_Flags;
388 ULONG IRQD_Alloc_Num;
389 ULONG64 IRQD_Affinity;
390 } IRQ_DES_64, *PIRQ_DES_64;
391
392 #ifdef _WIN64
393 typedef IRQ_DES_64 IRQ_DES;
394 typedef PIRQ_DES_64 PIRQ_DES;
395 #else
396 typedef IRQ_DES_32 IRQ_DES;
397 typedef PIRQ_DES_32 PIRQ_DES;
398 #endif
399
400 typedef struct IRQ_Range_s {
401 ULONG IRQR_Min;
402 ULONG IRQR_Max;
403 ULONG IRQR_Flags;
404 } IRQ_RANGE, *PIRQ_RANGE;
405
406 #define IRQType_Range sizeof(IRQ_RANGE)
407
408 typedef struct IRQ_Resource_s {
409 IRQ_DES IRQ_Header;
410 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
411 } IRQ_RESOURCE, *PIRQ_RESOURCE;
412
413 /* MEM_DES.MD_Flags constants */
414 #define mMD_MemoryType 0x1
415 #define fMD_MemoryType mMD_MemoryType
416 #define fMD_ROM 0x0
417 #define fMD_RAM 0x1
418
419 #define mMD_32_24 0x2
420 #define fMD_32_24 mMD_32_24
421 #define fMD_24 0x0
422 #define fMD_32 0x2
423
424 #define mMD_Prefetchable 0x4
425 #define fMD_Prefetchable mMD_Prefetchable
426 #define fMD_Pref mMD_Prefetchable
427 #define fMD_PrefetchDisallowed 0x0
428 #define fMD_PrefetchAllowed 0x4
429
430 #define mMD_Readable 0x8
431 #define fMD_Readable mMD_Readable
432 #define fMD_ReadAllowed 0x0
433 #define fMD_ReadDisallowed 0x8
434
435 #define mMD_CombinedWrite 0x10
436 #define fMD_CombinedWrite mMD_CombinedWrite
437 #define fMD_CombinedWriteDisallowed 0x0
438 #define fMD_CombinedWriteAllowed 0x10
439
440 #define mMD_Cacheable 0x20
441 #define fMD_NonCacheable 0x0
442 #define fMD_Cacheable 0x20
443
444 typedef struct Mem_Des_s {
445 DWORD MD_Count;
446 DWORD MD_Type;
447 DWORDLONG MD_Alloc_Base;
448 DWORDLONG MD_Alloc_End;
449 DWORD MD_Flags;
450 DWORD MD_Reserved;
451 } MEM_DES, *PMEM_DES;
452
453 typedef struct Mem_Range_s {
454 DWORDLONG MR_Align;
455 ULONG MR_nBytes;
456 DWORDLONG MR_Min;
457 DWORDLONG MR_Max;
458 DWORD MR_Flags;
459 DWORD MR_Reserved;
460 } MEM_RANGE, *PMEM_RANGE;
461
462 #define MType_Range sizeof(MEM_RANGE)
463
464 typedef struct Mem_Resource_s {
465 MEM_DES MEM_Header;
466 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
467 } MEM_RESOURCE, *PMEM_RESOURCE;
468
469 /* MFCARD_DES.PMF_Flags constants */
470 #define fPMF_AUDIO_ENABLE 0x8
471 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
472
473 typedef struct MfCard_Des_s {
474 DWORD PMF_Count;
475 DWORD PMF_Type;
476 DWORD PMF_Flags;
477 BYTE PMF_ConfigOptions;
478 BYTE PMF_IoResourceIndex;
479 BYTE PMF_Reserved[2];
480 DWORD PMF_ConfigRegisterBase;
481 } MFCARD_DES, *PMFCARD_DES;
482
483 typedef struct MfCard_Resource_s {
484 MFCARD_DES MfCard_Header;
485 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
486
487 /* PCCARD_DES.PCD_Flags constants */
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 } PCCARD_DES, *PPCCARD_DES;
498
499 #define mPCD_IO_8_16 0x1
500 #define fPCD_IO_8 0x0
501 #define fPCD_IO_16 0x1
502 #define mPCD_MEM_8_16 0x2
503 #define fPCD_MEM_8 0x0
504 #define fPCD_MEM_16 0x2
505 #define mPCD_MEM_A_C 0xC
506 #define fPCD_MEM1_A 0x4
507 #define fPCD_MEM2_A 0x8
508 #define fPCD_IO_ZW_8 0x10
509 #define fPCD_IO_SRC_16 0x20
510 #define fPCD_IO_WS_16 0x40
511 #define mPCD_MEM_WS 0x300
512 #define fPCD_MEM_WS_ONE 0x100
513 #define fPCD_MEM_WS_TWO 0x200
514 #define fPCD_MEM_WS_THREE 0x300
515
516 #define fPCD_MEM_A 0x4
517
518 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
519
520 #define fPCD_IO1_16 0x00010000
521 #define fPCD_IO1_ZW_8 0x00020000
522 #define fPCD_IO1_SRC_16 0x00040000
523 #define fPCD_IO1_WS_16 0x00080000
524
525 #define fPCD_IO2_16 0x00100000
526 #define fPCD_IO2_ZW_8 0x00200000
527 #define fPCD_IO2_SRC_16 0x00400000
528 #define fPCD_IO2_WS_16 0x00800000
529
530 #define mPCD_MEM1_WS 0x03000000
531 #define fPCD_MEM1_WS_ONE 0x01000000
532 #define fPCD_MEM1_WS_TWO 0x02000000
533 #define fPCD_MEM1_WS_THREE 0x03000000
534 #define fPCD_MEM1_16 0x04000000
535
536 #define mPCD_MEM2_WS 0x30000000
537 #define fPCD_MEM2_WS_ONE 0x10000000
538 #define fPCD_MEM2_WS_TWO 0x20000000
539 #define fPCD_MEM2_WS_THREE 0x30000000
540 #define fPCD_MEM2_16 0x40000000
541
542 #define PCD_MAX_MEMORY 2
543 #define PCD_MAX_IO 2
544
545 typedef struct PcCard_Resource_s {
546 PCCARD_DES PcCard_Header;
547 } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
548
549
550 /* CONFLICT_DETAILS.CD.ulMask constants */
551 #define CM_CDMASK_DEVINST 0x00000001
552 #define CM_CDMASK_RESDES 0x00000002
553 #define CM_CDMASK_FLAGS 0x00000004
554 #define CM_CDMASK_DESCRIPTION 0x00000008
555 #define CM_CDMASK_VALID 0x0000000F
556
557 /* CONFLICT_DETAILS.CD.ulFlags constants */
558 #define CM_CDFLAGS_DRIVER 0x00000001
559 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
560 #define CM_CDFLAGS_RESERVED 0x00000004
561
562 typedef struct _CONFLICT_DETAILS_A {
563 ULONG CD_ulSize;
564 ULONG CD_ulMask;
565 DEVINST CD_dnDevInst;
566 RES_DES CD_rdResDes;
567 ULONG CD_ulFlags;
568 CHAR CD_szDescription[MAX_PATH];
569 } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
570
571 typedef struct _CONFLICT_DETAILS_W {
572 ULONG CD_ulSize;
573 ULONG CD_ulMask;
574 DEVINST CD_dnDevInst;
575 RES_DES CD_rdResDes;
576 ULONG CD_ulFlags;
577 WCHAR CD_szDescription[MAX_PATH];
578 } CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
579
580 #ifdef UNICODE
581 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
582 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
583 #else
584 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
585 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
586 #endif
587
588
589
590 /* FIXME: Missing CMP_Init_Detection */
591 /* FIXME: Missing CMP_RegisterNotification */
592 /* FIXME: Missing CMP_Report_LogOn */
593 /* FIXME: Missing CMP_UnregisterNotification */
594 /* FIXME: Missing CMP_WaitNoPendingInstallEvents */
595 /* FIXME: Missing CMP_WaitServicesAvailable */
596
597 /* CM_Add_Empty_Log_Conf.ulFlags constants */
598 #define PRIORITY_EQUAL_FIRST 0x00000008
599 #define PRIORITY_EQUAL_LAST 0x00000000
600 #define PRIORITY_BIT 0x00000008
601
602 CMAPI
603 CONFIGRET
604 WINAPI
605 CM_Add_Empty_Log_Conf(
606 OUT PLOG_CONF plcLogConf,
607 IN DEVINST dnDevInst,
608 IN PRIORITY Priority,
609 IN ULONG ulFlags);
610
611 CMAPI
612 CONFIGRET
613 WINAPI
614 CM_Add_Empty_Log_Conf_Ex(
615 OUT PLOG_CONF plcLogConf,
616 IN DEVINST dnDevInst,
617 IN PRIORITY Priority,
618 IN ULONG ulFlags,
619 IN HMACHINE hMachine);
620
621 /* CM_Add_ID.ulFlags constants */
622 #define CM_ADD_ID_HARDWARE 0x00000000
623 #define CM_ADD_ID_COMPATIBLE 0x00000001
624 #define CM_ADD_ID_BITS 0x00000001
625
626 CMAPI
627 CONFIGRET
628 WINAPI
629 CM_Add_IDA(
630 IN DEVINST dnDevInst,
631 IN PSTR pszID,
632 IN ULONG ulFlags,
633 IN HMACHINE hMachine);
634
635 CMAPI
636 CONFIGRET
637 WINAPI
638 CM_Add_ID_ExA(
639 IN DEVINST dnDevInst,
640 IN PSTR pszID,
641 IN ULONG ulFlags,
642 IN HMACHINE hMachine);
643
644 CMAPI
645 CONFIGRET
646 WINAPI
647 CM_Add_ID_ExW(
648 IN DEVINST dnDevInst,
649 IN PWSTR pszID,
650 IN ULONG ulFlags,
651 IN HMACHINE hMachine);
652
653 CMAPI
654 CONFIGRET
655 WINAPI
656 CM_Add_IDW(
657 IN DEVINST dnDevInst,
658 IN PWSTR pszID,
659 IN ULONG ulFlags,
660 IN HMACHINE hMachine);
661
662 #ifdef UNICODE
663 #define CM_Add_ID CM_Add_IDW
664 #define CM_Add_ID_Ex CM_Add_ID_ExW
665 #else
666 #define CM_Add_ID CM_Add_IDA
667 #define CM_Add_ID_Ex CM_Add_ID_ExA
668 #endif /* UNICODE */
669
670 /* FIXME: Obsolete CM_Add_Range */
671
672 CMAPI
673 CONFIGRET
674 WINAPI
675 CM_Add_Res_Des(
676 OUT PRES_DES prdResDes,
677 IN LOG_CONF lcLogConf,
678 IN RESOURCEID ResourceID,
679 IN PCVOID ResourceData,
680 IN ULONG ResourceLen,
681 IN ULONG ulFlags);
682
683 CMAPI
684 CONFIGRET
685 WINAPI
686 CM_Add_Res_Des_Ex(
687 OUT PRES_DES prdResDes,
688 IN LOG_CONF lcLogConf,
689 IN RESOURCEID ResourceID,
690 IN PCVOID ResourceData,
691 IN ULONG ResourceLen,
692 IN ULONG ulFlags,
693 IN HMACHINE hMachine);
694
695 CMAPI
696 CONFIGRET
697 WINAPI
698 CM_Connect_MachineA(
699 IN PCSTR UNCServerName,
700 OUT PHMACHINE phMachine);
701
702 CMAPI
703 CONFIGRET
704 WINAPI
705 CM_Connect_MachineW(
706 IN PCWSTR UNCServerName,
707 OUT PHMACHINE phMachine);
708
709 #ifdef UNICODE
710 #define CM_Connect_Machine CM_Connect_MachineW
711 #else
712 #define CM_Connect_Machine CM_Connect_MachineA
713 #endif /* UNICODE */
714
715 /* FIXME: Obsolete CM_Create_DevNode */
716 /* FIXME: Obsolete CM_Create_DevNodeEx */
717 /* FIXME: Obsolete CM_Create_Range_List */
718
719 /* Flags for CM_Delete_Class_Key.ulFlags constants */
720 #define CM_DELETE_CLASS_ONLY 0x00000000
721 #define CM_DELETE_CLASS_SUBKEYS 0x00000001
722 #define CM_DELETE_CLASS_BITS 0x00000001
723
724 CMAPI
725 CONFIGRET
726 WINAPI
727 CM_Delete_Class_Key(
728 IN LPGUID ClassGuid,
729 IN ULONG ulFlags);
730
731 CMAPI
732 CONFIGRET
733 WINAPI
734 CM_Delete_Class_Key_Ex(
735 IN LPGUID ClassGuid,
736 IN ULONG ulFlags,
737 IN HANDLE hMachine);
738
739 /* FIXME: Obsolete CM_Delete_DevNode_Key */
740 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
741 /* FIXME: Obsolete CM_Delete_Range */
742 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
743 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
744 /* FIXME: Obsolete CM_Disable_DevNode */
745 /* FIXME: Obsolete CM_Disable_DevNodeEx */
746
747 CMAPI
748 CONFIGRET
749 WINAPI
750 CM_Disconnect_Machine(
751 IN HMACHINE hMachine);
752
753 /* FIXME: Obsolete CM_Enable_DevNode */
754 /* FIXME: Obsolete CM_Enable_DevNodeEx */
755
756 CMAPI
757 CONFIGRET
758 WINAPI
759 CM_Enumerate_Classes(
760 IN ULONG ulClassIndex,
761 OUT LPGUID ClassGuid,
762 IN ULONG ulFlags);
763
764 CMAPI
765 CONFIGRET
766 WINAPI
767 CM_Enumerate_Classes_Ex(
768 IN ULONG ulClassIndex,
769 OUT LPGUID ClassGuid,
770 IN ULONG ulFlags,
771 IN HMACHINE hMachine);
772
773 CMAPI
774 CONFIGRET
775 WINAPI
776 CM_Enumerate_EnumeratorsA(
777 IN ULONG ulEnumIndex,
778 OUT PCHAR Buffer,
779 IN OUT PULONG pulLength,
780 IN ULONG ulFlags);
781
782 CMAPI
783 CONFIGRET
784 WINAPI
785 CM_Enumerate_Enumerators_ExA(
786 IN ULONG ulEnumIndex,
787 OUT PCHAR Buffer,
788 IN OUT PULONG pulLength,
789 IN ULONG ulFlags,
790 IN HMACHINE hMachine);
791
792 CMAPI
793 CONFIGRET
794 WINAPI
795 CM_Enumerate_Enumerators_ExW(
796 IN ULONG ulEnumIndex,
797 OUT PWCHAR Buffer,
798 IN OUT PULONG pulLength,
799 IN ULONG ulFlags,
800 IN HMACHINE hMachine);
801
802 CMAPI
803 CONFIGRET
804 WINAPI
805 CM_Enumerate_EnumeratorsW(
806 IN ULONG ulEnumIndex,
807 OUT PWCHAR Buffer,
808 IN OUT PULONG pulLength,
809 IN ULONG ulFlags);
810
811 #ifdef UNICODE
812 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
813 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
814 #else
815 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
816 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
817 #endif /* UNICODE */
818
819 /* FIXME: Obsolete CM_Find_Range */
820 /* FIXME: Obsolete CM_First_Range */
821
822 CMAPI
823 CONFIGRET
824 WINAPI
825 CM_Free_Log_Conf(
826 IN LOG_CONF lcLogConfToBeFreed,
827 IN ULONG ulFlags);
828
829 CMAPI
830 CONFIGRET
831 WINAPI
832 CM_Free_Log_Conf_Ex(
833 IN LOG_CONF lcLogConfToBeFreed,
834 IN ULONG ulFlags,
835 IN HMACHINE hMachine);
836
837 CMAPI
838 CONFIGRET
839 WINAPI
840 CM_Free_Log_Conf_Handle(
841 IN LOG_CONF lcLogConf);
842
843 /* FIXME: Obsolete CM_Free_Range_List */
844
845 CMAPI
846 CONFIGRET
847 WINAPI
848 CM_Free_Res_Des(
849 OUT PRES_DES prdResDes,
850 IN RES_DES rdResDes,
851 IN ULONG ulFlags);
852
853 CMAPI
854 CONFIGRET
855 WINAPI
856 CM_Free_Res_Des_Ex(
857 OUT PRES_DES prdResDes,
858 IN RES_DES rdResDes,
859 IN ULONG ulFlags,
860 IN HMACHINE hMachine);
861
862 CMAPI
863 CONFIGRET
864 WINAPI
865 CM_Free_Res_Des_Handle(
866 IN RES_DES rdResDes);
867
868 CMAPI
869 CONFIGRET
870 WINAPI
871 CM_Free_Resource_Conflict_Handle(
872 IN CONFLICT_LIST clConflictList);
873
874 CMAPI
875 CONFIGRET
876 WINAPI
877 CM_Get_Child(
878 OUT PDEVINST pdnDevInst,
879 IN DEVINST dnDevInst,
880 IN ULONG ulFlags);
881
882 CMAPI
883 CONFIGRET
884 WINAPI
885 CM_Get_Child_Ex(
886 OUT PDEVINST pdnDevInst,
887 IN DEVINST dnDevInst,
888 IN ULONG ulFlags,
889 IN HMACHINE hMachine);
890
891 CMAPI
892 CONFIGRET
893 WINAPI
894 CM_Get_Class_NameA(
895 IN LPGUID ClassGuid,
896 OUT PCHAR Buffer,
897 IN OUT PULONG pulLength,
898 IN ULONG ulFlags);
899
900 CMAPI
901 CONFIGRET
902 WINAPI
903 CM_Get_Class_NameW(
904 IN LPGUID ClassGuid,
905 OUT PWCHAR Buffer,
906 IN OUT PULONG pulLength,
907 IN ULONG ulFlags);
908
909 CMAPI
910 CONFIGRET
911 WINAPI
912 CM_Get_Class_Name_ExA(
913 IN LPGUID ClassGuid,
914 OUT PCHAR Buffer,
915 IN OUT PULONG pulLength,
916 IN ULONG ulFlags,
917 IN HMACHINE hMachine);
918
919 CMAPI
920 CONFIGRET
921 WINAPI
922 CM_Get_Class_Name_ExW(
923 IN LPGUID ClassGuid,
924 OUT PWCHAR Buffer,
925 IN OUT PULONG pulLength,
926 IN ULONG ulFlags,
927 IN HMACHINE hMachine);
928
929 #ifdef UNICODE
930 #define CM_Get_Class_Name CM_Get_Class_NameW
931 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
932 #else
933 #define CM_Get_Class_Name CM_Get_Class_NameA
934 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
935 #endif /* UNICODE */
936
937 CMAPI
938 CONFIGRET
939 WINAPI
940 CM_Get_Class_Key_NameA(
941 IN LPGUID ClassGuid,
942 OUT LPSTR pszKeyName,
943 IN OUT PULONG pulLength,
944 IN ULONG ulFlags);
945
946 CMAPI
947 CONFIGRET
948 WINAPI
949 CM_Get_Class_Key_NameW(
950 IN LPGUID ClassGuid,
951 OUT LPWSTR pszKeyName,
952 IN OUT PULONG pulLength,
953 IN ULONG ulFlags);
954
955 CMAPI
956 CONFIGRET
957 WINAPI
958 CM_Get_Class_Key_Name_ExA(
959 IN LPGUID ClassGuid,
960 OUT LPSTR pszKeyName,
961 IN OUT PULONG pulLength,
962 IN ULONG ulFlags,
963 IN HMACHINE hMachine);
964
965 CMAPI
966 CONFIGRET
967 WINAPI
968 CM_Get_Class_Key_Name_ExW(
969 IN LPGUID ClassGuid,
970 OUT LPWSTR pszKeyName,
971 IN OUT PULONG pulLength,
972 IN ULONG ulFlags,
973 IN HMACHINE hMachine);
974
975 #ifdef UNICODE
976 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
977 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
978 #else
979 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
980 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
981 #endif /* UNICODE */
982
983 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
984
985 CMAPI
986 CONFIGRET
987 WINAPI
988 CM_Get_Depth(
989 OUT PULONG pulDepth,
990 IN DEVINST dnDevInst,
991 IN ULONG ulFlags);
992
993 CMAPI
994 CONFIGRET
995 WINAPI
996 CM_Get_Depth_Ex(
997 OUT PULONG pulDepth,
998 IN DEVINST dnDevInst,
999 IN ULONG ulFlags,
1000 IN HMACHINE hMachine);
1001
1002 CMAPI
1003 CONFIGRET
1004 WINAPI
1005 CM_Get_Device_IDA(
1006 IN DEVINST dnDevInst,
1007 OUT PCHAR Buffer,
1008 IN ULONG BufferLen,
1009 IN ULONG ulFlags);
1010
1011 CMAPI
1012 CONFIGRET
1013 WINAPI
1014 CM_Get_Device_ID_ExA(
1015 IN DEVINST dnDevInst,
1016 OUT PCHAR Buffer,
1017 IN ULONG BufferLen,
1018 IN ULONG ulFlags,
1019 IN HMACHINE hMachine);
1020
1021 CMAPI
1022 CONFIGRET
1023 WINAPI
1024 CM_Get_Device_ID_ExW(
1025 IN DEVINST dnDevInst,
1026 OUT PWCHAR Buffer,
1027 IN ULONG BufferLen,
1028 IN ULONG ulFlags,
1029 IN HMACHINE hMachine);
1030
1031 CMAPI
1032 CONFIGRET
1033 WINAPI
1034 CM_Get_Device_IDW(
1035 IN DEVINST dnDevInst,
1036 OUT PWCHAR Buffer,
1037 IN ULONG BufferLen,
1038 IN ULONG ulFlags);
1039
1040 #ifdef UNICODE
1041 #define CM_Get_Device_ID CM_Get_Device_IDW
1042 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1043 #else
1044 #define CM_Get_Device_ID CM_Get_Device_IDA
1045 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1046 #endif /* UNICODE */
1047
1048 CMAPI
1049 CONFIGRET
1050 WINAPI
1051 CM_Get_Device_ID_ListA(
1052 IN PCSTR pszFilter, OPTIONAL
1053 OUT PCHAR Buffer,
1054 IN ULONG BufferLen,
1055 IN ULONG ulFlags);
1056
1057 CMAPI
1058 CONFIGRET
1059 WINAPI
1060 CM_Get_Device_ID_List_ExA(
1061 IN PCSTR pszFilter, OPTIONAL
1062 OUT PCHAR Buffer,
1063 IN ULONG BufferLen,
1064 IN ULONG ulFlags,
1065 IN HMACHINE hMachine);
1066
1067 CMAPI
1068 CONFIGRET
1069 WINAPI
1070 CM_Get_Device_ID_List_ExW(
1071 IN PCWSTR pszFilter, OPTIONAL
1072 OUT PWCHAR Buffer,
1073 IN ULONG BufferLen,
1074 IN ULONG ulFlags,
1075 IN HMACHINE hMachine);
1076
1077 CMAPI
1078 CONFIGRET
1079 WINAPI
1080 CM_Get_Device_ID_ListW(
1081 IN PCWSTR pszFilter, OPTIONAL
1082 OUT PWCHAR Buffer,
1083 IN ULONG BufferLen,
1084 IN ULONG ulFlags);
1085
1086 #ifdef UNICODE
1087 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1088 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1089 #else
1090 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1091 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1092 #endif /* UNICODE */
1093
1094 CMAPI
1095 CONFIGRET
1096 WINAPI
1097 CM_Get_Device_ID_List_SizeA(
1098 OUT PULONG pulLen,
1099 IN PCSTR pszFilter, OPTIONAL
1100 IN ULONG ulFlags);
1101
1102 CMAPI
1103 CONFIGRET
1104 WINAPI
1105 CM_Get_Device_ID_List_Size_ExA(
1106 OUT PULONG pulLen,
1107 IN PCSTR pszFilter, OPTIONAL
1108 IN ULONG ulFlags,
1109 IN HMACHINE hMachine);
1110
1111 CMAPI
1112 CONFIGRET
1113 WINAPI
1114 CM_Get_Device_ID_List_Size_ExW(
1115 OUT PULONG pulLen,
1116 IN PCWSTR pszFilter, OPTIONAL
1117 IN ULONG ulFlags,
1118 IN HMACHINE hMachine);
1119
1120 CMAPI
1121 CONFIGRET
1122 WINAPI
1123 CM_Get_Device_ID_List_SizeW(
1124 OUT PULONG pulLen,
1125 IN PCWSTR pszFilter, OPTIONAL
1126 IN ULONG ulFlags);
1127
1128 #ifdef UNICODE
1129 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1130 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1131 #else
1132 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1133 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1134 #endif /* UNICODE */
1135
1136 CMAPI
1137 CONFIGRET
1138 WINAPI
1139 CM_Get_Device_ID_Size(
1140 OUT PULONG pulLen,
1141 IN DEVINST dnDevInst,
1142 IN ULONG ulFlags);
1143
1144 CMAPI
1145 CONFIGRET
1146 WINAPI
1147 CM_Get_Device_ID_Size_Ex(
1148 OUT PULONG pulLen,
1149 IN DEVINST dnDevInst,
1150 IN ULONG ulFlags,
1151 IN HMACHINE hMachine);
1152
1153 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1154 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1155 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1156 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1157 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1158 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1159 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1160 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1161
1162 CMAPI
1163 CONFIGRET
1164 WINAPI
1165 CM_Get_DevNode_Registry_PropertyA(
1166 IN DEVINST dnDevInst,
1167 IN ULONG ulProperty,
1168 OUT PULONG pulRegDataType, OPTIONAL
1169 OUT PVOID Buffer, OPTIONAL
1170 IN OUT PULONG pulLength,
1171 IN ULONG ulFlags);
1172
1173 CMAPI
1174 CONFIGRET
1175 WINAPI
1176 CM_Get_DevNode_Registry_PropertyW(
1177 IN DEVINST dnDevInst,
1178 IN ULONG ulProperty,
1179 OUT PULONG pulRegDataType, OPTIONAL
1180 OUT PVOID Buffer, OPTIONAL
1181 IN OUT PULONG pulLength,
1182 IN ULONG ulFlags);
1183
1184 CMAPI
1185 CONFIGRET
1186 WINAPI
1187 CM_Get_DevNode_Registry_Property_ExA(
1188 IN DEVINST dnDevInst,
1189 IN ULONG ulProperty,
1190 OUT PULONG pulRegDataType, OPTIONAL
1191 OUT PVOID Buffer, OPTIONAL
1192 IN OUT PULONG pulLength,
1193 IN ULONG ulFlags,
1194 IN HMACHINE hMachine);
1195
1196 CMAPI
1197 CONFIGRET
1198 WINAPI
1199 CM_Get_DevNode_Registry_Property_ExW(
1200 IN DEVINST dnDevInst,
1201 IN ULONG ulProperty,
1202 OUT PULONG pulRegDataType, OPTIONAL
1203 OUT PVOID Buffer, OPTIONAL
1204 IN OUT PULONG pulLength,
1205 IN ULONG ulFlags,
1206 IN HMACHINE hMachine);
1207
1208 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1209 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1210 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1211 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1212
1213 #ifdef UNICODE
1214 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1215 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1216 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1217 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1218 #else
1219 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1220 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1221 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1222 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1223 #endif /* UNICODE */
1224
1225 CMAPI
1226 CONFIGRET
1227 WINAPI
1228 CM_Get_DevNode_Status(
1229 OUT PULONG pulStatus,
1230 OUT PULONG pulProblemNumber,
1231 IN DEVINST dnDevInst,
1232 IN ULONG ulFlags);
1233
1234 CMAPI
1235 CONFIGRET
1236 WINAPI
1237 CM_Get_DevNode_Status_Ex(
1238 OUT PULONG pulStatus,
1239 OUT PULONG pulProblemNumber,
1240 IN DEVINST dnDevInst,
1241 IN ULONG ulFlags,
1242 IN HMACHINE hMachine);
1243
1244 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1245 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1246
1247 /* CM_Get_First_Log_Conf.ulFlags constants */
1248 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1249 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1250 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1251 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1252 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1253 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1254 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1255 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1256
1257 CMAPI
1258 CONFIGRET
1259 WINAPI
1260 CM_Get_First_Log_Conf(
1261 OUT PLOG_CONF plcLogConf, OPTIONAL
1262 IN DEVINST dnDevInst,
1263 IN ULONG ulFlags);
1264
1265 CMAPI
1266 CONFIGRET
1267 WINAPI
1268 CM_Get_First_Log_Conf_Ex(
1269 OUT PLOG_CONF plcLogConf, OPTIONAL
1270 IN DEVINST dnDevInst,
1271 IN ULONG ulFlags,
1272 IN HMACHINE hMachine);
1273
1274 CMAPI
1275 CONFIGRET
1276 WINAPI
1277 CM_Get_Global_State(
1278 OUT PULONG pulState,
1279 IN ULONG ulFlags);
1280
1281 CMAPI
1282 CONFIGRET
1283 WINAPI
1284 CM_Get_Global_State_Ex(
1285 OUT PULONG pulState,
1286 IN ULONG ulFlags,
1287 IN HMACHINE hMachine);
1288
1289 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1290 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1291 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1292 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1293
1294 CMAPI
1295 CONFIGRET
1296 WINAPI
1297 CM_Get_Log_Conf_Priority(
1298 IN LOG_CONF lcLogConf,
1299 OUT PPRIORITY pPriority,
1300 IN ULONG ulFlags);
1301
1302 CMAPI
1303 CONFIGRET
1304 WINAPI
1305 CM_Get_Log_Conf_Priority_Ex(
1306 IN LOG_CONF lcLogConf,
1307 OUT PPRIORITY pPriority,
1308 IN ULONG ulFlags,
1309 IN HMACHINE hMachine);
1310
1311 CMAPI
1312 CONFIGRET
1313 WINAPI
1314 CM_Get_Next_Log_Conf(
1315 OUT PLOG_CONF plcLogConf, OPTIONAL
1316 IN LOG_CONF lcLogConf,
1317 IN ULONG ulFlags);
1318
1319 CMAPI
1320 CONFIGRET
1321 WINAPI
1322 CM_Get_Next_Log_Conf_Ex(
1323 OUT PLOG_CONF plcLogConf, OPTIONAL
1324 IN LOG_CONF lcLogConf,
1325 IN ULONG ulFlags,
1326 IN HMACHINE hMachine);
1327
1328 CMAPI
1329 CONFIGRET
1330 WINAPI
1331 CM_Get_Next_Res_Des(
1332 OUT PRES_DES prdResDes,
1333 IN RES_DES rdResDes,
1334 IN RESOURCEID ForResource,
1335 OUT PRESOURCEID pResourceID,
1336 IN ULONG ulFlags);
1337
1338 CMAPI
1339 CONFIGRET
1340 WINAPI
1341 CM_Get_Next_Res_Des_Ex(
1342 OUT PRES_DES prdResDes,
1343 IN RES_DES rdResDes,
1344 IN RESOURCEID ForResource,
1345 OUT PRESOURCEID pResourceID,
1346 IN ULONG ulFlags,
1347 IN HMACHINE hMachine);
1348
1349 CMAPI
1350 CONFIGRET
1351 WINAPI
1352 CM_Get_Parent(
1353 OUT PDEVINST pdnDevInst,
1354 IN DEVINST dnDevInst,
1355 IN ULONG ulFlags);
1356
1357 CMAPI
1358 CONFIGRET
1359 WINAPI
1360 CM_Get_Parent_Ex(
1361 OUT PDEVINST pdnDevInst,
1362 IN DEVINST dnDevInst,
1363 IN ULONG ulFlags,
1364 IN HMACHINE hMachine);
1365
1366 CMAPI
1367 CONFIGRET
1368 WINAPI
1369 CM_Get_Res_Des_Data(
1370 IN RES_DES rdResDes,
1371 OUT PVOID Buffer,
1372 IN ULONG BufferLen,
1373 IN ULONG ulFlags);
1374
1375 CMAPI
1376 CONFIGRET
1377 WINAPI
1378 CM_Get_Res_Des_Data_Ex(
1379 IN RES_DES rdResDes,
1380 OUT PVOID Buffer,
1381 IN ULONG BufferLen,
1382 IN ULONG ulFlags,
1383 IN HMACHINE hMachine);
1384
1385 CMAPI
1386 CONFIGRET
1387 WINAPI
1388 CM_Get_Res_Des_Data_Size(
1389 OUT PULONG pulSize,
1390 IN RES_DES rdResDes,
1391 IN ULONG ulFlags);
1392
1393 CMAPI
1394 CONFIGRET
1395 WINAPI
1396 CM_Get_Res_Des_Data_Size_Ex(
1397 OUT PULONG pulSize,
1398 IN RES_DES rdResDes,
1399 IN ULONG ulFlags,
1400 IN HMACHINE hMachine);
1401
1402 CMAPI
1403 CONFIGRET
1404 WINAPI
1405 CM_Get_Resource_Conflict_Count(
1406 IN CONFLICT_LIST clConflictList,
1407 OUT PULONG pulCount);
1408
1409 CMAPI
1410 CONFIGRET
1411 WINAPI
1412 CM_Get_Resource_Conflict_DetailsA(
1413 IN CONFLICT_LIST clConflictList,
1414 IN ULONG ulIndex,
1415 IN OUT PCONFLICT_DETAILS_A pConflictDetails);
1416
1417 CMAPI
1418 CONFIGRET
1419 WINAPI
1420 CM_Get_Resource_Conflict_DetailsW(
1421 IN CONFLICT_LIST clConflictList,
1422 IN ULONG ulIndex,
1423 IN OUT PCONFLICT_DETAILS_W pConflictDetails);
1424
1425 #ifdef UNICODE
1426 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1427 #else
1428 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1429 #endif /* UNICODE */
1430
1431 CMAPI
1432 CONFIGRET
1433 WINAPI
1434 CM_Get_Sibling(
1435 OUT PDEVINST pdnDevInst,
1436 IN DEVINST DevInst,
1437 IN ULONG ulFlags);
1438
1439 CMAPI
1440 CONFIGRET
1441 WINAPI
1442 CM_Get_Sibling_Ex(
1443 OUT PDEVINST pdnDevInst,
1444 IN DEVINST DevInst,
1445 IN ULONG ulFlags,
1446 IN HMACHINE hMachine);
1447
1448 CMAPI
1449 WORD
1450 WINAPI
1451 CM_Get_Version(
1452 VOID);
1453
1454 CMAPI
1455 WORD
1456 WINAPI
1457 CM_Get_Version_Ex(
1458 IN HMACHINE hMachine);
1459
1460 /* FIXME: Obsolete CM_Intersect_Range_List */
1461 /* FIXME: Obsolete CM_Invert_Range_List */
1462
1463 CMAPI
1464 CONFIGRET
1465 WINAPI
1466 CM_Is_Dock_Station_Present(
1467 OUT PBOOL pbPresent);
1468
1469 CMAPI
1470 CONFIGRET
1471 WINAPI
1472 CM_Is_Dock_Station_Present_Ex(
1473 OUT PBOOL pbPresent,
1474 IN HMACHINE hMachine);
1475
1476 /* CM_Locate_DevNode.ulFlags constants */
1477 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1478 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1479 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1480 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1481 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1482
1483 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1484 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1485 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1486 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1487 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1488
1489 CMAPI
1490 CONFIGRET
1491 WINAPI
1492 CM_Locate_DevNodeA(
1493 OUT PDEVINST pdnDevInst,
1494 IN DEVINSTID_A pDeviceID, OPTIONAL
1495 IN ULONG ulFlags);
1496
1497 CMAPI
1498 CONFIGRET
1499 WINAPI
1500 CM_Locate_DevNode_ExA(
1501 OUT PDEVINST pdnDevInst,
1502 IN DEVINSTID_A pDeviceID, OPTIONAL
1503 IN ULONG ulFlags,
1504 IN HMACHINE hMachine);
1505
1506 CMAPI
1507 CONFIGRET
1508 WINAPI
1509 CM_Locate_DevNode_ExW(
1510 OUT PDEVINST pdnDevInst,
1511 IN DEVINSTID_W pDeviceID, OPTIONAL
1512 IN ULONG ulFlags,
1513 IN HMACHINE hMachine);
1514
1515 CMAPI
1516 CONFIGRET
1517 WINAPI
1518 CM_Locate_DevNodeW(
1519 OUT PDEVINST pdnDevInst,
1520 IN DEVINSTID_W pDeviceID, OPTIONAL
1521 IN ULONG ulFlags);
1522
1523 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1524 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1525 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1526 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1527
1528 #ifdef UNICODE
1529 #define CM_Locate_DevNode CM_Locate_DevNodeW
1530 #define CM_Locate_DevInst CM_Locate_DevNodeW
1531 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1532 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1533 #else
1534 #define CM_Locate_DevNode CM_Locate_DevNodeA
1535 #define CM_Locate_DevInst CM_Locate_DevNodeA
1536 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1537 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1538 #endif /* UNICODE */
1539
1540 /* FIXME: Obsolete CM_Merge_Range_List */
1541
1542 CMAPI
1543 CONFIGRET
1544 WINAPI
1545 CM_Modify_Res_Des(
1546 OUT PRES_DES prdResDes,
1547 IN RES_DES rdResDes,
1548 IN RESOURCEID ResourceID,
1549 IN PCVOID ResourceData,
1550 IN ULONG ResourceLen,
1551 IN ULONG ulFlags);
1552
1553 CMAPI
1554 CONFIGRET
1555 WINAPI
1556 CM_Modify_Res_Des_Ex(
1557 OUT PRES_DES prdResDes,
1558 IN RES_DES rdResDes,
1559 IN RESOURCEID ResourceID,
1560 IN PCVOID ResourceData,
1561 IN ULONG ResourceLen,
1562 IN ULONG ulFlags,
1563 IN HMACHINE hMachine);
1564
1565 /* FIXME: Obsolete CM_Move_DevNode */
1566 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1567 /* FIXME: Obsolete CM_Next_Range */
1568
1569 CMAPI
1570 CONFIGRET
1571 WINAPI
1572 CM_Open_Class_KeyA(
1573 IN LPGUID ClassGuid, OPTIONAL
1574 IN LPCSTR pszClassName, OPTIONAL
1575 IN REGSAM samDesired,
1576 IN REGDISPOSITION Disposition,
1577 OUT PHKEY phkClass,
1578 IN ULONG ulFlags);
1579
1580 CMAPI
1581 CONFIGRET
1582 WINAPI
1583 CM_Open_Class_KeyW(
1584 IN LPGUID ClassGuid, OPTIONAL
1585 IN LPCWSTR pszClassName, OPTIONAL
1586 IN REGSAM samDesired,
1587 IN REGDISPOSITION Disposition,
1588 OUT PHKEY phkClass,
1589 IN ULONG ulFlags);
1590
1591 CMAPI
1592 CONFIGRET
1593 WINAPI
1594 CM_Open_Class_Key_ExA(
1595 IN LPGUID pszClassGuid, OPTIONAL
1596 IN LPCSTR pszClassName, OPTIONAL
1597 IN REGSAM samDesired,
1598 IN REGDISPOSITION Disposition,
1599 OUT PHKEY phkClass,
1600 IN ULONG ulFlags,
1601 IN HMACHINE hMachine);
1602
1603 CMAPI
1604 CONFIGRET
1605 WINAPI
1606 CM_Open_Class_Key_ExW(
1607 IN LPGUID pszClassGuid, OPTIONAL
1608 IN LPCWSTR pszClassName, OPTIONAL
1609 IN REGSAM samDesired,
1610 IN REGDISPOSITION Disposition,
1611 OUT PHKEY phkClass,
1612 IN ULONG ulFlags,
1613 IN HMACHINE hMachine);
1614
1615 #ifdef UNICODE
1616 #define CM_Open_Class_Key CM_Open_Class_KeyW
1617 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
1618 #else
1619 #define CM_Open_Class_Key CM_Open_Class_KeyA
1620 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
1621 #endif /* UNICODE */
1622
1623 /* FIXME: Obsolete CM_Open_DevNode_Key */
1624 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1625
1626 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1627 #define CM_REMOVE_UI_OK 0x00000000
1628 #define CM_REMOVE_UI_NOT_OK 0x00000001
1629 #define CM_REMOVE_NO_RESTART 0x00000002
1630 #define CM_REMOVE_BITS 0x00000003
1631
1632 CMAPI
1633 CONFIGRET
1634 WINAPI
1635 CM_Query_And_Remove_SubTreeA(
1636 IN DEVINST dnAncestor,
1637 OUT PPNP_VETO_TYPE pVetoType,
1638 OUT LPSTR pszVetoName,
1639 IN ULONG ulNameLength,
1640 IN ULONG ulFlags);
1641
1642 CMAPI
1643 CONFIGRET
1644 WINAPI
1645 CM_Query_And_Remove_SubTreeW(
1646 IN DEVINST dnAncestor,
1647 OUT PPNP_VETO_TYPE pVetoType,
1648 OUT LPWSTR pszVetoName,
1649 IN ULONG ulNameLength,
1650 IN ULONG ulFlags);
1651
1652 CMAPI
1653 CONFIGRET
1654 WINAPI
1655 CM_Query_And_Remove_SubTree_ExA(
1656 IN DEVINST dnAncestor,
1657 OUT PPNP_VETO_TYPE pVetoType,
1658 OUT LPSTR pszVetoName,
1659 IN ULONG ulNameLength,
1660 IN ULONG ulFlags,
1661 IN HMACHINE hMachine);
1662
1663 CMAPI
1664 CONFIGRET
1665 WINAPI
1666 CM_Query_And_Remove_SubTree_ExW(
1667 IN DEVINST dnAncestor,
1668 OUT PPNP_VETO_TYPE pVetoType,
1669 OUT LPWSTR pszVetoName,
1670 IN ULONG ulNameLength,
1671 IN ULONG ulFlags,
1672 IN HMACHINE hMachine);
1673
1674 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1675 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1676 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1677 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1678 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1679 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1680 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1681
1682 CMAPI
1683 CONFIGRET
1684 WINAPI
1685 CM_Query_Resource_Conflict_List(
1686 OUT PCONFLICT_LIST pclConflictList,
1687 IN DEVINST dnDevInst,
1688 IN RESOURCEID ResourceID,
1689 IN PCVOID ResourceData,
1690 IN ULONG ResourceLen,
1691 IN ULONG ulFlags,
1692 IN HMACHINE hMachine);
1693
1694 /* CM_Reenumerate_DevNode.ulFlags constants */
1695 #define CM_REENUMERATE_NORMAL 0x00000000
1696 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1697 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1698 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1699 #define CM_REENUMERATE_BITS 0x00000007
1700
1701 CMAPI
1702 CONFIGRET
1703 WINAPI
1704 CM_Reenumerate_DevNode(
1705 IN DEVINST dnDevInst,
1706 IN ULONG ulFlags);
1707
1708 CMAPI
1709 CONFIGRET
1710 WINAPI
1711 CM_Reenumerate_DevNode_Ex(
1712 IN DEVINST dnDevInst,
1713 IN ULONG ulFlags,
1714 IN HMACHINE hMachine);
1715
1716 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1717 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1718
1719 /* FIXME: Obsolete CM_Register_Device_Driver */
1720 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1721 /* FIXME: Obsolete CM_Register_Device_Interface */
1722 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1723 /* FIXME: Obsolete CM_Remove_SubTree */
1724 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1725
1726 CMAPI
1727 CONFIGRET
1728 WINAPI
1729 CM_Request_Device_EjectA(
1730 IN DEVINST dnDevInst,
1731 OUT PPNP_VETO_TYPE pVetoType,
1732 OUT LPSTR pszVetoName,
1733 IN ULONG ulNameLength,
1734 IN ULONG ulFlags);
1735
1736 CMAPI
1737 CONFIGRET
1738 WINAPI
1739 CM_Request_Device_Eject_ExW(
1740 IN DEVINST dnDevInst,
1741 OUT PPNP_VETO_TYPE pVetoType,
1742 OUT LPWSTR pszVetoName,
1743 IN ULONG ulNameLength,
1744 IN ULONG ulFlags,
1745 IN HMACHINE hMachine);
1746
1747 CMAPI
1748 CONFIGRET
1749 WINAPI
1750 CM_Request_Device_Eject_ExA(
1751 IN DEVINST dnDevInst,
1752 OUT PPNP_VETO_TYPE pVetoType,
1753 OUT LPSTR pszVetoName,
1754 IN ULONG ulNameLength,
1755 IN ULONG ulFlags,
1756 IN HMACHINE hMachine);
1757
1758 CMAPI
1759 CONFIGRET
1760 WINAPI
1761 CM_Request_Device_EjectW(
1762 IN DEVINST dnDevInst,
1763 OUT PPNP_VETO_TYPE pVetoType,
1764 OUT LPWSTR pszVetoName,
1765 IN ULONG ulNameLength,
1766 IN ULONG ulFlags);
1767
1768 #ifdef UNICODE
1769 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1770 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1771 #else
1772 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1773 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1774 #endif /* UNICODE */
1775
1776 /* FIXME: Obsolete CM_Request_Eject_PC */
1777 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1778 /* FIXME: Obsolete CM_Run_Detection */
1779 /* FIXME: Obsolete CM_Run_Detection_Ex */
1780 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1781 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1782 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1783
1784 CMAPI
1785 CONFIGRET
1786 WINAPI
1787 CM_Set_DevNode_Registry_PropertyA(
1788 IN DEVINST dnDevInst,
1789 IN ULONG ulProperty,
1790 IN PCVOID Buffer, OPTIONAL
1791 IN ULONG ulLength,
1792 IN ULONG ulFlags);
1793
1794 CMAPI
1795 CONFIGRET
1796 WINAPI
1797 CM_Set_DevNode_Registry_PropertyW(
1798 IN DEVINST dnDevInst,
1799 IN ULONG ulProperty,
1800 IN PCVOID Buffer, OPTIONAL
1801 IN ULONG ulLength,
1802 IN ULONG ulFlags);
1803
1804 CMAPI
1805 CONFIGRET
1806 WINAPI
1807 CM_Set_DevNode_Registry_Property_ExA(
1808 IN DEVINST dnDevInst,
1809 IN ULONG ulProperty,
1810 IN PCVOID Buffer, OPTIONAL
1811 IN ULONG ulLength,
1812 IN ULONG ulFlags,
1813 IN HMACHINE hMachine);
1814
1815 CMAPI
1816 CONFIGRET
1817 WINAPI
1818 CM_Set_DevNode_Registry_Property_ExW(
1819 IN DEVINST dnDevInst,
1820 IN ULONG ulProperty,
1821 IN PCVOID Buffer, OPTIONAL
1822 IN ULONG ulLength,
1823 IN ULONG ulFlags,
1824 IN HMACHINE hMachine);
1825
1826 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
1827 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
1828 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
1829 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
1830
1831 #ifdef UNICODE
1832 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
1833 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1834 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
1835 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1836 #else
1837 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
1838 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1839 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
1840 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1841 #endif /* UNICODE */
1842
1843 /* FIXME: Obsolete CM_Set_HW_Prof */
1844 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1845 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1846 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1847 /* FIXME: Obsolete CM_Setup_DevNode */
1848 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1849 /* FIXME: Obsolete CM_Test_Range_Available */
1850 /* FIXME: Obsolete CM_Uninstall_DevNode */
1851 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1852 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1853 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1854
1855 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1856
1857 CMAPI
1858 DWORD
1859 WINAPI
1860 CMP_WaitNoPendingInstallEvents(
1861 IN DWORD dwTimeout);
1862
1863 #include <poppack.h>
1864
1865 #ifdef __cplusplus
1866 }
1867 #endif
1868
1869 #endif /* __CFGMGR32_H */