4 * PnP configuration manager
6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
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.
27 #pragma GCC system_header
36 #if defined(_CFGMGR32_)
37 #define CMAPI DECLSPEC_EXPORT
39 #define CMAPI DECLSPEC_IMPORT
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
110 typedef DWORD RETURN_TYPE
;
111 typedef RETURN_TYPE CONFIGRET
;
113 typedef HANDLE HMACHINE
;
114 typedef HMACHINE
*PHMACHINE
;
116 typedef DWORD_PTR RES_DES
;
117 typedef RES_DES
*PRES_DES
;
119 typedef DWORD_PTR RANGE_ELEMENT
;
120 typedef RANGE_ELEMENT
*PRANGE_ELEMENT
;
122 typedef ULONG_PTR CONFLICT_LIST
;
123 typedef CONFLICT_LIST
*PCONFLICT_LIST
;
125 typedef DWORD_PTR LOG_CONF
;
126 typedef LOG_CONF
*PLOG_CONF
;
128 typedef ULONG PRIORITY
;
129 typedef PRIORITY
*PPRIORITY
;
131 typedef DWORD_PTR RANGE_LIST
;
132 typedef RANGE_LIST
*PRANGE_LIST
;
134 typedef DWORD DEVNODE
, DEVINST
;
135 typedef DEVNODE
*PDEVNODE
, *PDEVINST
;
137 typedef CHAR
*DEVNODEID_A
, *DEVINSTID_A
;
138 typedef WCHAR
*DEVNODEID_W
, *DEVINSTID_W
;
141 typedef DEVNODEID_W DEVNODEID
;
142 typedef DEVINSTID_W DEVINSTID
;
144 typedef DEVNODEID_A DEVNODEID
;
145 typedef DEVINSTID_A DEVINSTID
;
148 typedef ULONG REGDISPOSITION
;
150 typedef ULONG RESOURCEID
;
151 typedef RESOURCEID
*PRESOURCEID
;
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
159 #define MAX_CONFIG_VALUE 9999
160 #define MAX_INSTANCE_VALUE 9999
162 #define MAX_DEVICE_ID_LEN 200
163 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
165 #define MAX_CLASS_NAME_LEN 32
166 #define MAX_GUID_STRING_LEN 39
167 #define MAX_PROFILE_LEN 80
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
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
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
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
224 #define CM_DRP_MIN 0x00000001
225 #define CM_DRP_MAX 0x00000017
228 typedef struct BusNumber_Des_s
{
232 ULONG BUSD_Alloc_Base
;
233 ULONG BUSD_Alloc_End
;
234 } BUSNUMBER_DES
, *PBUSNUMBER_DES
;
236 typedef struct BusNumber_Range_s
{
239 ULONG BUSR_nBusNumbers
;
241 } BUSNUMBER_RANGE
, *PBUSNUMBER_RANGE
;
243 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
245 typedef struct BusNumber_Resource_s
{
246 BUSNUMBER_DES BusNumber_Header
;
247 BUSNUMBER_RANGE BusNumber_Data
[ANYSIZE_ARRAY
];
248 } BUSNUMBER_RESOURCE
, *PBUSNUMBER_RESOURCE
;
250 typedef struct CS_Des_s
{
251 DWORD CSD_SignatureLength
;
252 DWORD CSD_LegacyDataOffset
;
253 DWORD CSD_LegacyDataSize
;
256 BYTE CSD_Signature
[ANYSIZE_ARRAY
];
259 typedef struct CS_Resource_s
{
261 } CS_RESOURCE
, *PCS_RESOURCE
;
263 typedef struct DevPrivate_Des_s
{
270 } DEVPRIVATE_DES
, *PDEVPRIVATE_DES
;
272 typedef struct DevPrivate_Range_s
{
276 } DEVPRIVATE_RANGE
, *PDEVPRIVATE_RANGE
;
278 #define PType_Range sizeof(DEVPRIVATE_RANGE)
280 typedef struct DevPrivate_Resource_s
{
281 DEVPRIVATE_DES PRV_Header
;
282 DEVPRIVATE_RANGE PRV_Data
[ANYSIZE_ARRAY
];
283 } DEVPRIVATE_RESOURCE
, *PDEVPRIVATE_RESOURCE
;
285 /* DMA_DES.DD_Flags constants and masks */
286 #define mDD_Width 0x3
289 #define fDD_DWORD 0x2
290 #define fDD_BYTE_AND_WORD 0x3
292 #define mDD_BusMaster 0x4
293 #define fDD_NoBusMaster 0x0
294 #define fDD_BusMaster 0x4
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
302 typedef struct DMA_Des_s
{
307 } DMA_DES
, *PDMA_DES
;
309 typedef struct DMA_Range_s
{
313 } DMA_RANGE
, *PDMA_RANGE
;
315 #define DType_Range sizeof(DMA_RANGE)
317 typedef struct DMA_Resource_s
{
319 DMA_RANGE DMA_Data
[ANYSIZE_ARRAY
];
320 } DMA_RESOURCE
, *PDMA_RESOURCE
;
322 /* IO_DES.Type constants and masks */
323 #define fIOD_PortType 0x1
324 #define fIOD_Memory 0x0
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
334 typedef struct IO_Des_s
{
337 DWORDLONG IOD_Alloc_Base
;
338 DWORDLONG IOD_Alloc_End
;
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
348 typedef struct IO_Range_s
{
353 DWORD IOR_RangeFlags
;
355 } IO_RANGE
, *PIO_RANGE
;
357 #define IOType_Range sizeof(IO_RANGE)
359 typedef struct IO_Resource_s
{
361 IO_RANGE IO_Data
[ANYSIZE_ARRAY
];
362 } IO_RESOURCE
, *PIO_RESOURCE
;
364 /* IRQ_DES.IRQD_flags constants */
365 #define mIRQD_Share 0x1
366 #define fIRQD_Exclusive 0x0
367 #define fIRQD_Share 0x1
369 #define fIRQD_Share_Bit 0
370 #define fIRQD_Level_Bit 1
372 #define mIRQD_Edge_Level 0x2
373 #define fIRQD_Level 0x0
374 #define fIRQD_Edge 0x2
376 typedef struct IRQ_Des_32_s
{
380 ULONG IRQD_Alloc_Num
;
381 ULONG32 IRQD_Affinity
;
382 } IRQ_DES_32
, *PIRQ_DES_32
;
384 typedef struct IRQ_Des_64_s
{
388 ULONG IRQD_Alloc_Num
;
389 ULONG64 IRQD_Affinity
;
390 } IRQ_DES_64
, *PIRQ_DES_64
;
393 typedef IRQ_DES_64 IRQ_DES
;
394 typedef PIRQ_DES_64 PIRQ_DES
;
396 typedef IRQ_DES_32 IRQ_DES
;
397 typedef PIRQ_DES_32 PIRQ_DES
;
400 typedef struct IRQ_Range_s
{
404 } IRQ_RANGE
, *PIRQ_RANGE
;
406 #define IRQType_Range sizeof(IRQ_RANGE)
408 typedef struct IRQ_Resource_s
{
410 IRQ_RANGE IRQ_Data
[ANYSIZE_ARRAY
];
411 } IRQ_RESOURCE
, *PIRQ_RESOURCE
;
413 /* MEM_DES.MD_Flags constants */
414 #define mMD_MemoryType 0x1
415 #define fMD_MemoryType mMD_MemoryType
419 #define mMD_32_24 0x2
420 #define fMD_32_24 mMD_32_24
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
430 #define mMD_Readable 0x8
431 #define fMD_Readable mMD_Readable
432 #define fMD_ReadAllowed 0x0
433 #define fMD_ReadDisallowed 0x8
435 #define mMD_CombinedWrite 0x10
436 #define fMD_CombinedWrite mMD_CombinedWrite
437 #define fMD_CombinedWriteDisallowed 0x0
438 #define fMD_CombinedWriteAllowed 0x10
440 #define mMD_Cacheable 0x20
441 #define fMD_NonCacheable 0x0
442 #define fMD_Cacheable 0x20
444 typedef struct Mem_Des_s
{
447 DWORDLONG MD_Alloc_Base
;
448 DWORDLONG MD_Alloc_End
;
451 } MEM_DES
, *PMEM_DES
;
453 typedef struct Mem_Range_s
{
460 } MEM_RANGE
, *PMEM_RANGE
;
462 #define MType_Range sizeof(MEM_RANGE)
464 typedef struct Mem_Resource_s
{
466 MEM_RANGE MEM_Data
[ANYSIZE_ARRAY
];
467 } MEM_RESOURCE
, *PMEM_RESOURCE
;
469 /* MFCARD_DES.PMF_Flags constants */
470 #define fPMF_AUDIO_ENABLE 0x8
471 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
473 typedef struct MfCard_Des_s
{
477 BYTE PMF_ConfigOptions
;
478 BYTE PMF_IoResourceIndex
;
479 BYTE PMF_Reserved
[2];
480 DWORD PMF_ConfigRegisterBase
;
481 } MFCARD_DES
, *PMFCARD_DES
;
483 typedef struct MfCard_Resource_s
{
484 MFCARD_DES MfCard_Header
;
485 } MFCARD_RESOURCE
, *PMFCARD_RESOURCE
;
487 /* PCCARD_DES.PCD_Flags constants */
489 typedef struct PcCard_Des_s
{
493 BYTE PCD_ConfigIndex
;
494 BYTE PCD_Reserved
[3];
495 DWORD PCD_MemoryCardBase1
;
496 DWORD PCD_MemoryCardBase2
;
497 } PCCARD_DES
, *PPCCARD_DES
;
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
516 #define fPCD_MEM_A 0x4
518 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
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
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
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
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
542 #define PCD_MAX_MEMORY 2
545 typedef struct PcCard_Resource_s
{
546 PCCARD_DES PcCard_Header
;
547 } PCCARD_RESOURCE
, *PPCCARD_RESOURCE
;
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
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
562 typedef struct _CONFLICT_DETAILS_A
{
565 DEVINST CD_dnDevInst
;
568 CHAR CD_szDescription
[MAX_PATH
];
569 } CONFLICT_DETAILS_A
, *PCONFLICT_DETAILS_A
;
571 typedef struct _CONFLICT_DETAILS_W
{
574 DEVINST CD_dnDevInst
;
577 WCHAR CD_szDescription
[MAX_PATH
];
578 } CONFLICT_DETAILS_W
, *PCONFLICT_DETAILS_W
;
581 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS
;
582 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS
;
584 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS
;
585 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS
;
590 /* CM_Add_Empty_Log_Conf.ulFlags constants */
591 #define PRIORITY_EQUAL_FIRST 0x00000008
592 #define PRIORITY_EQUAL_LAST 0x00000000
593 #define PRIORITY_BIT 0x00000008
598 CM_Add_Empty_Log_Conf(
599 OUT PLOG_CONF plcLogConf
,
600 IN DEVINST dnDevInst
,
601 IN PRIORITY Priority
,
607 CM_Add_Empty_Log_Conf_Ex(
608 OUT PLOG_CONF plcLogConf
,
609 IN DEVINST dnDevInst
,
610 IN PRIORITY Priority
,
612 IN HMACHINE hMachine
);
614 /* CM_Add_ID.ulFlags constants */
615 #define CM_ADD_ID_HARDWARE 0x00000000
616 #define CM_ADD_ID_COMPATIBLE 0x00000001
617 #define CM_ADD_ID_BITS 0x00000001
623 IN DEVINST dnDevInst
,
626 IN HMACHINE hMachine
);
632 IN DEVINST dnDevInst
,
635 IN HMACHINE hMachine
);
641 IN DEVINST dnDevInst
,
644 IN HMACHINE hMachine
);
650 IN DEVINST dnDevInst
,
653 IN HMACHINE hMachine
);
656 #define CM_Add_ID CM_Add_IDW
657 #define CM_Add_ID_Ex CM_Add_ID_ExW
659 #define CM_Add_ID CM_Add_IDA
660 #define CM_Add_ID_Ex CM_Add_ID_ExA
663 /* FIXME: Obsolete CM_Add_Range */
669 OUT PRES_DES prdResDes
,
670 IN LOG_CONF lcLogConf
,
671 IN RESOURCEID ResourceID
,
672 IN PCVOID ResourceData
,
673 IN ULONG ResourceLen
,
680 OUT PRES_DES prdResDes
,
681 IN LOG_CONF lcLogConf
,
682 IN RESOURCEID ResourceID
,
683 IN PCVOID ResourceData
,
684 IN ULONG ResourceLen
,
686 IN HMACHINE hMachine
);
692 IN PCSTR UNCServerName
,
693 OUT PHMACHINE phMachine
);
699 IN PCWSTR UNCServerName
,
700 OUT PHMACHINE phMachine
);
703 #define CM_Connect_Machine CM_Connect_MachineW
705 #define CM_Connect_Machine CM_Connect_MachineA
708 /* FIXME: Obsolete CM_Create_DevNode */
709 /* FIXME: Obsolete CM_Create_DevNodeEx */
710 /* FIXME: Obsolete CM_Create_Range_List */
711 /* FIXME: Obsolete CM_Delete_Class_Key */
712 /* FIXME: Obsolete CM_Delete_Class_Key_Ex */
713 /* FIXME: Obsolete CM_Delete_DevNode_Key */
714 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
715 /* FIXME: Obsolete CM_Delete_Range */
716 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
717 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
718 /* FIXME: Obsolete CM_Disable_DevNode */
719 /* FIXME: Obsolete CM_Disable_DevNodeEx */
724 CM_Disconnect_Machine(
725 IN HMACHINE hMachine
);
727 /* FIXME: Obsolete CM_Enable_DevNode */
728 /* FIXME: Obsolete CM_Enable_DevNodeEx */
733 CM_Enumerate_Classes(
734 IN ULONG ulClassIndex
,
735 OUT LPGUID ClassGuid
,
741 CM_Enumerate_Classes_Ex(
742 IN ULONG ulClassIndex
,
743 OUT LPGUID ClassGuid
,
745 IN HMACHINE hMachine
);
750 CM_Enumerate_EnumeratorsA(
751 IN ULONG ulEnumIndex
,
753 IN OUT PULONG pulLength
,
759 CM_Enumerate_Enumerators_ExA(
760 IN ULONG ulEnumIndex
,
762 IN OUT PULONG pulLength
,
764 IN HMACHINE hMachine
);
769 CM_Enumerate_Enumerators_ExW(
770 IN ULONG ulEnumIndex
,
772 IN OUT PULONG pulLength
,
774 IN HMACHINE hMachine
);
779 CM_Enumerate_EnumeratorsW(
780 IN ULONG ulEnumIndex
,
782 IN OUT PULONG pulLength
,
786 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
787 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
789 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
790 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
793 /* FIXME: Obsolete CM_Find_Range */
794 /* FIXME: Obsolete CM_First_Range */
800 IN LOG_CONF lcLogConfToBeFreed
,
807 IN LOG_CONF lcLogConfToBeFreed
,
809 IN HMACHINE hMachine
);
814 CM_Free_Log_Conf_Handle(
815 IN LOG_CONF lcLogConf
);
817 /* FIXME: Obsolete CM_Free_Range_List */
823 OUT PRES_DES prdResDes
,
831 OUT PRES_DES prdResDes
,
834 IN HMACHINE hMachine
);
839 CM_Free_Res_Des_Handle(
840 IN RES_DES rdResDes
);
845 CM_Free_Resource_Conflict_Handle(
846 IN CONFLICT_LIST clConflictList
);
852 OUT PDEVINST pdnDevInst
,
853 IN DEVINST dnDevInst
,
860 OUT PDEVINST pdnDevInst
,
861 IN DEVINST dnDevInst
,
863 IN HMACHINE hMachine
);
871 IN OUT PULONG pulLength
,
880 IN OUT PULONG pulLength
,
886 CM_Get_Class_Name_ExA(
889 IN OUT PULONG pulLength
,
891 IN HMACHINE hMachine
);
896 CM_Get_Class_Name_ExW(
899 IN OUT PULONG pulLength
,
901 IN HMACHINE hMachine
);
904 #define CM_Get_Class_Name CM_Get_Class_NameW
905 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
907 #define CM_Get_Class_Name CM_Get_Class_NameA
908 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
914 CM_Get_Class_Key_NameA(
916 OUT LPSTR pszKeyName
,
917 IN OUT PULONG pulLength
,
923 CM_Get_Class_Key_NameW(
925 OUT LPWSTR pszKeyName
,
926 IN OUT PULONG pulLength
,
932 CM_Get_Class_Key_Name_ExA(
934 OUT LPSTR pszKeyName
,
935 IN OUT PULONG pulLength
,
937 IN HMACHINE hMachine
);
942 CM_Get_Class_Key_Name_ExW(
944 OUT LPWSTR pszKeyName
,
945 IN OUT PULONG pulLength
,
947 IN HMACHINE hMachine
);
950 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
951 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
953 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
954 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
957 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
964 IN DEVINST dnDevInst
,
972 IN DEVINST dnDevInst
,
974 IN HMACHINE hMachine
);
980 IN DEVINST dnDevInst
,
988 CM_Get_Device_ID_ExA(
989 IN DEVINST dnDevInst
,
993 IN HMACHINE hMachine
);
998 CM_Get_Device_ID_ExW(
999 IN DEVINST dnDevInst
,
1003 IN HMACHINE hMachine
);
1009 IN DEVINST dnDevInst
,
1015 #define CM_Get_Device_ID CM_Get_Device_IDW
1016 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1018 #define CM_Get_Device_ID CM_Get_Device_IDA
1019 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1020 #endif /* UNICODE */
1025 CM_Get_Device_ID_ListA(
1026 IN PCSTR pszFilter
, OPTIONAL
1034 CM_Get_Device_ID_List_ExA(
1035 IN PCSTR pszFilter
, OPTIONAL
1039 IN HMACHINE hMachine
);
1044 CM_Get_Device_ID_List_ExW(
1045 IN PCWSTR pszFilter
, OPTIONAL
1049 IN HMACHINE hMachine
);
1054 CM_Get_Device_ID_ListW(
1055 IN PCWSTR pszFilter
, OPTIONAL
1061 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1062 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1064 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1065 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1066 #endif /* UNICODE */
1071 CM_Get_Device_ID_List_SizeA(
1073 IN PCSTR pszFilter
, OPTIONAL
1079 CM_Get_Device_ID_List_Size_ExA(
1081 IN PCSTR pszFilter
, OPTIONAL
1083 IN HMACHINE hMachine
);
1088 CM_Get_Device_ID_List_Size_ExW(
1090 IN PCWSTR pszFilter
, OPTIONAL
1092 IN HMACHINE hMachine
);
1097 CM_Get_Device_ID_List_SizeW(
1099 IN PCWSTR pszFilter
, OPTIONAL
1103 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1104 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1106 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1107 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1108 #endif /* UNICODE */
1113 CM_Get_Device_ID_Size(
1115 IN DEVINST dnDevInst
,
1121 CM_Get_Device_ID_Size_Ex(
1123 IN DEVINST dnDevInst
,
1125 IN HMACHINE hMachine
);
1127 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1128 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1129 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1130 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1131 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1132 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1133 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1134 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1139 CM_Get_DevNode_Registry_PropertyA(
1140 IN DEVINST dnDevInst
,
1141 IN ULONG ulProperty
,
1142 OUT PULONG pulRegDataType
, OPTIONAL
1143 OUT PVOID Buffer
, OPTIONAL
1144 IN OUT PULONG pulLength
,
1150 CM_Get_DevNode_Registry_PropertyW(
1151 IN DEVINST dnDevInst
,
1152 IN ULONG ulProperty
,
1153 OUT PULONG pulRegDataType
, OPTIONAL
1154 OUT PVOID Buffer
, OPTIONAL
1155 IN OUT PULONG pulLength
,
1161 CM_Get_DevNode_Registry_Property_ExA(
1162 IN DEVINST dnDevInst
,
1163 IN ULONG ulProperty
,
1164 OUT PULONG pulRegDataType
, OPTIONAL
1165 OUT PVOID Buffer
, OPTIONAL
1166 IN OUT PULONG pulLength
,
1168 IN HMACHINE hMachine
);
1173 CM_Get_DevNode_Registry_Property_ExW(
1174 IN DEVINST dnDevInst
,
1175 IN ULONG ulProperty
,
1176 OUT PULONG pulRegDataType
, OPTIONAL
1177 OUT PVOID Buffer
, OPTIONAL
1178 IN OUT PULONG pulLength
,
1180 IN HMACHINE hMachine
);
1182 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1183 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1184 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1185 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1188 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1189 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1190 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1191 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1193 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1194 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1195 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1196 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1197 #endif /* UNICODE */
1202 CM_Get_DevNode_Status(
1203 OUT PULONG pulStatus
,
1204 OUT PULONG pulProblemNumber
,
1205 IN DEVINST dnDevInst
,
1211 CM_Get_DevNode_Status_Ex(
1212 OUT PULONG pulStatus
,
1213 OUT PULONG pulProblemNumber
,
1214 IN DEVINST dnDevInst
,
1216 IN HMACHINE hMachine
);
1218 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1219 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1221 /* CM_Get_First_Log_Conf.ulFlags constants */
1222 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1223 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1224 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1225 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1226 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1227 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1228 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1229 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1234 CM_Get_First_Log_Conf(
1235 OUT PLOG_CONF plcLogConf
, OPTIONAL
1236 IN DEVINST dnDevInst
,
1242 CM_Get_First_Log_Conf_Ex(
1243 OUT PLOG_CONF plcLogConf
, OPTIONAL
1244 IN DEVINST dnDevInst
,
1246 IN HMACHINE hMachine
);
1251 CM_Get_Global_State(
1252 OUT PULONG pulState
,
1258 CM_Get_Global_State_Ex(
1259 OUT PULONG pulState
,
1261 IN HMACHINE hMachine
);
1263 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1264 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1265 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1266 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1271 CM_Get_Log_Conf_Priority(
1272 IN LOG_CONF lcLogConf
,
1273 OUT PPRIORITY pPriority
,
1279 CM_Get_Log_Conf_Priority_Ex(
1280 IN LOG_CONF lcLogConf
,
1281 OUT PPRIORITY pPriority
,
1283 IN HMACHINE hMachine
);
1288 CM_Get_Next_Log_Conf(
1289 OUT PLOG_CONF plcLogConf
, OPTIONAL
1290 IN LOG_CONF lcLogConf
,
1296 CM_Get_Next_Log_Conf_Ex(
1297 OUT PLOG_CONF plcLogConf
, OPTIONAL
1298 IN LOG_CONF lcLogConf
,
1300 IN HMACHINE hMachine
);
1305 CM_Get_Next_Res_Des(
1306 OUT PRES_DES prdResDes
,
1307 IN RES_DES rdResDes
,
1308 IN RESOURCEID ForResource
,
1309 OUT PRESOURCEID pResourceID
,
1315 CM_Get_Next_Res_Des_Ex(
1316 OUT PRES_DES prdResDes
,
1317 IN RES_DES rdResDes
,
1318 IN RESOURCEID ForResource
,
1319 OUT PRESOURCEID pResourceID
,
1321 IN HMACHINE hMachine
);
1327 OUT PDEVINST pdnDevInst
,
1328 IN DEVINST dnDevInst
,
1335 OUT PDEVINST pdnDevInst
,
1336 IN DEVINST dnDevInst
,
1338 IN HMACHINE hMachine
);
1343 CM_Get_Res_Des_Data(
1344 IN RES_DES rdResDes
,
1352 CM_Get_Res_Des_Data_Ex(
1353 IN RES_DES rdResDes
,
1357 IN HMACHINE hMachine
);
1362 CM_Get_Res_Des_Data_Size(
1364 IN RES_DES rdResDes
,
1370 CM_Get_Res_Des_Data_Size_Ex(
1372 IN RES_DES rdResDes
,
1374 IN HMACHINE hMachine
);
1379 CM_Get_Resource_Conflict_Count(
1380 IN CONFLICT_LIST clConflictList
,
1381 OUT PULONG pulCount
);
1386 CM_Get_Resource_Conflict_DetailsA(
1387 IN CONFLICT_LIST clConflictList
,
1389 IN OUT PCONFLICT_DETAILS_A pConflictDetails
);
1394 CM_Get_Resource_Conflict_DetailsW(
1395 IN CONFLICT_LIST clConflictList
,
1397 IN OUT PCONFLICT_DETAILS_W pConflictDetails
);
1400 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1402 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1403 #endif /* UNICODE */
1409 OUT PDEVINST pdnDevInst
,
1417 OUT PDEVINST pdnDevInst
,
1420 IN HMACHINE hMachine
);
1432 IN HMACHINE hMachine
);
1434 /* FIXME: Obsolete CM_Intersect_Range_List */
1435 /* FIXME: Obsolete CM_Invert_Range_List */
1436 /* FIXME: Obsolete CM_Is_Dock_Station_Present */
1437 /* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
1439 /* CM_Locate_DevNode.ulFlags constants */
1440 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1441 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1442 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1443 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1444 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1446 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1447 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1448 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1449 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1450 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1456 OUT PDEVINST pdnDevInst
,
1457 IN DEVINSTID_A pDeviceID
, OPTIONAL
1463 CM_Locate_DevNode_ExA(
1464 OUT PDEVINST pdnDevInst
,
1465 IN DEVINSTID_A pDeviceID
, OPTIONAL
1467 IN HMACHINE hMachine
);
1472 CM_Locate_DevNode_ExW(
1473 OUT PDEVINST pdnDevInst
,
1474 IN DEVINSTID_W pDeviceID
, OPTIONAL
1476 IN HMACHINE hMachine
);
1482 OUT PDEVINST pdnDevInst
,
1483 IN DEVINSTID_W pDeviceID
, OPTIONAL
1486 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1487 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1488 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1489 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1492 #define CM_Locate_DevNode CM_Locate_DevNodeW
1493 #define CM_Locate_DevInst CM_Locate_DevNodeW
1494 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1495 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1497 #define CM_Locate_DevNode CM_Locate_DevNodeA
1498 #define CM_Locate_DevInst CM_Locate_DevNodeA
1499 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1500 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1501 #endif /* UNICODE */
1503 /* FIXME: Obsolete CM_Merge_Range_List */
1509 OUT PRES_DES prdResDes
,
1510 IN RES_DES rdResDes
,
1511 IN RESOURCEID ResourceID
,
1512 IN PCVOID ResourceData
,
1513 IN ULONG ResourceLen
,
1519 CM_Modify_Res_Des_Ex(
1520 OUT PRES_DES prdResDes
,
1521 IN RES_DES rdResDes
,
1522 IN RESOURCEID ResourceID
,
1523 IN PCVOID ResourceData
,
1524 IN ULONG ResourceLen
,
1526 IN HMACHINE hMachine
);
1528 /* FIXME: Obsolete CM_Move_DevNode */
1529 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1530 /* FIXME: Obsolete CM_Next_Range */
1536 IN LPGUID ClassGuid
, OPTIONAL
1537 IN LPCSTR pszClassName
, OPTIONAL
1538 IN REGSAM samDesired
,
1539 IN REGDISPOSITION Disposition
,
1547 IN LPGUID ClassGuid
, OPTIONAL
1548 IN LPCWSTR pszClassName
, OPTIONAL
1549 IN REGSAM samDesired
,
1550 IN REGDISPOSITION Disposition
,
1557 CM_Open_Class_Key_ExA(
1558 IN LPGUID pszClassGuid
, OPTIONAL
1559 IN LPCSTR pszClassName
, OPTIONAL
1560 IN REGSAM samDesired
,
1561 IN REGDISPOSITION Disposition
,
1564 IN HMACHINE hMachine
);
1569 CM_Open_Class_Key_ExW(
1570 IN LPGUID pszClassGuid
, OPTIONAL
1571 IN LPCWSTR pszClassName
, OPTIONAL
1572 IN REGSAM samDesired
,
1573 IN REGDISPOSITION Disposition
,
1576 IN HMACHINE hMachine
);
1579 #define CM_Open_Class_Key CM_Open_Class_KeyW
1580 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
1582 #define CM_Open_Class_Key CM_Open_Class_KeyA
1583 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
1584 #endif /* UNICODE */
1586 /* FIXME: Obsolete CM_Open_DevNode_Key */
1587 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1589 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1590 #define CM_REMOVE_UI_OK 0x00000000
1591 #define CM_REMOVE_UI_NOT_OK 0x00000001
1592 #define CM_REMOVE_NO_RESTART 0x00000002
1593 #define CM_REMOVE_BITS 0x00000003
1598 CM_Query_And_Remove_SubTreeA(
1599 IN DEVINST dnAncestor
,
1600 OUT PPNP_VETO_TYPE pVetoType
,
1601 OUT LPSTR pszVetoName
,
1602 IN ULONG ulNameLength
,
1608 CM_Query_And_Remove_SubTreeW(
1609 IN DEVINST dnAncestor
,
1610 OUT PPNP_VETO_TYPE pVetoType
,
1611 OUT LPWSTR pszVetoName
,
1612 IN ULONG ulNameLength
,
1618 CM_Query_And_Remove_SubTree_ExA(
1619 IN DEVINST dnAncestor
,
1620 OUT PPNP_VETO_TYPE pVetoType
,
1621 OUT LPSTR pszVetoName
,
1622 IN ULONG ulNameLength
,
1624 IN HMACHINE hMachine
);
1629 CM_Query_And_Remove_SubTree_ExW(
1630 IN DEVINST dnAncestor
,
1631 OUT PPNP_VETO_TYPE pVetoType
,
1632 OUT LPWSTR pszVetoName
,
1633 IN ULONG ulNameLength
,
1635 IN HMACHINE hMachine
);
1637 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1638 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1639 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1640 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1641 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1642 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1643 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1648 CM_Query_Resource_Conflict_List(
1649 OUT PCONFLICT_LIST pclConflictList
,
1650 IN DEVINST dnDevInst
,
1651 IN RESOURCEID ResourceID
,
1652 IN PCVOID ResourceData
,
1653 IN ULONG ResourceLen
,
1655 IN HMACHINE hMachine
);
1657 /* CM_Reenumerate_DevNode.ulFlags constants */
1658 #define CM_REENUMERATE_NORMAL 0x00000000
1659 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1660 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1661 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1662 #define CM_REENUMERATE_BITS 0x00000007
1667 CM_Reenumerate_DevNode(
1668 IN DEVINST dnDevInst
,
1674 CM_Reenumerate_DevNode_Ex(
1675 IN DEVINST dnDevInst
,
1677 IN HMACHINE hMachine
);
1679 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1680 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1682 /* FIXME: Obsolete CM_Register_Device_Driver */
1683 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1684 /* FIXME: Obsolete CM_Register_Device_Interface */
1685 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1686 /* FIXME: Obsolete CM_Remove_SubTree */
1687 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1692 CM_Request_Device_EjectA(
1693 IN DEVINST dnDevInst
,
1694 OUT PPNP_VETO_TYPE pVetoType
,
1695 OUT LPSTR pszVetoName
,
1696 IN ULONG ulNameLength
,
1702 CM_Request_Device_Eject_ExW(
1703 IN DEVINST dnDevInst
,
1704 OUT PPNP_VETO_TYPE pVetoType
,
1705 OUT LPWSTR pszVetoName
,
1706 IN ULONG ulNameLength
,
1708 IN HMACHINE hMachine
);
1713 CM_Request_Device_Eject_ExA(
1714 IN DEVINST dnDevInst
,
1715 OUT PPNP_VETO_TYPE pVetoType
,
1716 OUT LPSTR pszVetoName
,
1717 IN ULONG ulNameLength
,
1719 IN HMACHINE hMachine
);
1724 CM_Request_Device_EjectW(
1725 IN DEVINST dnDevInst
,
1726 OUT PPNP_VETO_TYPE pVetoType
,
1727 OUT LPWSTR pszVetoName
,
1728 IN ULONG ulNameLength
,
1732 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1733 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1735 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1736 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1737 #endif /* UNICODE */
1739 /* FIXME: Obsolete CM_Request_Eject_PC */
1740 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1741 /* FIXME: Obsolete CM_Run_Detection */
1742 /* FIXME: Obsolete CM_Run_Detection_Ex */
1743 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1744 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1745 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1750 CM_Set_DevNode_Registry_PropertyA(
1751 IN DEVINST dnDevInst
,
1752 IN ULONG ulProperty
,
1753 IN PCVOID Buffer
, OPTIONAL
1760 CM_Set_DevNode_Registry_PropertyW(
1761 IN DEVINST dnDevInst
,
1762 IN ULONG ulProperty
,
1763 IN PCVOID Buffer
, OPTIONAL
1770 CM_Set_DevNode_Registry_Property_ExA(
1771 IN DEVINST dnDevInst
,
1772 IN ULONG ulProperty
,
1773 IN PCVOID Buffer
, OPTIONAL
1776 IN HMACHINE hMachine
);
1781 CM_Set_DevNode_Registry_Property_ExW(
1782 IN DEVINST dnDevInst
,
1783 IN ULONG ulProperty
,
1784 IN PCVOID Buffer
, OPTIONAL
1787 IN HMACHINE hMachine
);
1789 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
1790 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
1791 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
1792 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
1795 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
1796 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1797 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
1798 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1800 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
1801 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1802 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
1803 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1804 #endif /* UNICODE */
1806 /* FIXME: Obsolete CM_Set_HW_Prof */
1807 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1808 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1809 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1810 /* FIXME: Obsolete CM_Setup_DevNode */
1811 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1812 /* FIXME: Obsolete CM_Test_Range_Available */
1813 /* FIXME: Obsolete CM_Uninstall_DevNode */
1814 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1815 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1816 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1818 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1823 CMP_WaitNoPendingInstallEvents(
1824 IN DWORD dwTimeout
);
1826 #include <poppack.h>
1832 #endif /* __CFGMGR32_H */