comparison fuhtark_test/include/ddk/cfgmgr32.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
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 #include "cfg.h"
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #if defined(_CFGMGR32_)
33 #define CMAPI
34 #else
35 #define CMAPI DECLSPEC_IMPORT
36 #endif
37
38 #include <pshpack1.h>
39
40 #define CR_SUCCESS 0x00000000
41 #define CR_DEFAULT 0x00000001
42 #define CR_OUT_OF_MEMORY 0x00000002
43 #define CR_INVALID_POINTER 0x00000003
44 #define CR_INVALID_FLAG 0x00000004
45 #define CR_INVALID_DEVNODE 0x00000005
46 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
47 #define CR_INVALID_RES_DES 0x00000006
48 #define CR_INVALID_LOG_CONF 0x00000007
49 #define CR_INVALID_ARBITRATOR 0x00000008
50 #define CR_INVALID_NODELIST 0x00000009
51 #define CR_DEVNODE_HAS_REQS 0x0000000A
52 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
53 #define CR_INVALID_RESOURCEID 0x0000000B
54 #define CR_DLVXD_NOT_FOUND 0x0000000C
55 #define CR_NO_SUCH_DEVNODE 0x0000000D
56 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
57 #define CR_NO_MORE_LOG_CONF 0x0000000E
58 #define CR_NO_MORE_RES_DES 0x0000000F
59 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
60 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
61 #define CR_INVALID_RANGE_LIST 0x00000011
62 #define CR_INVALID_RANGE 0x00000012
63 #define CR_FAILURE 0x00000013
64 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
65 #define CR_CREATE_BLOCKED 0x00000015
66 #define CR_NOT_SYSTEM_VM 0x00000016
67 #define CR_REMOVE_VETOED 0x00000017
68 #define CR_APM_VETOED 0x00000018
69 #define CR_INVALID_LOAD_TYPE 0x00000019
70 #define CR_BUFFER_SMALL 0x0000001A
71 #define CR_NO_ARBITRATOR 0x0000001B
72 #define CR_NO_REGISTRY_HANDLE 0x0000001C
73 #define CR_REGISTRY_ERROR 0x0000001D
74 #define CR_INVALID_DEVICE_ID 0x0000001E
75 #define CR_INVALID_DATA 0x0000001F
76 #define CR_INVALID_API 0x00000020
77 #define CR_DEVLOADER_NOT_READY 0x00000021
78 #define CR_NEED_RESTART 0x00000022
79 #define CR_NO_MORE_HW_PROFILES 0x00000023
80 #define CR_DEVICE_NOT_THERE 0x00000024
81 #define CR_NO_SUCH_VALUE 0x00000025
82 #define CR_WRONG_TYPE 0x00000026
83 #define CR_INVALID_PRIORITY 0x00000027
84 #define CR_NOT_DISABLEABLE 0x00000028
85 #define CR_FREE_RESOURCES 0x00000029
86 #define CR_QUERY_VETOED 0x0000002A
87 #define CR_CANT_SHARE_IRQ 0x0000002B
88 #define CR_NO_DEPENDENT 0x0000002C
89 #define CR_SAME_RESOURCES 0x0000002D
90 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
91 #define CR_INVALID_MACHINENAME 0x0000002F
92 #define CR_REMOTE_COMM_FAILURE 0x00000030
93 #define CR_MACHINE_UNAVAILABLE 0x00000031
94 #define CR_NO_CM_SERVICES 0x00000032
95 #define CR_ACCESS_DENIED 0x00000033
96 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
97 #define CR_INVALID_PROPERTY 0x00000035
98 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
99 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
100 #define CR_INVALID_REFERENCE_STRING 0x00000038
101 #define CR_INVALID_CONFLICT_LIST 0x00000039
102 #define CR_INVALID_INDEX 0x0000003A
103 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
104
105 #define RegDisposition_OpenAlways 0x00000000
106 #define RegDisposition_OpenExisting 0x00000001
107 #define RegDisposition_Bits 0x00000001
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 #define CM_REGISTRY_HARDWARE 0x00000000
228 #define CM_REGISTRY_SOFTWARE 0x00000001
229 #define CM_REGISTRY_USER 0x00000100
230 #define CM_REGISTRY_CONFIG 0x00000200
231 #define CM_REGISTRY_BITS 0x00000301
232
233
234 typedef struct BusNumber_Des_s {
235 DWORD BUSD_Count;
236 DWORD BUSD_Type;
237 DWORD BUSD_Flags;
238 ULONG BUSD_Alloc_Base;
239 ULONG BUSD_Alloc_End;
240 } BUSNUMBER_DES, *PBUSNUMBER_DES;
241
242 typedef struct BusNumber_Range_s {
243 ULONG BUSR_Min;
244 ULONG BUSR_Max;
245 ULONG BUSR_nBusNumbers;
246 ULONG BUSR_Flags;
247 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
248
249 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
250
251 typedef struct BusNumber_Resource_s {
252 BUSNUMBER_DES BusNumber_Header;
253 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
254 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
255
256 typedef struct CS_Des_s {
257 DWORD CSD_SignatureLength;
258 DWORD CSD_LegacyDataOffset;
259 DWORD CSD_LegacyDataSize;
260 DWORD CSD_Flags;
261 GUID CSD_ClassGuid;
262 BYTE CSD_Signature[ANYSIZE_ARRAY];
263 } CS_DES, *PCS_DES;
264
265 typedef struct CS_Resource_s {
266 CS_DES CS_Header;
267 } CS_RESOURCE, *PCS_RESOURCE;
268
269 typedef struct DevPrivate_Des_s {
270 DWORD PD_Count;
271 DWORD PD_Type;
272 DWORD PD_Data1;
273 DWORD PD_Data2;
274 DWORD PD_Data3;
275 DWORD PD_Flags;
276 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
277
278 typedef struct DevPrivate_Range_s {
279 DWORD PR_Data1;
280 DWORD PR_Data2;
281 DWORD PR_Data3;
282 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
283
284 #define PType_Range sizeof(DEVPRIVATE_RANGE)
285
286 typedef struct DevPrivate_Resource_s {
287 DEVPRIVATE_DES PRV_Header;
288 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
289 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
290
291 /* DMA_DES.DD_Flags constants and masks */
292 #define mDD_Width 0x3
293 #define fDD_BYTE 0x0
294 #define fDD_WORD 0x1
295 #define fDD_DWORD 0x2
296 #define fDD_BYTE_AND_WORD 0x3
297
298 #define mDD_BusMaster 0x4
299 #define fDD_NoBusMaster 0x0
300 #define fDD_BusMaster 0x4
301
302 #define mDD_Type 0x18
303 #define fDD_TypeStandard 0x00
304 #define fDD_TypeA 0x08
305 #define fDD_TypeB 0x10
306 #define fDD_TypeF 0x18
307
308 typedef struct DMA_Des_s {
309 DWORD DD_Count;
310 DWORD DD_Type;
311 DWORD DD_Flags;
312 ULONG DD_Alloc_Chan;
313 } DMA_DES, *PDMA_DES;
314
315 typedef struct DMA_Range_s {
316 ULONG DR_Min;
317 ULONG DR_Max;
318 ULONG DR_Flags;
319 } DMA_RANGE, *PDMA_RANGE;
320
321 #define DType_Range sizeof(DMA_RANGE)
322
323 typedef struct DMA_Resource_s {
324 DMA_DES DMA_Header;
325 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
326 } DMA_RESOURCE, *PDMA_RESOURCE;
327
328 /* IO_DES.Type constants and masks */
329 #define fIOD_PortType 0x1
330 #define fIOD_Memory 0x0
331 #define fIOD_IO 0x1
332 #define fIOD_DECODE 0x00fc
333 #define fIOD_10_BIT_DECODE 0x0004
334 #define fIOD_12_BIT_DECODE 0x0008
335 #define fIOD_16_BIT_DECODE 0x0010
336 #define fIOD_POSITIVE_DECODE 0x0020
337 #define fIOD_PASSIVE_DECODE 0x0040
338 #define fIOD_WINDOW_DECODE 0x0080
339
340 typedef struct IO_Des_s {
341 DWORD IOD_Count;
342 DWORD IOD_Type;
343 DWORDLONG IOD_Alloc_Base;
344 DWORDLONG IOD_Alloc_End;
345 DWORD IOD_DesFlags;
346 } IO_DES, *PIO_DES;
347
348 /* IO_RANGE.IOR_Alias constants */
349 #define IO_ALIAS_10_BIT_DECODE 0x00000004
350 #define IO_ALIAS_12_BIT_DECODE 0x00000010
351 #define IO_ALIAS_16_BIT_DECODE 0x00000000
352 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
353
354 typedef struct IO_Range_s {
355 DWORDLONG IOR_Align;
356 DWORD IOR_nPorts;
357 DWORDLONG IOR_Min;
358 DWORDLONG IOR_Max;
359 DWORD IOR_RangeFlags;
360 DWORDLONG IOR_Alias;
361 } IO_RANGE, *PIO_RANGE;
362
363 #define IOType_Range sizeof(IO_RANGE)
364
365 typedef struct IO_Resource_s {
366 IO_DES IO_Header;
367 IO_RANGE IO_Data[ANYSIZE_ARRAY];
368 } IO_RESOURCE, *PIO_RESOURCE;
369
370 /* IRQ_DES.IRQD_flags constants */
371 #define mIRQD_Share 0x1
372 #define fIRQD_Exclusive 0x0
373 #define fIRQD_Share 0x1
374
375 #define fIRQD_Share_Bit 0
376 #define fIRQD_Level_Bit 1
377
378 #define mIRQD_Edge_Level 0x2
379 #define fIRQD_Level 0x0
380 #define fIRQD_Edge 0x2
381
382 typedef struct IRQ_Des_32_s {
383 DWORD IRQD_Count;
384 DWORD IRQD_Type;
385 DWORD IRQD_Flags;
386 ULONG IRQD_Alloc_Num;
387 ULONG32 IRQD_Affinity;
388 } IRQ_DES_32, *PIRQ_DES_32;
389
390 typedef struct IRQ_Des_64_s {
391 DWORD IRQD_Count;
392 DWORD IRQD_Type;
393 DWORD IRQD_Flags;
394 ULONG IRQD_Alloc_Num;
395 ULONG64 IRQD_Affinity;
396 } IRQ_DES_64, *PIRQ_DES_64;
397
398 #ifdef _WIN64
399 typedef IRQ_DES_64 IRQ_DES;
400 typedef PIRQ_DES_64 PIRQ_DES;
401 #else
402 typedef IRQ_DES_32 IRQ_DES;
403 typedef PIRQ_DES_32 PIRQ_DES;
404 #endif
405
406 typedef struct IRQ_Range_s {
407 ULONG IRQR_Min;
408 ULONG IRQR_Max;
409 ULONG IRQR_Flags;
410 } IRQ_RANGE, *PIRQ_RANGE;
411
412 #define IRQType_Range sizeof(IRQ_RANGE)
413
414 typedef struct IRQ_Resource_s {
415 IRQ_DES IRQ_Header;
416 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
417 } IRQ_RESOURCE, *PIRQ_RESOURCE;
418
419 /* MEM_DES.MD_Flags constants */
420 #define mMD_MemoryType 0x1
421 #define fMD_MemoryType mMD_MemoryType
422 #define fMD_ROM 0x0
423 #define fMD_RAM 0x1
424
425 #define mMD_32_24 0x2
426 #define fMD_32_24 mMD_32_24
427 #define fMD_24 0x0
428 #define fMD_32 0x2
429
430 #define mMD_Prefetchable 0x4
431 #define fMD_Prefetchable mMD_Prefetchable
432 #define fMD_Pref mMD_Prefetchable
433 #define fMD_PrefetchDisallowed 0x0
434 #define fMD_PrefetchAllowed 0x4
435
436 #define mMD_Readable 0x8
437 #define fMD_Readable mMD_Readable
438 #define fMD_ReadAllowed 0x0
439 #define fMD_ReadDisallowed 0x8
440
441 #define mMD_CombinedWrite 0x10
442 #define fMD_CombinedWrite mMD_CombinedWrite
443 #define fMD_CombinedWriteDisallowed 0x0
444 #define fMD_CombinedWriteAllowed 0x10
445
446 #define mMD_Cacheable 0x20
447 #define fMD_NonCacheable 0x0
448 #define fMD_Cacheable 0x20
449
450 typedef struct Mem_Des_s {
451 DWORD MD_Count;
452 DWORD MD_Type;
453 DWORDLONG MD_Alloc_Base;
454 DWORDLONG MD_Alloc_End;
455 DWORD MD_Flags;
456 DWORD MD_Reserved;
457 } MEM_DES, *PMEM_DES;
458
459 typedef struct Mem_Range_s {
460 DWORDLONG MR_Align;
461 ULONG MR_nBytes;
462 DWORDLONG MR_Min;
463 DWORDLONG MR_Max;
464 DWORD MR_Flags;
465 DWORD MR_Reserved;
466 } MEM_RANGE, *PMEM_RANGE;
467
468 #define MType_Range sizeof(MEM_RANGE)
469
470 typedef struct Mem_Resource_s {
471 MEM_DES MEM_Header;
472 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
473 } MEM_RESOURCE, *PMEM_RESOURCE;
474
475 /* MFCARD_DES.PMF_Flags constants */
476 #define fPMF_AUDIO_ENABLE 0x8
477 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
478
479 typedef struct MfCard_Des_s {
480 DWORD PMF_Count;
481 DWORD PMF_Type;
482 DWORD PMF_Flags;
483 BYTE PMF_ConfigOptions;
484 BYTE PMF_IoResourceIndex;
485 BYTE PMF_Reserved[2];
486 DWORD PMF_ConfigRegisterBase;
487 } MFCARD_DES, *PMFCARD_DES;
488
489 typedef struct MfCard_Resource_s {
490 MFCARD_DES MfCard_Header;
491 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
492
493 /* PCCARD_DES.PCD_Flags constants */
494
495 typedef struct PcCard_Des_s {
496 DWORD PCD_Count;
497 DWORD PCD_Type;
498 DWORD PCD_Flags;
499 BYTE PCD_ConfigIndex;
500 BYTE PCD_Reserved[3];
501 DWORD PCD_MemoryCardBase1;
502 DWORD PCD_MemoryCardBase2;
503 } PCCARD_DES, *PPCCARD_DES;
504
505 #define mPCD_IO_8_16 0x1
506 #define fPCD_IO_8 0x0
507 #define fPCD_IO_16 0x1
508 #define mPCD_MEM_8_16 0x2
509 #define fPCD_MEM_8 0x0
510 #define fPCD_MEM_16 0x2
511 #define mPCD_MEM_A_C 0xC
512 #define fPCD_MEM1_A 0x4
513 #define fPCD_MEM2_A 0x8
514 #define fPCD_IO_ZW_8 0x10
515 #define fPCD_IO_SRC_16 0x20
516 #define fPCD_IO_WS_16 0x40
517 #define mPCD_MEM_WS 0x300
518 #define fPCD_MEM_WS_ONE 0x100
519 #define fPCD_MEM_WS_TWO 0x200
520 #define fPCD_MEM_WS_THREE 0x300
521
522 #define fPCD_MEM_A 0x4
523
524 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
525
526 #define fPCD_IO1_16 0x00010000
527 #define fPCD_IO1_ZW_8 0x00020000
528 #define fPCD_IO1_SRC_16 0x00040000
529 #define fPCD_IO1_WS_16 0x00080000
530
531 #define fPCD_IO2_16 0x00100000
532 #define fPCD_IO2_ZW_8 0x00200000
533 #define fPCD_IO2_SRC_16 0x00400000
534 #define fPCD_IO2_WS_16 0x00800000
535
536 #define mPCD_MEM1_WS 0x03000000
537 #define fPCD_MEM1_WS_ONE 0x01000000
538 #define fPCD_MEM1_WS_TWO 0x02000000
539 #define fPCD_MEM1_WS_THREE 0x03000000
540 #define fPCD_MEM1_16 0x04000000
541
542 #define mPCD_MEM2_WS 0x30000000
543 #define fPCD_MEM2_WS_ONE 0x10000000
544 #define fPCD_MEM2_WS_TWO 0x20000000
545 #define fPCD_MEM2_WS_THREE 0x30000000
546 #define fPCD_MEM2_16 0x40000000
547
548 #define PCD_MAX_MEMORY 2
549 #define PCD_MAX_IO 2
550
551 typedef struct PcCard_Resource_s {
552 PCCARD_DES PcCard_Header;
553 } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
554
555
556 /* CONFLICT_DETAILS.CD.ulMask constants */
557 #define CM_CDMASK_DEVINST 0x00000001
558 #define CM_CDMASK_RESDES 0x00000002
559 #define CM_CDMASK_FLAGS 0x00000004
560 #define CM_CDMASK_DESCRIPTION 0x00000008
561 #define CM_CDMASK_VALID 0x0000000F
562
563 /* CONFLICT_DETAILS.CD.ulFlags constants */
564 #define CM_CDFLAGS_DRIVER 0x00000001
565 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
566 #define CM_CDFLAGS_RESERVED 0x00000004
567
568 typedef struct _CONFLICT_DETAILS_A {
569 ULONG CD_ulSize;
570 ULONG CD_ulMask;
571 DEVINST CD_dnDevInst;
572 RES_DES CD_rdResDes;
573 ULONG CD_ulFlags;
574 CHAR CD_szDescription[MAX_PATH];
575 } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
576
577 typedef struct _CONFLICT_DETAILS_W {
578 ULONG CD_ulSize;
579 ULONG CD_ulMask;
580 DEVINST CD_dnDevInst;
581 RES_DES CD_rdResDes;
582 ULONG CD_ulFlags;
583 WCHAR CD_szDescription[MAX_PATH];
584 } CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
585
586 #ifdef UNICODE
587 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS;
588 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS;
589 #else
590 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS;
591 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS;
592 #endif
593
594
595 #define CMP_MAGIC 0x01234567
596
597
598 CMAPI
599 CONFIGRET
600 WINAPI
601 CMP_Init_Detection(
602 IN DWORD dwMagic);
603
604 CMAPI
605 CONFIGRET
606 WINAPI
607 CMP_RegisterNotification(
608 IN HANDLE hRecipient,
609 IN LPVOID lpvNotificationFilter,
610 IN DWORD dwFlags,
611 OUT PULONG pluhDevNotify);
612
613 CMAPI
614 CONFIGRET
615 WINAPI
616 CMP_Report_LogOn(
617 IN DWORD dwMagic,
618 IN DWORD dwProcessId);
619
620 CMAPI
621 CONFIGRET
622 WINAPI
623 CMP_UnregisterNotification(IN ULONG luhDevNotify);
624
625 /* FIXME: Missing CMP_WaitNoPendingInstallEvents */
626 /* FIXME: Missing CMP_WaitServicesAvailable */
627
628 /* CM_Add_Empty_Log_Conf.ulFlags constants */
629 #define BASIC_LOG_CONF 0x00000000
630 #define FILTERED_LOG_CONF 0x00000001
631 #define ALLOC_LOG_CONF 0x00000002
632 #define BOOT_LOG_CONF 0x00000003
633 #define FORCED_LOG_CONF 0x00000004
634 #define OVERRIDE_LOG_CONF 0x00000005
635 #define NUM_LOG_CONF 0x00000006
636 #define LOG_CONF_BITS 0x00000007
637
638 #define PRIORITY_EQUAL_FIRST 0x00000008
639 #define PRIORITY_EQUAL_LAST 0x00000000
640 #define PRIORITY_BIT 0x00000008
641
642 CMAPI
643 CONFIGRET
644 WINAPI
645 CM_Add_Empty_Log_Conf(
646 OUT PLOG_CONF plcLogConf,
647 IN DEVINST dnDevInst,
648 IN PRIORITY Priority,
649 IN ULONG ulFlags);
650
651 CMAPI
652 CONFIGRET
653 WINAPI
654 CM_Add_Empty_Log_Conf_Ex(
655 OUT PLOG_CONF plcLogConf,
656 IN DEVINST dnDevInst,
657 IN PRIORITY Priority,
658 IN ULONG ulFlags,
659 IN HMACHINE hMachine);
660
661 /* CM_Add_ID.ulFlags constants */
662 #define CM_ADD_ID_HARDWARE 0x00000000
663 #define CM_ADD_ID_COMPATIBLE 0x00000001
664 #define CM_ADD_ID_BITS 0x00000001
665
666 CMAPI
667 CONFIGRET
668 WINAPI
669 CM_Add_IDA(
670 IN DEVINST dnDevInst,
671 IN PSTR pszID,
672 IN ULONG ulFlags);
673
674 CMAPI
675 CONFIGRET
676 WINAPI
677 CM_Add_ID_ExA(
678 IN DEVINST dnDevInst,
679 IN PSTR pszID,
680 IN ULONG ulFlags,
681 IN HMACHINE hMachine);
682
683 CMAPI
684 CONFIGRET
685 WINAPI
686 CM_Add_ID_ExW(
687 IN DEVINST dnDevInst,
688 IN PWSTR pszID,
689 IN ULONG ulFlags,
690 IN HMACHINE hMachine);
691
692 CMAPI
693 CONFIGRET
694 WINAPI
695 CM_Add_IDW(
696 IN DEVINST dnDevInst,
697 IN PWSTR pszID,
698 IN ULONG ulFlags);
699
700 #ifdef UNICODE
701 #define CM_Add_ID CM_Add_IDW
702 #define CM_Add_ID_Ex CM_Add_ID_ExW
703 #else
704 #define CM_Add_ID CM_Add_IDA
705 #define CM_Add_ID_Ex CM_Add_ID_ExA
706 #endif /* UNICODE */
707
708 /* FIXME: Obsolete CM_Add_Range */
709
710 CMAPI
711 CONFIGRET
712 WINAPI
713 CM_Add_Res_Des(
714 OUT PRES_DES prdResDes,
715 IN LOG_CONF lcLogConf,
716 IN RESOURCEID ResourceID,
717 IN PCVOID ResourceData,
718 IN ULONG ResourceLen,
719 IN ULONG ulFlags);
720
721 CMAPI
722 CONFIGRET
723 WINAPI
724 CM_Add_Res_Des_Ex(
725 OUT PRES_DES prdResDes,
726 IN LOG_CONF lcLogConf,
727 IN RESOURCEID ResourceID,
728 IN PCVOID ResourceData,
729 IN ULONG ResourceLen,
730 IN ULONG ulFlags,
731 IN HMACHINE hMachine);
732
733 CMAPI
734 CONFIGRET
735 WINAPI
736 CM_Connect_MachineA(
737 IN PCSTR UNCServerName,
738 OUT PHMACHINE phMachine);
739
740 CMAPI
741 CONFIGRET
742 WINAPI
743 CM_Connect_MachineW(
744 IN PCWSTR UNCServerName,
745 OUT PHMACHINE phMachine);
746
747 #ifdef UNICODE
748 #define CM_Connect_Machine CM_Connect_MachineW
749 #else
750 #define CM_Connect_Machine CM_Connect_MachineA
751 #endif /* UNICODE */
752
753 /* Flags for CM_Create_DevNode[_Ex].ulFlags constants */
754 #define CM_CREATE_DEVNODE_NORMAL 0x00000000
755 #define CM_CREATE_DEVNODE_NO_WAIT_INSTALL 0x00000001
756 #define CM_CREATE_DEVNODE_PHANTOM 0x00000002
757 #define CM_CREATE_DEVNODE_GENERATE_ID 0x00000004
758 #define CM_CREATE_DEVNODE_DO_NOT_INSTALL 0x00000008
759 #define CM_CREATE_DEVNODE_BITS 0x0000000F
760
761 #define CM_CREATE_DEVINST_NORMAL CM_CREATE_DEVNODE_NORMAL
762 #define CM_CREATE_DEVINST_NO_WAIT_INSTALL CM_CREATE_DEVNODE_NO_WAIT_INSTALL
763 #define CM_CREATE_DEVINST_PHANTOM CM_CREATE_DEVNODE_PHANTOM
764 #define CM_CREATE_DEVINST_GENERATE_ID CM_CREATE_DEVNODE_GENERATE_ID
765 #define CM_CREATE_DEVINST_DO_NOT_INSTALL CM_CREATE_DEVNODE_DO_NOT_INSTALL
766 #define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS
767
768 CMAPI
769 CONFIGRET
770 WINAPI
771 CM_Create_DevNodeA(
772 OUT PDEVINST pdnDevInst,
773 IN DEVINSTID_A pDeviceID,
774 IN DEVINST dnParent,
775 IN ULONG ulFlags);
776
777 CMAPI
778 CONFIGRET
779 WINAPI
780 CM_Create_DevNodeW(
781 OUT PDEVINST pdnDevInst,
782 IN DEVINSTID_W pDeviceID,
783 IN DEVINST dnParent,
784 IN ULONG ulFlags);
785
786 CMAPI
787 CONFIGRET
788 WINAPI
789 CM_Create_DevNode_ExA(
790 OUT PDEVINST pdnDevInst,
791 IN DEVINSTID_A pDeviceID,
792 IN DEVINST dnParent,
793 IN ULONG ulFlags,
794 IN HANDLE hMachine);
795
796 CMAPI
797 CONFIGRET
798 WINAPI
799 CM_Create_DevNode_ExW(
800 OUT PDEVINST pdnDevInst,
801 IN DEVINSTID_W pDeviceID,
802 IN DEVINST dnParent,
803 IN ULONG ulFlags,
804 IN HANDLE hMachine);
805
806 #define CM_Create_DevInstW CM_Create_DevNodeW
807 #define CM_Create_DevInstA CM_Create_DevNodeA
808 #define CM_Create_DevInst_ExW CM_Create_DevNode_ExW
809 #define CM_Create_DevInst_ExA CM_Create_DevNode_ExA
810 #ifdef UNICODE
811 #define CM_Create_DevNode CM_Create_DevNodeW
812 #define CM_Create_DevInst CM_Create_DevNodeW
813 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExW
814 #define CM_Create_DevInst_Ex CM_Create_DevInst_ExW
815 #else
816 #define CM_Create_DevNode CM_Create_DevNodeA
817 #define CM_Create_DevInst CM_Create_DevNodeA
818 #define CM_Create_DevNode_Ex CM_Create_DevNode_ExA
819 #define CM_Create_DevInst_Ex CM_Create_DevNode_ExA
820 #endif /* UNICODE */
821
822 /* FIXME: Obsolete CM_Create_Range_List */
823
824 /* Flags for CM_Delete_Class_Key.ulFlags constants */
825 #define CM_DELETE_CLASS_ONLY 0x00000000
826 #define CM_DELETE_CLASS_SUBKEYS 0x00000001
827 #define CM_DELETE_CLASS_BITS 0x00000001
828
829 CMAPI
830 CONFIGRET
831 WINAPI
832 CM_Delete_Class_Key(
833 IN LPGUID ClassGuid,
834 IN ULONG ulFlags);
835
836 CMAPI
837 CONFIGRET
838 WINAPI
839 CM_Delete_Class_Key_Ex(
840 IN LPGUID ClassGuid,
841 IN ULONG ulFlags,
842 IN HANDLE hMachine);
843
844 CMAPI
845 CONFIGRET
846 WINAPI
847 CM_Delete_DevNode_Key(
848 IN DEVNODE dnDevNode,
849 IN ULONG ulHardwareProfile,
850 IN ULONG ulFlags);
851
852 CMAPI
853 CONFIGRET
854 WINAPI
855 CM_Delete_DevNode_Key_Ex(
856 IN DEVNODE dnDevNode,
857 IN ULONG ulHardwareProfile,
858 IN ULONG ulFlags,
859 IN HANDLE hMachine);
860
861 #define CM_Delete_DevInst_Key CM_Delete_DevNode_Key
862 #define CM_Delete_DevInst_Key_Ex CM_Delete_DevNode_Key_Ex
863
864 /* FIXME: Obsolete CM_Delete_Range */
865 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
866 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
867
868 CMAPI
869 CONFIGRET
870 WINAPI
871 CM_Disable_DevNode(
872 IN DEVINST dnDevInst,
873 IN ULONG ulFlags);
874
875 CMAPI
876 CONFIGRET
877 WINAPI
878 CM_Disable_DevNode_Ex(
879 IN DEVINST dnDevInst,
880 IN ULONG ulFlags,
881 IN HMACHINE hMachine);
882
883 #define CM_Disable_DevInst CM_Disable_DevNode
884 #define CM_Disable_DevInst_Ex CM_Disable_DevNode_Ex
885
886 CMAPI
887 CONFIGRET
888 WINAPI
889 CM_Disconnect_Machine(
890 IN HMACHINE hMachine);
891
892 CMAPI
893 CONFIGRET
894 WINAPI
895 CM_Enable_DevNode(
896 IN DEVINST dnDevInst,
897 IN ULONG ulFlags);
898
899 CMAPI
900 CONFIGRET
901 WINAPI
902 CM_Enable_DevNode_Ex(
903 IN DEVINST dnDevInst,
904 IN ULONG ulFlags,
905 IN HMACHINE hMachine);
906
907 #define CM_Enable_DevInst CM_Enable_DevNode
908 #define CM_Enable_DevInst_Ex CM_Enable_DevNode_Ex
909
910 CMAPI
911 CONFIGRET
912 WINAPI
913 CM_Enumerate_Classes(
914 IN ULONG ulClassIndex,
915 OUT LPGUID ClassGuid,
916 IN ULONG ulFlags);
917
918 CMAPI
919 CONFIGRET
920 WINAPI
921 CM_Enumerate_Classes_Ex(
922 IN ULONG ulClassIndex,
923 OUT LPGUID ClassGuid,
924 IN ULONG ulFlags,
925 IN HMACHINE hMachine);
926
927 CMAPI
928 CONFIGRET
929 WINAPI
930 CM_Enumerate_EnumeratorsA(
931 IN ULONG ulEnumIndex,
932 OUT PCHAR Buffer,
933 IN OUT PULONG pulLength,
934 IN ULONG ulFlags);
935
936 CMAPI
937 CONFIGRET
938 WINAPI
939 CM_Enumerate_Enumerators_ExA(
940 IN ULONG ulEnumIndex,
941 OUT PCHAR Buffer,
942 IN OUT PULONG pulLength,
943 IN ULONG ulFlags,
944 IN HMACHINE hMachine);
945
946 CMAPI
947 CONFIGRET
948 WINAPI
949 CM_Enumerate_Enumerators_ExW(
950 IN ULONG ulEnumIndex,
951 OUT PWCHAR Buffer,
952 IN OUT PULONG pulLength,
953 IN ULONG ulFlags,
954 IN HMACHINE hMachine);
955
956 CMAPI
957 CONFIGRET
958 WINAPI
959 CM_Enumerate_EnumeratorsW(
960 IN ULONG ulEnumIndex,
961 OUT PWCHAR Buffer,
962 IN OUT PULONG pulLength,
963 IN ULONG ulFlags);
964
965 #ifdef UNICODE
966 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
967 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
968 #else
969 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
970 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
971 #endif /* UNICODE */
972
973 /* FIXME: Obsolete CM_Find_Range */
974 /* FIXME: Obsolete CM_First_Range */
975
976 CMAPI
977 CONFIGRET
978 WINAPI
979 CM_Free_Log_Conf(
980 IN LOG_CONF lcLogConfToBeFreed,
981 IN ULONG ulFlags);
982
983 CMAPI
984 CONFIGRET
985 WINAPI
986 CM_Free_Log_Conf_Ex(
987 IN LOG_CONF lcLogConfToBeFreed,
988 IN ULONG ulFlags,
989 IN HMACHINE hMachine);
990
991 CMAPI
992 CONFIGRET
993 WINAPI
994 CM_Free_Log_Conf_Handle(
995 IN LOG_CONF lcLogConf);
996
997 /* FIXME: Obsolete CM_Free_Range_List */
998
999 CMAPI
1000 CONFIGRET
1001 WINAPI
1002 CM_Free_Res_Des(
1003 OUT PRES_DES prdResDes,
1004 IN RES_DES rdResDes,
1005 IN ULONG ulFlags);
1006
1007 CMAPI
1008 CONFIGRET
1009 WINAPI
1010 CM_Free_Res_Des_Ex(
1011 OUT PRES_DES prdResDes,
1012 IN RES_DES rdResDes,
1013 IN ULONG ulFlags,
1014 IN HMACHINE hMachine);
1015
1016 CMAPI
1017 CONFIGRET
1018 WINAPI
1019 CM_Free_Res_Des_Handle(
1020 IN RES_DES rdResDes);
1021
1022 CMAPI
1023 CONFIGRET
1024 WINAPI
1025 CM_Free_Resource_Conflict_Handle(
1026 IN CONFLICT_LIST clConflictList);
1027
1028 CMAPI
1029 CONFIGRET
1030 WINAPI
1031 CM_Get_Child(
1032 OUT PDEVINST pdnDevInst,
1033 IN DEVINST dnDevInst,
1034 IN ULONG ulFlags);
1035
1036 CMAPI
1037 CONFIGRET
1038 WINAPI
1039 CM_Get_Child_Ex(
1040 OUT PDEVINST pdnDevInst,
1041 IN DEVINST dnDevInst,
1042 IN ULONG ulFlags,
1043 IN HMACHINE hMachine);
1044
1045 CMAPI
1046 CONFIGRET
1047 WINAPI
1048 CM_Get_Class_NameA(
1049 IN LPGUID ClassGuid,
1050 OUT PCHAR Buffer,
1051 IN OUT PULONG pulLength,
1052 IN ULONG ulFlags);
1053
1054 CMAPI
1055 CONFIGRET
1056 WINAPI
1057 CM_Get_Class_NameW(
1058 IN LPGUID ClassGuid,
1059 OUT PWCHAR Buffer,
1060 IN OUT PULONG pulLength,
1061 IN ULONG ulFlags);
1062
1063 CMAPI
1064 CONFIGRET
1065 WINAPI
1066 CM_Get_Class_Name_ExA(
1067 IN LPGUID ClassGuid,
1068 OUT PCHAR Buffer,
1069 IN OUT PULONG pulLength,
1070 IN ULONG ulFlags,
1071 IN HMACHINE hMachine);
1072
1073 CMAPI
1074 CONFIGRET
1075 WINAPI
1076 CM_Get_Class_Name_ExW(
1077 IN LPGUID ClassGuid,
1078 OUT PWCHAR Buffer,
1079 IN OUT PULONG pulLength,
1080 IN ULONG ulFlags,
1081 IN HMACHINE hMachine);
1082
1083 #ifdef UNICODE
1084 #define CM_Get_Class_Name CM_Get_Class_NameW
1085 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
1086 #else
1087 #define CM_Get_Class_Name CM_Get_Class_NameA
1088 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
1089 #endif /* UNICODE */
1090
1091 CMAPI
1092 CONFIGRET
1093 WINAPI
1094 CM_Get_Class_Key_NameA(
1095 IN LPGUID ClassGuid,
1096 OUT LPSTR pszKeyName,
1097 IN OUT PULONG pulLength,
1098 IN ULONG ulFlags);
1099
1100 CMAPI
1101 CONFIGRET
1102 WINAPI
1103 CM_Get_Class_Key_NameW(
1104 IN LPGUID ClassGuid,
1105 OUT LPWSTR pszKeyName,
1106 IN OUT PULONG pulLength,
1107 IN ULONG ulFlags);
1108
1109 CMAPI
1110 CONFIGRET
1111 WINAPI
1112 CM_Get_Class_Key_Name_ExA(
1113 IN LPGUID ClassGuid,
1114 OUT LPSTR pszKeyName,
1115 IN OUT PULONG pulLength,
1116 IN ULONG ulFlags,
1117 IN HMACHINE hMachine);
1118
1119 CMAPI
1120 CONFIGRET
1121 WINAPI
1122 CM_Get_Class_Key_Name_ExW(
1123 IN LPGUID ClassGuid,
1124 OUT LPWSTR pszKeyName,
1125 IN OUT PULONG pulLength,
1126 IN ULONG ulFlags,
1127 IN HMACHINE hMachine);
1128
1129 #ifdef UNICODE
1130 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
1131 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
1132 #else
1133 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
1134 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
1135 #endif /* UNICODE */
1136
1137 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
1138
1139 CMAPI
1140 CONFIGRET
1141 WINAPI
1142 CM_Get_Depth(
1143 OUT PULONG pulDepth,
1144 IN DEVINST dnDevInst,
1145 IN ULONG ulFlags);
1146
1147 CMAPI
1148 CONFIGRET
1149 WINAPI
1150 CM_Get_Depth_Ex(
1151 OUT PULONG pulDepth,
1152 IN DEVINST dnDevInst,
1153 IN ULONG ulFlags,
1154 IN HMACHINE hMachine);
1155
1156 CMAPI
1157 CONFIGRET
1158 WINAPI
1159 CM_Get_Device_IDA(
1160 IN DEVINST dnDevInst,
1161 OUT PCHAR Buffer,
1162 IN ULONG BufferLen,
1163 IN ULONG ulFlags);
1164
1165 CMAPI
1166 CONFIGRET
1167 WINAPI
1168 CM_Get_Device_ID_ExA(
1169 IN DEVINST dnDevInst,
1170 OUT PCHAR Buffer,
1171 IN ULONG BufferLen,
1172 IN ULONG ulFlags,
1173 IN HMACHINE hMachine);
1174
1175 CMAPI
1176 CONFIGRET
1177 WINAPI
1178 CM_Get_Device_ID_ExW(
1179 IN DEVINST dnDevInst,
1180 OUT PWCHAR Buffer,
1181 IN ULONG BufferLen,
1182 IN ULONG ulFlags,
1183 IN HMACHINE hMachine);
1184
1185 CMAPI
1186 CONFIGRET
1187 WINAPI
1188 CM_Get_Device_IDW(
1189 IN DEVINST dnDevInst,
1190 OUT PWCHAR Buffer,
1191 IN ULONG BufferLen,
1192 IN ULONG ulFlags);
1193
1194 #ifdef UNICODE
1195 #define CM_Get_Device_ID CM_Get_Device_IDW
1196 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1197 #else
1198 #define CM_Get_Device_ID CM_Get_Device_IDA
1199 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1200 #endif /* UNICODE */
1201
1202 CMAPI
1203 CONFIGRET
1204 WINAPI
1205 CM_Get_Device_ID_ListA(
1206 IN PCSTR pszFilter, OPTIONAL
1207 OUT PCHAR Buffer,
1208 IN ULONG BufferLen,
1209 IN ULONG ulFlags);
1210
1211 CMAPI
1212 CONFIGRET
1213 WINAPI
1214 CM_Get_Device_ID_List_ExA(
1215 IN PCSTR pszFilter, OPTIONAL
1216 OUT PCHAR Buffer,
1217 IN ULONG BufferLen,
1218 IN ULONG ulFlags,
1219 IN HMACHINE hMachine);
1220
1221 CMAPI
1222 CONFIGRET
1223 WINAPI
1224 CM_Get_Device_ID_List_ExW(
1225 IN PCWSTR pszFilter, OPTIONAL
1226 OUT PWCHAR Buffer,
1227 IN ULONG BufferLen,
1228 IN ULONG ulFlags,
1229 IN HMACHINE hMachine);
1230
1231 CMAPI
1232 CONFIGRET
1233 WINAPI
1234 CM_Get_Device_ID_ListW(
1235 IN PCWSTR pszFilter, OPTIONAL
1236 OUT PWCHAR Buffer,
1237 IN ULONG BufferLen,
1238 IN ULONG ulFlags);
1239
1240 #ifdef UNICODE
1241 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1242 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1243 #else
1244 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1245 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1246 #endif /* UNICODE */
1247
1248 CMAPI
1249 CONFIGRET
1250 WINAPI
1251 CM_Get_Device_ID_List_SizeA(
1252 OUT PULONG pulLen,
1253 IN PCSTR pszFilter, OPTIONAL
1254 IN ULONG ulFlags);
1255
1256 CMAPI
1257 CONFIGRET
1258 WINAPI
1259 CM_Get_Device_ID_List_Size_ExA(
1260 OUT PULONG pulLen,
1261 IN PCSTR pszFilter, OPTIONAL
1262 IN ULONG ulFlags,
1263 IN HMACHINE hMachine);
1264
1265 CMAPI
1266 CONFIGRET
1267 WINAPI
1268 CM_Get_Device_ID_List_Size_ExW(
1269 OUT PULONG pulLen,
1270 IN PCWSTR pszFilter, OPTIONAL
1271 IN ULONG ulFlags,
1272 IN HMACHINE hMachine);
1273
1274 CMAPI
1275 CONFIGRET
1276 WINAPI
1277 CM_Get_Device_ID_List_SizeW(
1278 OUT PULONG pulLen,
1279 IN PCWSTR pszFilter, OPTIONAL
1280 IN ULONG ulFlags);
1281
1282 #ifdef UNICODE
1283 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1284 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1285 #else
1286 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1287 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1288 #endif /* UNICODE */
1289
1290 CMAPI
1291 CONFIGRET
1292 WINAPI
1293 CM_Get_Device_ID_Size(
1294 OUT PULONG pulLen,
1295 IN DEVINST dnDevInst,
1296 IN ULONG ulFlags);
1297
1298 CMAPI
1299 CONFIGRET
1300 WINAPI
1301 CM_Get_Device_ID_Size_Ex(
1302 OUT PULONG pulLen,
1303 IN DEVINST dnDevInst,
1304 IN ULONG ulFlags,
1305 IN HMACHINE hMachine);
1306
1307 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1308 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1309 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1310 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1311 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1312 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1313 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1314 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1315
1316 CMAPI
1317 CONFIGRET
1318 WINAPI
1319 CM_Get_DevNode_Registry_PropertyA(
1320 IN DEVINST dnDevInst,
1321 IN ULONG ulProperty,
1322 OUT PULONG pulRegDataType, OPTIONAL
1323 OUT PVOID Buffer, OPTIONAL
1324 IN OUT PULONG pulLength,
1325 IN ULONG ulFlags);
1326
1327 CMAPI
1328 CONFIGRET
1329 WINAPI
1330 CM_Get_DevNode_Registry_PropertyW(
1331 IN DEVINST dnDevInst,
1332 IN ULONG ulProperty,
1333 OUT PULONG pulRegDataType, OPTIONAL
1334 OUT PVOID Buffer, OPTIONAL
1335 IN OUT PULONG pulLength,
1336 IN ULONG ulFlags);
1337
1338 CMAPI
1339 CONFIGRET
1340 WINAPI
1341 CM_Get_DevNode_Registry_Property_ExA(
1342 IN DEVINST dnDevInst,
1343 IN ULONG ulProperty,
1344 OUT PULONG pulRegDataType, OPTIONAL
1345 OUT PVOID Buffer, OPTIONAL
1346 IN OUT PULONG pulLength,
1347 IN ULONG ulFlags,
1348 IN HMACHINE hMachine);
1349
1350 CMAPI
1351 CONFIGRET
1352 WINAPI
1353 CM_Get_DevNode_Registry_Property_ExW(
1354 IN DEVINST dnDevInst,
1355 IN ULONG ulProperty,
1356 OUT PULONG pulRegDataType, OPTIONAL
1357 OUT PVOID Buffer, OPTIONAL
1358 IN OUT PULONG pulLength,
1359 IN ULONG ulFlags,
1360 IN HMACHINE hMachine);
1361
1362 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1363 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1364 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1365 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1366
1367 #ifdef UNICODE
1368 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1369 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1370 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1371 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1372 #else
1373 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1374 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1375 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1376 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1377 #endif /* UNICODE */
1378
1379 CMAPI
1380 CONFIGRET
1381 WINAPI
1382 CM_Get_DevNode_Status(
1383 OUT PULONG pulStatus,
1384 OUT PULONG pulProblemNumber,
1385 IN DEVINST dnDevInst,
1386 IN ULONG ulFlags);
1387
1388 CMAPI
1389 CONFIGRET
1390 WINAPI
1391 CM_Get_DevNode_Status_Ex(
1392 OUT PULONG pulStatus,
1393 OUT PULONG pulProblemNumber,
1394 IN DEVINST dnDevInst,
1395 IN ULONG ulFlags,
1396 IN HMACHINE hMachine);
1397
1398 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1399 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1400
1401 /* CM_Get_First_Log_Conf.ulFlags constants */
1402 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1403 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1404 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1405 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1406 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1407 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1408 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1409 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1410
1411 CMAPI
1412 CONFIGRET
1413 WINAPI
1414 CM_Get_First_Log_Conf(
1415 OUT PLOG_CONF plcLogConf, OPTIONAL
1416 IN DEVINST dnDevInst,
1417 IN ULONG ulFlags);
1418
1419 CMAPI
1420 CONFIGRET
1421 WINAPI
1422 CM_Get_First_Log_Conf_Ex(
1423 OUT PLOG_CONF plcLogConf, OPTIONAL
1424 IN DEVINST dnDevInst,
1425 IN ULONG ulFlags,
1426 IN HMACHINE hMachine);
1427
1428 CMAPI
1429 CONFIGRET
1430 WINAPI
1431 CM_Get_Global_State(
1432 OUT PULONG pulState,
1433 IN ULONG ulFlags);
1434
1435 CMAPI
1436 CONFIGRET
1437 WINAPI
1438 CM_Get_Global_State_Ex(
1439 OUT PULONG pulState,
1440 IN ULONG ulFlags,
1441 IN HMACHINE hMachine);
1442
1443 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1444 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1445
1446 CMAPI
1447 CONFIGRET
1448 WINAPI
1449 CM_Get_HW_Prof_FlagsA(
1450 IN DEVINSTID_A szDevInstName,
1451 IN ULONG ulHardwareProfile,
1452 OUT PULONG pulValue,
1453 IN ULONG ulFlags);
1454
1455 CMAPI
1456 CONFIGRET
1457 WINAPI
1458 CM_Get_HW_Prof_FlagsW(
1459 IN DEVINSTID_W szDevInstName,
1460 IN ULONG ulHardwareProfile,
1461 OUT PULONG pulValue,
1462 IN ULONG ulFlags);
1463
1464 CMAPI
1465 CONFIGRET
1466 WINAPI
1467 CM_Get_HW_Prof_Flags_ExA(
1468 IN DEVINSTID_A szDevInstName,
1469 IN ULONG ulHardwareProfile,
1470 OUT PULONG pulValue,
1471 IN ULONG ulFlags,
1472 IN HMACHINE hMachine);
1473
1474 CMAPI
1475 CONFIGRET
1476 WINAPI
1477 CM_Get_HW_Prof_Flags_ExW(
1478 IN DEVINSTID_W szDevInstName,
1479 IN ULONG ulHardwareProfile,
1480 OUT PULONG pulValue,
1481 IN ULONG ulFlags,
1482 IN HMACHINE hMachine);
1483
1484 #ifdef UNICODE
1485 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
1486 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
1487 #else
1488 #define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
1489 #define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
1490 #endif /* UNICODE */
1491
1492 CMAPI
1493 CONFIGRET
1494 WINAPI
1495 CM_Get_Log_Conf_Priority(
1496 IN LOG_CONF lcLogConf,
1497 OUT PPRIORITY pPriority,
1498 IN ULONG ulFlags);
1499
1500 CMAPI
1501 CONFIGRET
1502 WINAPI
1503 CM_Get_Log_Conf_Priority_Ex(
1504 IN LOG_CONF lcLogConf,
1505 OUT PPRIORITY pPriority,
1506 IN ULONG ulFlags,
1507 IN HMACHINE hMachine);
1508
1509 CMAPI
1510 CONFIGRET
1511 WINAPI
1512 CM_Get_Next_Log_Conf(
1513 OUT PLOG_CONF plcLogConf, OPTIONAL
1514 IN LOG_CONF lcLogConf,
1515 IN ULONG ulFlags);
1516
1517 CMAPI
1518 CONFIGRET
1519 WINAPI
1520 CM_Get_Next_Log_Conf_Ex(
1521 OUT PLOG_CONF plcLogConf, OPTIONAL
1522 IN LOG_CONF lcLogConf,
1523 IN ULONG ulFlags,
1524 IN HMACHINE hMachine);
1525
1526 CMAPI
1527 CONFIGRET
1528 WINAPI
1529 CM_Get_Next_Res_Des(
1530 OUT PRES_DES prdResDes,
1531 IN RES_DES rdResDes,
1532 IN RESOURCEID ForResource,
1533 OUT PRESOURCEID pResourceID,
1534 IN ULONG ulFlags);
1535
1536 CMAPI
1537 CONFIGRET
1538 WINAPI
1539 CM_Get_Next_Res_Des_Ex(
1540 OUT PRES_DES prdResDes,
1541 IN RES_DES rdResDes,
1542 IN RESOURCEID ForResource,
1543 OUT PRESOURCEID pResourceID,
1544 IN ULONG ulFlags,
1545 IN HMACHINE hMachine);
1546
1547 CMAPI
1548 CONFIGRET
1549 WINAPI
1550 CM_Get_Parent(
1551 OUT PDEVINST pdnDevInst,
1552 IN DEVINST dnDevInst,
1553 IN ULONG ulFlags);
1554
1555 CMAPI
1556 CONFIGRET
1557 WINAPI
1558 CM_Get_Parent_Ex(
1559 OUT PDEVINST pdnDevInst,
1560 IN DEVINST dnDevInst,
1561 IN ULONG ulFlags,
1562 IN HMACHINE hMachine);
1563
1564 CMAPI
1565 CONFIGRET
1566 WINAPI
1567 CM_Get_Res_Des_Data(
1568 IN RES_DES rdResDes,
1569 OUT PVOID Buffer,
1570 IN ULONG BufferLen,
1571 IN ULONG ulFlags);
1572
1573 CMAPI
1574 CONFIGRET
1575 WINAPI
1576 CM_Get_Res_Des_Data_Ex(
1577 IN RES_DES rdResDes,
1578 OUT PVOID Buffer,
1579 IN ULONG BufferLen,
1580 IN ULONG ulFlags,
1581 IN HMACHINE hMachine);
1582
1583 CMAPI
1584 CONFIGRET
1585 WINAPI
1586 CM_Get_Res_Des_Data_Size(
1587 OUT PULONG pulSize,
1588 IN RES_DES rdResDes,
1589 IN ULONG ulFlags);
1590
1591 CMAPI
1592 CONFIGRET
1593 WINAPI
1594 CM_Get_Res_Des_Data_Size_Ex(
1595 OUT PULONG pulSize,
1596 IN RES_DES rdResDes,
1597 IN ULONG ulFlags,
1598 IN HMACHINE hMachine);
1599
1600 CMAPI
1601 CONFIGRET
1602 WINAPI
1603 CM_Get_Resource_Conflict_Count(
1604 IN CONFLICT_LIST clConflictList,
1605 OUT PULONG pulCount);
1606
1607 CMAPI
1608 CONFIGRET
1609 WINAPI
1610 CM_Get_Resource_Conflict_DetailsA(
1611 IN CONFLICT_LIST clConflictList,
1612 IN ULONG ulIndex,
1613 IN OUT PCONFLICT_DETAILS_A pConflictDetails);
1614
1615 CMAPI
1616 CONFIGRET
1617 WINAPI
1618 CM_Get_Resource_Conflict_DetailsW(
1619 IN CONFLICT_LIST clConflictList,
1620 IN ULONG ulIndex,
1621 IN OUT PCONFLICT_DETAILS_W pConflictDetails);
1622
1623 #ifdef UNICODE
1624 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1625 #else
1626 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1627 #endif /* UNICODE */
1628
1629 CMAPI
1630 CONFIGRET
1631 WINAPI
1632 CM_Get_Sibling(
1633 OUT PDEVINST pdnDevInst,
1634 IN DEVINST DevInst,
1635 IN ULONG ulFlags);
1636
1637 CMAPI
1638 CONFIGRET
1639 WINAPI
1640 CM_Get_Sibling_Ex(
1641 OUT PDEVINST pdnDevInst,
1642 IN DEVINST DevInst,
1643 IN ULONG ulFlags,
1644 IN HMACHINE hMachine);
1645
1646 CMAPI
1647 WORD
1648 WINAPI
1649 CM_Get_Version(
1650 VOID);
1651
1652 CMAPI
1653 WORD
1654 WINAPI
1655 CM_Get_Version_Ex(
1656 IN HMACHINE hMachine);
1657
1658 /* FIXME: Obsolete CM_Intersect_Range_List */
1659 /* FIXME: Obsolete CM_Invert_Range_List */
1660
1661 CMAPI
1662 CONFIGRET
1663 WINAPI
1664 CM_Is_Dock_Station_Present(
1665 OUT PBOOL pbPresent);
1666
1667 CMAPI
1668 CONFIGRET
1669 WINAPI
1670 CM_Is_Dock_Station_Present_Ex(
1671 OUT PBOOL pbPresent,
1672 IN HMACHINE hMachine);
1673
1674 /* CM_Locate_DevNode.ulFlags constants */
1675 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1676 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1677 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1678 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1679 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1680
1681 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1682 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1683 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1684 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1685 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1686
1687 CMAPI
1688 CONFIGRET
1689 WINAPI
1690 CM_Locate_DevNodeA(
1691 OUT PDEVINST pdnDevInst,
1692 IN DEVINSTID_A pDeviceID, OPTIONAL
1693 IN ULONG ulFlags);
1694
1695 CMAPI
1696 CONFIGRET
1697 WINAPI
1698 CM_Locate_DevNode_ExA(
1699 OUT PDEVINST pdnDevInst,
1700 IN DEVINSTID_A pDeviceID, OPTIONAL
1701 IN ULONG ulFlags,
1702 IN HMACHINE hMachine);
1703
1704 CMAPI
1705 CONFIGRET
1706 WINAPI
1707 CM_Locate_DevNode_ExW(
1708 OUT PDEVINST pdnDevInst,
1709 IN DEVINSTID_W pDeviceID, OPTIONAL
1710 IN ULONG ulFlags,
1711 IN HMACHINE hMachine);
1712
1713 CMAPI
1714 CONFIGRET
1715 WINAPI
1716 CM_Locate_DevNodeW(
1717 OUT PDEVINST pdnDevInst,
1718 IN DEVINSTID_W pDeviceID, OPTIONAL
1719 IN ULONG ulFlags);
1720
1721 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1722 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1723 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1724 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1725
1726 #ifdef UNICODE
1727 #define CM_Locate_DevNode CM_Locate_DevNodeW
1728 #define CM_Locate_DevInst CM_Locate_DevNodeW
1729 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1730 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1731 #else
1732 #define CM_Locate_DevNode CM_Locate_DevNodeA
1733 #define CM_Locate_DevInst CM_Locate_DevNodeA
1734 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1735 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1736 #endif /* UNICODE */
1737
1738 /* FIXME: Obsolete CM_Merge_Range_List */
1739
1740 CMAPI
1741 CONFIGRET
1742 WINAPI
1743 CM_Modify_Res_Des(
1744 OUT PRES_DES prdResDes,
1745 IN RES_DES rdResDes,
1746 IN RESOURCEID ResourceID,
1747 IN PCVOID ResourceData,
1748 IN ULONG ResourceLen,
1749 IN ULONG ulFlags);
1750
1751 CMAPI
1752 CONFIGRET
1753 WINAPI
1754 CM_Modify_Res_Des_Ex(
1755 OUT PRES_DES prdResDes,
1756 IN RES_DES rdResDes,
1757 IN RESOURCEID ResourceID,
1758 IN PCVOID ResourceData,
1759 IN ULONG ResourceLen,
1760 IN ULONG ulFlags,
1761 IN HMACHINE hMachine);
1762
1763 /* FIXME: Obsolete CM_Move_DevNode */
1764 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1765 /* FIXME: Obsolete CM_Next_Range */
1766
1767 CMAPI
1768 CONFIGRET
1769 WINAPI
1770 CM_Open_Class_KeyA(
1771 IN LPGUID ClassGuid, OPTIONAL
1772 IN LPCSTR pszClassName, OPTIONAL
1773 IN REGSAM samDesired,
1774 IN REGDISPOSITION Disposition,
1775 OUT PHKEY phkClass,
1776 IN ULONG ulFlags);
1777
1778 CMAPI
1779 CONFIGRET
1780 WINAPI
1781 CM_Open_Class_KeyW(
1782 IN LPGUID ClassGuid, OPTIONAL
1783 IN LPCWSTR pszClassName, OPTIONAL
1784 IN REGSAM samDesired,
1785 IN REGDISPOSITION Disposition,
1786 OUT PHKEY phkClass,
1787 IN ULONG ulFlags);
1788
1789 CMAPI
1790 CONFIGRET
1791 WINAPI
1792 CM_Open_Class_Key_ExA(
1793 IN LPGUID pszClassGuid, OPTIONAL
1794 IN LPCSTR pszClassName, OPTIONAL
1795 IN REGSAM samDesired,
1796 IN REGDISPOSITION Disposition,
1797 OUT PHKEY phkClass,
1798 IN ULONG ulFlags,
1799 IN HMACHINE hMachine);
1800
1801 CMAPI
1802 CONFIGRET
1803 WINAPI
1804 CM_Open_Class_Key_ExW(
1805 IN LPGUID pszClassGuid, OPTIONAL
1806 IN LPCWSTR pszClassName, OPTIONAL
1807 IN REGSAM samDesired,
1808 IN REGDISPOSITION Disposition,
1809 OUT PHKEY phkClass,
1810 IN ULONG ulFlags,
1811 IN HMACHINE hMachine);
1812
1813 #ifdef UNICODE
1814 #define CM_Open_Class_Key CM_Open_Class_KeyW
1815 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
1816 #else
1817 #define CM_Open_Class_Key CM_Open_Class_KeyA
1818 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
1819 #endif /* UNICODE */
1820
1821 CMAPI
1822 CONFIGRET
1823 WINAPI
1824 CM_Open_DevNode_Key(
1825 IN DEVINST dnDevNode,
1826 IN REGSAM samDesired,
1827 IN ULONG ulHardwareProfile,
1828 IN REGDISPOSITION Disposition,
1829 OUT PHKEY phkDevice,
1830 IN ULONG ulFlags);
1831
1832 CMAPI
1833 CONFIGRET
1834 WINAPI
1835 CM_Open_DevNode_Key_Ex(
1836 IN DEVINST dnDevNode,
1837 IN REGSAM samDesired,
1838 IN ULONG ulHardwareProfile,
1839 IN REGDISPOSITION Disposition,
1840 OUT PHKEY phkDevice,
1841 IN ULONG ulFlags,
1842 IN HMACHINE hMachine);
1843
1844 #define CM_Open_DevInst_Key CM_Open_DevNode_Key
1845 #define CM_Open_DevInst_Key_Ex CM_Open_DevNode_Key_Ex
1846
1847 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1848 #define CM_REMOVE_UI_OK 0x00000000
1849 #define CM_REMOVE_UI_NOT_OK 0x00000001
1850 #define CM_REMOVE_NO_RESTART 0x00000002
1851 #define CM_REMOVE_BITS 0x00000003
1852
1853 CMAPI
1854 CONFIGRET
1855 WINAPI
1856 CM_Query_And_Remove_SubTreeA(
1857 IN DEVINST dnAncestor,
1858 OUT PPNP_VETO_TYPE pVetoType,
1859 OUT LPSTR pszVetoName,
1860 IN ULONG ulNameLength,
1861 IN ULONG ulFlags);
1862
1863 CMAPI
1864 CONFIGRET
1865 WINAPI
1866 CM_Query_And_Remove_SubTreeW(
1867 IN DEVINST dnAncestor,
1868 OUT PPNP_VETO_TYPE pVetoType,
1869 OUT LPWSTR pszVetoName,
1870 IN ULONG ulNameLength,
1871 IN ULONG ulFlags);
1872
1873 CMAPI
1874 CONFIGRET
1875 WINAPI
1876 CM_Query_And_Remove_SubTree_ExA(
1877 IN DEVINST dnAncestor,
1878 OUT PPNP_VETO_TYPE pVetoType,
1879 OUT LPSTR pszVetoName,
1880 IN ULONG ulNameLength,
1881 IN ULONG ulFlags,
1882 IN HMACHINE hMachine);
1883
1884 CMAPI
1885 CONFIGRET
1886 WINAPI
1887 CM_Query_And_Remove_SubTree_ExW(
1888 IN DEVINST dnAncestor,
1889 OUT PPNP_VETO_TYPE pVetoType,
1890 OUT LPWSTR pszVetoName,
1891 IN ULONG ulNameLength,
1892 IN ULONG ulFlags,
1893 IN HMACHINE hMachine);
1894
1895 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1896 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1897 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1898 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1899 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1900 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1901 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1902
1903 CMAPI
1904 CONFIGRET
1905 WINAPI
1906 CM_Query_Resource_Conflict_List(
1907 OUT PCONFLICT_LIST pclConflictList,
1908 IN DEVINST dnDevInst,
1909 IN RESOURCEID ResourceID,
1910 IN PCVOID ResourceData,
1911 IN ULONG ResourceLen,
1912 IN ULONG ulFlags,
1913 IN HMACHINE hMachine);
1914
1915 /* CM_Reenumerate_DevNode.ulFlags constants */
1916 #define CM_REENUMERATE_NORMAL 0x00000000
1917 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1918 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1919 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1920 #define CM_REENUMERATE_BITS 0x00000007
1921
1922 CMAPI
1923 CONFIGRET
1924 WINAPI
1925 CM_Reenumerate_DevNode(
1926 IN DEVINST dnDevInst,
1927 IN ULONG ulFlags);
1928
1929 CMAPI
1930 CONFIGRET
1931 WINAPI
1932 CM_Reenumerate_DevNode_Ex(
1933 IN DEVINST dnDevInst,
1934 IN ULONG ulFlags,
1935 IN HMACHINE hMachine);
1936
1937 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1938 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1939
1940 /* FIXME: Obsolete CM_Register_Device_Driver */
1941 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1942 /* FIXME: Obsolete CM_Register_Device_Interface */
1943 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1944 /* FIXME: Obsolete CM_Remove_SubTree */
1945 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1946
1947 CMAPI
1948 CONFIGRET
1949 WINAPI
1950 CM_Request_Device_EjectA(
1951 IN DEVINST dnDevInst,
1952 OUT PPNP_VETO_TYPE pVetoType,
1953 OUT LPSTR pszVetoName,
1954 IN ULONG ulNameLength,
1955 IN ULONG ulFlags);
1956
1957 CMAPI
1958 CONFIGRET
1959 WINAPI
1960 CM_Request_Device_Eject_ExW(
1961 IN DEVINST dnDevInst,
1962 OUT PPNP_VETO_TYPE pVetoType,
1963 OUT LPWSTR pszVetoName,
1964 IN ULONG ulNameLength,
1965 IN ULONG ulFlags,
1966 IN HMACHINE hMachine);
1967
1968 CMAPI
1969 CONFIGRET
1970 WINAPI
1971 CM_Request_Device_Eject_ExA(
1972 IN DEVINST dnDevInst,
1973 OUT PPNP_VETO_TYPE pVetoType,
1974 OUT LPSTR pszVetoName,
1975 IN ULONG ulNameLength,
1976 IN ULONG ulFlags,
1977 IN HMACHINE hMachine);
1978
1979 CMAPI
1980 CONFIGRET
1981 WINAPI
1982 CM_Request_Device_EjectW(
1983 IN DEVINST dnDevInst,
1984 OUT PPNP_VETO_TYPE pVetoType,
1985 OUT LPWSTR pszVetoName,
1986 IN ULONG ulNameLength,
1987 IN ULONG ulFlags);
1988
1989 #ifdef UNICODE
1990 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1991 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1992 #else
1993 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1994 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1995 #endif /* UNICODE */
1996
1997 CMAPI
1998 CONFIGRET
1999 WINAPI
2000 CM_Request_Eject_PC(
2001 VOID);
2002
2003 CMAPI
2004 CONFIGRET
2005 WINAPI
2006 CM_Request_Eject_PC_Ex(
2007 IN HMACHINE hMachine);
2008
2009 /* CM_Run_Detection[_Ex].ulFlags constants */
2010 #define CM_DETECT_NEW_PROFILE 0x00000001
2011 #define CM_DETECT_CRASHED 0x00000002
2012 #define CM_DETECT_HWPROF_FIRST_BOOT 0x00000004
2013 #define CM_DETECT_RUN 0x80000000
2014 #define CM_DETECT_BITS 0x80000007
2015
2016 CMAPI
2017 CONFIGRET
2018 WINAPI
2019 CM_Run_Detection(
2020 IN ULONG ulFlags);
2021
2022 CMAPI
2023 CONFIGRET
2024 WINAPI
2025 CM_Run_Detection_Ex(
2026 IN ULONG ulFlags,
2027 IN HMACHINE hMachine);
2028
2029 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
2030
2031 CMAPI
2032 CONFIGRET
2033 WINAPI
2034 CM_Set_DevNode_Problem(
2035 IN DEVINST dnDevInst,
2036 IN ULONG ulProblem,
2037 IN ULONG ulFlags);
2038
2039 CMAPI
2040 CONFIGRET
2041 WINAPI
2042 CM_Set_DevNode_Problem_Ex(
2043 IN DEVINST dnDevInst,
2044 IN ULONG ulProblem,
2045 IN ULONG ulFlags,
2046 IN HMACHINE hMachine);
2047
2048 #define CM_Set_DevInst_Problem CM_Set_DevNode_Problem
2049 #define CM_Set_DevInst_Problem_Ex CM_Set_DevNode_Problem_Ex
2050
2051 CMAPI
2052 CONFIGRET
2053 WINAPI
2054 CM_Set_DevNode_Registry_PropertyA(
2055 IN DEVINST dnDevInst,
2056 IN ULONG ulProperty,
2057 IN PCVOID Buffer, OPTIONAL
2058 IN ULONG ulLength,
2059 IN ULONG ulFlags);
2060
2061 CMAPI
2062 CONFIGRET
2063 WINAPI
2064 CM_Set_DevNode_Registry_PropertyW(
2065 IN DEVINST dnDevInst,
2066 IN ULONG ulProperty,
2067 IN PCVOID Buffer, OPTIONAL
2068 IN ULONG ulLength,
2069 IN ULONG ulFlags);
2070
2071 CMAPI
2072 CONFIGRET
2073 WINAPI
2074 CM_Set_DevNode_Registry_Property_ExA(
2075 IN DEVINST dnDevInst,
2076 IN ULONG ulProperty,
2077 IN PCVOID Buffer, OPTIONAL
2078 IN ULONG ulLength,
2079 IN ULONG ulFlags,
2080 IN HMACHINE hMachine);
2081
2082 CMAPI
2083 CONFIGRET
2084 WINAPI
2085 CM_Set_DevNode_Registry_Property_ExW(
2086 IN DEVINST dnDevInst,
2087 IN ULONG ulProperty,
2088 IN PCVOID Buffer, OPTIONAL
2089 IN ULONG ulLength,
2090 IN ULONG ulFlags,
2091 IN HMACHINE hMachine);
2092
2093 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
2094 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
2095 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
2096 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
2097
2098 #ifdef UNICODE
2099 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
2100 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
2101 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
2102 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
2103 #else
2104 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
2105 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
2106 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
2107 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
2108 #endif /* UNICODE */
2109
2110 /* FIXME: Obsolete CM_Set_HW_Prof */
2111 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
2112
2113 /* CM_Set_HW_Prof_Flags[_Ex].ulFlags constants */
2114 #define CM_SET_HW_PROF_FLAGS_UI_NOT_OK (0x00000001)
2115 #define CM_SET_HW_PROF_FLAGS_BITS (0x00000001)
2116
2117 CMAPI
2118 CONFIGRET
2119 WINAPI
2120 CM_Set_HW_Prof_FlagsA(
2121 IN DEVINSTID_A szDevInstName,
2122 IN ULONG ulConfig,
2123 IN ULONG ulValue,
2124 IN ULONG ulFlags);
2125
2126 CMAPI
2127 CONFIGRET
2128 WINAPI
2129 CM_Set_HW_Prof_FlagsW(
2130 IN DEVINSTID_W szDevInstName,
2131 IN ULONG ulConfig,
2132 IN ULONG ulValue,
2133 IN ULONG ulFlags);
2134
2135 CMAPI
2136 CONFIGRET
2137 WINAPI
2138 CM_Set_HW_Prof_Flags_ExA(
2139 IN DEVINSTID_A szDevInstName,
2140 IN ULONG ulConfig,
2141 IN ULONG ulValue,
2142 IN ULONG ulFlags,
2143 IN HMACHINE hMachine);
2144
2145 CMAPI
2146 CONFIGRET
2147 WINAPI
2148 CM_Set_HW_Prof_Flags_ExW(
2149 IN DEVINSTID_W szDevInstName,
2150 IN ULONG ulConfig,
2151 IN ULONG ulValue,
2152 IN ULONG ulFlags,
2153 IN HMACHINE hMachine);
2154
2155 #ifdef UNICODE
2156 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
2157 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
2158 #else
2159 #define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
2160 #define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
2161 #endif /* UNICODE */
2162
2163 /* CM_Setup_DevInst[_Ex].ulFlags constants */
2164 #define CM_SETUP_DEVNODE_READY (0x00000000)
2165 #define CM_SETUP_DEVINST_READY CM_SETUP_DEVNODE_READY
2166 #define CM_SETUP_DOWNLOAD (0x00000001)
2167 #define CM_SETUP_WRITE_LOG_CONFS (0x00000002)
2168 #define CM_SETUP_PROP_CHANGE (0x00000003)
2169 #define CM_SETUP_DEVNODE_RESET (0x00000004)
2170 #define CM_SETUP_DEVINST_RESET CM_SETUP_DEVNODE_RESET
2171 #define CM_SETUP_BITS (0x00000007)
2172
2173 CMAPI
2174 CONFIGRET
2175 WINAPI
2176 CM_Setup_DevNode(
2177 IN DEVINST dnDevInst,
2178 IN ULONG ulFlags);
2179
2180 CMAPI
2181 CONFIGRET
2182 WINAPI
2183 CM_Setup_DevNode_Ex(
2184 IN DEVINST dnDevInst,
2185 IN ULONG ulFlags,
2186 IN HMACHINE hMachine);
2187
2188 /* FIXME: Obsolete CM_Test_Range_Available */
2189
2190 CMAPI
2191 CONFIGRET
2192 WINAPI
2193 CM_Uninstall_DevNode(
2194 IN DEVINST dnPhantom,
2195 IN ULONG ulFlags);
2196
2197 CMAPI
2198 CONFIGRET
2199 WINAPI
2200 CM_Uninstall_DevNode_Ex(
2201 IN DEVINST dnPhantom,
2202 IN ULONG ulFlags,
2203 IN HMACHINE hMachine);
2204
2205 /* FIXME: Obsolete CM_Unregister_Device_Interface */
2206 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
2207
2208 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
2209
2210 CMAPI
2211 DWORD
2212 WINAPI
2213 CMP_WaitNoPendingInstallEvents(
2214 IN DWORD dwTimeout);
2215
2216 #include <poppack.h>
2217
2218 #ifdef __cplusplus
2219 }
2220 #endif
2221
2222 #endif /* _CFGMGR32_H_ */