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 /* FIXME: Missing CMP_Init_Detection */
591 /* FIXME: Missing CMP_RegisterNotification */
592 /* FIXME: Missing CMP_Report_LogOn */
593 /* FIXME: Missing CMP_UnregisterNotification */
594 /* FIXME: Missing CMP_WaitNoPendingInstallEvents */
595 /* FIXME: Missing CMP_WaitServicesAvailable */
597 /* CM_Add_Empty_Log_Conf.ulFlags constants */
598 #define PRIORITY_EQUAL_FIRST 0x00000008
599 #define PRIORITY_EQUAL_LAST 0x00000000
600 #define PRIORITY_BIT 0x00000008
605 CM_Add_Empty_Log_Conf(
606 OUT PLOG_CONF plcLogConf
,
607 IN DEVINST dnDevInst
,
608 IN PRIORITY Priority
,
614 CM_Add_Empty_Log_Conf_Ex(
615 OUT PLOG_CONF plcLogConf
,
616 IN DEVINST dnDevInst
,
617 IN PRIORITY Priority
,
619 IN HMACHINE hMachine
);
621 /* CM_Add_ID.ulFlags constants */
622 #define CM_ADD_ID_HARDWARE 0x00000000
623 #define CM_ADD_ID_COMPATIBLE 0x00000001
624 #define CM_ADD_ID_BITS 0x00000001
630 IN DEVINST dnDevInst
,
633 IN HMACHINE hMachine
);
639 IN DEVINST dnDevInst
,
642 IN HMACHINE hMachine
);
648 IN DEVINST dnDevInst
,
651 IN HMACHINE hMachine
);
657 IN DEVINST dnDevInst
,
660 IN HMACHINE hMachine
);
663 #define CM_Add_ID CM_Add_IDW
664 #define CM_Add_ID_Ex CM_Add_ID_ExW
666 #define CM_Add_ID CM_Add_IDA
667 #define CM_Add_ID_Ex CM_Add_ID_ExA
670 /* FIXME: Obsolete CM_Add_Range */
676 OUT PRES_DES prdResDes
,
677 IN LOG_CONF lcLogConf
,
678 IN RESOURCEID ResourceID
,
679 IN PCVOID ResourceData
,
680 IN ULONG ResourceLen
,
687 OUT PRES_DES prdResDes
,
688 IN LOG_CONF lcLogConf
,
689 IN RESOURCEID ResourceID
,
690 IN PCVOID ResourceData
,
691 IN ULONG ResourceLen
,
693 IN HMACHINE hMachine
);
699 IN PCSTR UNCServerName
,
700 OUT PHMACHINE phMachine
);
706 IN PCWSTR UNCServerName
,
707 OUT PHMACHINE phMachine
);
710 #define CM_Connect_Machine CM_Connect_MachineW
712 #define CM_Connect_Machine CM_Connect_MachineA
715 /* FIXME: Obsolete CM_Create_DevNode */
716 /* FIXME: Obsolete CM_Create_DevNodeEx */
717 /* FIXME: Obsolete CM_Create_Range_List */
719 /* Flags for CM_Delete_Class_Key.ulFlags constants */
720 #define CM_DELETE_CLASS_ONLY 0x00000000
721 #define CM_DELETE_CLASS_SUBKEYS 0x00000001
722 #define CM_DELETE_CLASS_BITS 0x00000001
734 CM_Delete_Class_Key_Ex(
739 /* FIXME: Obsolete CM_Delete_DevNode_Key */
740 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
741 /* FIXME: Obsolete CM_Delete_Range */
742 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
743 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
744 /* FIXME: Obsolete CM_Disable_DevNode */
745 /* FIXME: Obsolete CM_Disable_DevNodeEx */
750 CM_Disconnect_Machine(
751 IN HMACHINE hMachine
);
753 /* FIXME: Obsolete CM_Enable_DevNode */
754 /* FIXME: Obsolete CM_Enable_DevNodeEx */
759 CM_Enumerate_Classes(
760 IN ULONG ulClassIndex
,
761 OUT LPGUID ClassGuid
,
767 CM_Enumerate_Classes_Ex(
768 IN ULONG ulClassIndex
,
769 OUT LPGUID ClassGuid
,
771 IN HMACHINE hMachine
);
776 CM_Enumerate_EnumeratorsA(
777 IN ULONG ulEnumIndex
,
779 IN OUT PULONG pulLength
,
785 CM_Enumerate_Enumerators_ExA(
786 IN ULONG ulEnumIndex
,
788 IN OUT PULONG pulLength
,
790 IN HMACHINE hMachine
);
795 CM_Enumerate_Enumerators_ExW(
796 IN ULONG ulEnumIndex
,
798 IN OUT PULONG pulLength
,
800 IN HMACHINE hMachine
);
805 CM_Enumerate_EnumeratorsW(
806 IN ULONG ulEnumIndex
,
808 IN OUT PULONG pulLength
,
812 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
813 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
815 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
816 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExA
819 /* FIXME: Obsolete CM_Find_Range */
820 /* FIXME: Obsolete CM_First_Range */
826 IN LOG_CONF lcLogConfToBeFreed
,
833 IN LOG_CONF lcLogConfToBeFreed
,
835 IN HMACHINE hMachine
);
840 CM_Free_Log_Conf_Handle(
841 IN LOG_CONF lcLogConf
);
843 /* FIXME: Obsolete CM_Free_Range_List */
849 OUT PRES_DES prdResDes
,
857 OUT PRES_DES prdResDes
,
860 IN HMACHINE hMachine
);
865 CM_Free_Res_Des_Handle(
866 IN RES_DES rdResDes
);
871 CM_Free_Resource_Conflict_Handle(
872 IN CONFLICT_LIST clConflictList
);
878 OUT PDEVINST pdnDevInst
,
879 IN DEVINST dnDevInst
,
886 OUT PDEVINST pdnDevInst
,
887 IN DEVINST dnDevInst
,
889 IN HMACHINE hMachine
);
897 IN OUT PULONG pulLength
,
906 IN OUT PULONG pulLength
,
912 CM_Get_Class_Name_ExA(
915 IN OUT PULONG pulLength
,
917 IN HMACHINE hMachine
);
922 CM_Get_Class_Name_ExW(
925 IN OUT PULONG pulLength
,
927 IN HMACHINE hMachine
);
930 #define CM_Get_Class_Name CM_Get_Class_NameW
931 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExW
933 #define CM_Get_Class_Name CM_Get_Class_NameA
934 #define CM_Get_Class_Name_Ex CM_Get_Class_Name_ExA
940 CM_Get_Class_Key_NameA(
942 OUT LPSTR pszKeyName
,
943 IN OUT PULONG pulLength
,
949 CM_Get_Class_Key_NameW(
951 OUT LPWSTR pszKeyName
,
952 IN OUT PULONG pulLength
,
958 CM_Get_Class_Key_Name_ExA(
960 OUT LPSTR pszKeyName
,
961 IN OUT PULONG pulLength
,
963 IN HMACHINE hMachine
);
968 CM_Get_Class_Key_Name_ExW(
970 OUT LPWSTR pszKeyName
,
971 IN OUT PULONG pulLength
,
973 IN HMACHINE hMachine
);
976 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameW
977 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExW
979 #define CM_Get_Class_Key_Name CM_Get_Class_Key_NameA
980 #define CM_Get_Class_Key_Name_Ex CM_Get_Class_Key_Name_ExA
983 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
990 IN DEVINST dnDevInst
,
998 IN DEVINST dnDevInst
,
1000 IN HMACHINE hMachine
);
1006 IN DEVINST dnDevInst
,
1014 CM_Get_Device_ID_ExA(
1015 IN DEVINST dnDevInst
,
1019 IN HMACHINE hMachine
);
1024 CM_Get_Device_ID_ExW(
1025 IN DEVINST dnDevInst
,
1029 IN HMACHINE hMachine
);
1035 IN DEVINST dnDevInst
,
1041 #define CM_Get_Device_ID CM_Get_Device_IDW
1042 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
1044 #define CM_Get_Device_ID CM_Get_Device_IDA
1045 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExA
1046 #endif /* UNICODE */
1051 CM_Get_Device_ID_ListA(
1052 IN PCSTR pszFilter
, OPTIONAL
1060 CM_Get_Device_ID_List_ExA(
1061 IN PCSTR pszFilter
, OPTIONAL
1065 IN HMACHINE hMachine
);
1070 CM_Get_Device_ID_List_ExW(
1071 IN PCWSTR pszFilter
, OPTIONAL
1075 IN HMACHINE hMachine
);
1080 CM_Get_Device_ID_ListW(
1081 IN PCWSTR pszFilter
, OPTIONAL
1087 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
1088 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
1090 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
1091 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
1092 #endif /* UNICODE */
1097 CM_Get_Device_ID_List_SizeA(
1099 IN PCSTR pszFilter
, OPTIONAL
1105 CM_Get_Device_ID_List_Size_ExA(
1107 IN PCSTR pszFilter
, OPTIONAL
1109 IN HMACHINE hMachine
);
1114 CM_Get_Device_ID_List_Size_ExW(
1116 IN PCWSTR pszFilter
, OPTIONAL
1118 IN HMACHINE hMachine
);
1123 CM_Get_Device_ID_List_SizeW(
1125 IN PCWSTR pszFilter
, OPTIONAL
1129 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1130 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1132 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1133 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1134 #endif /* UNICODE */
1139 CM_Get_Device_ID_Size(
1141 IN DEVINST dnDevInst
,
1147 CM_Get_Device_ID_Size_Ex(
1149 IN DEVINST dnDevInst
,
1151 IN HMACHINE hMachine
);
1153 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1154 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1155 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1156 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1157 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1158 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1159 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1160 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1165 CM_Get_DevNode_Registry_PropertyA(
1166 IN DEVINST dnDevInst
,
1167 IN ULONG ulProperty
,
1168 OUT PULONG pulRegDataType
, OPTIONAL
1169 OUT PVOID Buffer
, OPTIONAL
1170 IN OUT PULONG pulLength
,
1176 CM_Get_DevNode_Registry_PropertyW(
1177 IN DEVINST dnDevInst
,
1178 IN ULONG ulProperty
,
1179 OUT PULONG pulRegDataType
, OPTIONAL
1180 OUT PVOID Buffer
, OPTIONAL
1181 IN OUT PULONG pulLength
,
1187 CM_Get_DevNode_Registry_Property_ExA(
1188 IN DEVINST dnDevInst
,
1189 IN ULONG ulProperty
,
1190 OUT PULONG pulRegDataType
, OPTIONAL
1191 OUT PVOID Buffer
, OPTIONAL
1192 IN OUT PULONG pulLength
,
1194 IN HMACHINE hMachine
);
1199 CM_Get_DevNode_Registry_Property_ExW(
1200 IN DEVINST dnDevInst
,
1201 IN ULONG ulProperty
,
1202 OUT PULONG pulRegDataType
, OPTIONAL
1203 OUT PVOID Buffer
, OPTIONAL
1204 IN OUT PULONG pulLength
,
1206 IN HMACHINE hMachine
);
1208 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1209 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1210 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1211 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1214 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1215 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1216 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1217 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1219 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1220 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1221 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1222 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1223 #endif /* UNICODE */
1228 CM_Get_DevNode_Status(
1229 OUT PULONG pulStatus
,
1230 OUT PULONG pulProblemNumber
,
1231 IN DEVINST dnDevInst
,
1237 CM_Get_DevNode_Status_Ex(
1238 OUT PULONG pulStatus
,
1239 OUT PULONG pulProblemNumber
,
1240 IN DEVINST dnDevInst
,
1242 IN HMACHINE hMachine
);
1244 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1245 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1247 /* CM_Get_First_Log_Conf.ulFlags constants */
1248 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1249 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1250 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1251 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1252 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1253 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1254 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1255 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1260 CM_Get_First_Log_Conf(
1261 OUT PLOG_CONF plcLogConf
, OPTIONAL
1262 IN DEVINST dnDevInst
,
1268 CM_Get_First_Log_Conf_Ex(
1269 OUT PLOG_CONF plcLogConf
, OPTIONAL
1270 IN DEVINST dnDevInst
,
1272 IN HMACHINE hMachine
);
1277 CM_Get_Global_State(
1278 OUT PULONG pulState
,
1284 CM_Get_Global_State_Ex(
1285 OUT PULONG pulState
,
1287 IN HMACHINE hMachine
);
1289 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1290 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1291 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1292 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1297 CM_Get_Log_Conf_Priority(
1298 IN LOG_CONF lcLogConf
,
1299 OUT PPRIORITY pPriority
,
1305 CM_Get_Log_Conf_Priority_Ex(
1306 IN LOG_CONF lcLogConf
,
1307 OUT PPRIORITY pPriority
,
1309 IN HMACHINE hMachine
);
1314 CM_Get_Next_Log_Conf(
1315 OUT PLOG_CONF plcLogConf
, OPTIONAL
1316 IN LOG_CONF lcLogConf
,
1322 CM_Get_Next_Log_Conf_Ex(
1323 OUT PLOG_CONF plcLogConf
, OPTIONAL
1324 IN LOG_CONF lcLogConf
,
1326 IN HMACHINE hMachine
);
1331 CM_Get_Next_Res_Des(
1332 OUT PRES_DES prdResDes
,
1333 IN RES_DES rdResDes
,
1334 IN RESOURCEID ForResource
,
1335 OUT PRESOURCEID pResourceID
,
1341 CM_Get_Next_Res_Des_Ex(
1342 OUT PRES_DES prdResDes
,
1343 IN RES_DES rdResDes
,
1344 IN RESOURCEID ForResource
,
1345 OUT PRESOURCEID pResourceID
,
1347 IN HMACHINE hMachine
);
1353 OUT PDEVINST pdnDevInst
,
1354 IN DEVINST dnDevInst
,
1361 OUT PDEVINST pdnDevInst
,
1362 IN DEVINST dnDevInst
,
1364 IN HMACHINE hMachine
);
1369 CM_Get_Res_Des_Data(
1370 IN RES_DES rdResDes
,
1378 CM_Get_Res_Des_Data_Ex(
1379 IN RES_DES rdResDes
,
1383 IN HMACHINE hMachine
);
1388 CM_Get_Res_Des_Data_Size(
1390 IN RES_DES rdResDes
,
1396 CM_Get_Res_Des_Data_Size_Ex(
1398 IN RES_DES rdResDes
,
1400 IN HMACHINE hMachine
);
1405 CM_Get_Resource_Conflict_Count(
1406 IN CONFLICT_LIST clConflictList
,
1407 OUT PULONG pulCount
);
1412 CM_Get_Resource_Conflict_DetailsA(
1413 IN CONFLICT_LIST clConflictList
,
1415 IN OUT PCONFLICT_DETAILS_A pConflictDetails
);
1420 CM_Get_Resource_Conflict_DetailsW(
1421 IN CONFLICT_LIST clConflictList
,
1423 IN OUT PCONFLICT_DETAILS_W pConflictDetails
);
1426 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1428 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1429 #endif /* UNICODE */
1435 OUT PDEVINST pdnDevInst
,
1443 OUT PDEVINST pdnDevInst
,
1446 IN HMACHINE hMachine
);
1458 IN HMACHINE hMachine
);
1460 /* FIXME: Obsolete CM_Intersect_Range_List */
1461 /* FIXME: Obsolete CM_Invert_Range_List */
1466 CM_Is_Dock_Station_Present(
1467 OUT PBOOL pbPresent
);
1472 CM_Is_Dock_Station_Present_Ex(
1473 OUT PBOOL pbPresent
,
1474 IN HMACHINE hMachine
);
1476 /* CM_Locate_DevNode.ulFlags constants */
1477 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1478 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1479 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1480 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1481 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1483 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1484 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1485 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1486 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1487 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1493 OUT PDEVINST pdnDevInst
,
1494 IN DEVINSTID_A pDeviceID
, OPTIONAL
1500 CM_Locate_DevNode_ExA(
1501 OUT PDEVINST pdnDevInst
,
1502 IN DEVINSTID_A pDeviceID
, OPTIONAL
1504 IN HMACHINE hMachine
);
1509 CM_Locate_DevNode_ExW(
1510 OUT PDEVINST pdnDevInst
,
1511 IN DEVINSTID_W pDeviceID
, OPTIONAL
1513 IN HMACHINE hMachine
);
1519 OUT PDEVINST pdnDevInst
,
1520 IN DEVINSTID_W pDeviceID
, OPTIONAL
1523 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1524 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1525 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1526 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1529 #define CM_Locate_DevNode CM_Locate_DevNodeW
1530 #define CM_Locate_DevInst CM_Locate_DevNodeW
1531 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1532 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1534 #define CM_Locate_DevNode CM_Locate_DevNodeA
1535 #define CM_Locate_DevInst CM_Locate_DevNodeA
1536 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1537 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1538 #endif /* UNICODE */
1540 /* FIXME: Obsolete CM_Merge_Range_List */
1546 OUT PRES_DES prdResDes
,
1547 IN RES_DES rdResDes
,
1548 IN RESOURCEID ResourceID
,
1549 IN PCVOID ResourceData
,
1550 IN ULONG ResourceLen
,
1556 CM_Modify_Res_Des_Ex(
1557 OUT PRES_DES prdResDes
,
1558 IN RES_DES rdResDes
,
1559 IN RESOURCEID ResourceID
,
1560 IN PCVOID ResourceData
,
1561 IN ULONG ResourceLen
,
1563 IN HMACHINE hMachine
);
1565 /* FIXME: Obsolete CM_Move_DevNode */
1566 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1567 /* FIXME: Obsolete CM_Next_Range */
1573 IN LPGUID ClassGuid
, OPTIONAL
1574 IN LPCSTR pszClassName
, OPTIONAL
1575 IN REGSAM samDesired
,
1576 IN REGDISPOSITION Disposition
,
1584 IN LPGUID ClassGuid
, OPTIONAL
1585 IN LPCWSTR pszClassName
, OPTIONAL
1586 IN REGSAM samDesired
,
1587 IN REGDISPOSITION Disposition
,
1594 CM_Open_Class_Key_ExA(
1595 IN LPGUID pszClassGuid
, OPTIONAL
1596 IN LPCSTR pszClassName
, OPTIONAL
1597 IN REGSAM samDesired
,
1598 IN REGDISPOSITION Disposition
,
1601 IN HMACHINE hMachine
);
1606 CM_Open_Class_Key_ExW(
1607 IN LPGUID pszClassGuid
, OPTIONAL
1608 IN LPCWSTR pszClassName
, OPTIONAL
1609 IN REGSAM samDesired
,
1610 IN REGDISPOSITION Disposition
,
1613 IN HMACHINE hMachine
);
1616 #define CM_Open_Class_Key CM_Open_Class_KeyW
1617 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExW
1619 #define CM_Open_Class_Key CM_Open_Class_KeyA
1620 #define CM_Open_Class_Key_Ex CM_Open_Class_Key_ExA
1621 #endif /* UNICODE */
1623 /* FIXME: Obsolete CM_Open_DevNode_Key */
1624 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1626 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1627 #define CM_REMOVE_UI_OK 0x00000000
1628 #define CM_REMOVE_UI_NOT_OK 0x00000001
1629 #define CM_REMOVE_NO_RESTART 0x00000002
1630 #define CM_REMOVE_BITS 0x00000003
1635 CM_Query_And_Remove_SubTreeA(
1636 IN DEVINST dnAncestor
,
1637 OUT PPNP_VETO_TYPE pVetoType
,
1638 OUT LPSTR pszVetoName
,
1639 IN ULONG ulNameLength
,
1645 CM_Query_And_Remove_SubTreeW(
1646 IN DEVINST dnAncestor
,
1647 OUT PPNP_VETO_TYPE pVetoType
,
1648 OUT LPWSTR pszVetoName
,
1649 IN ULONG ulNameLength
,
1655 CM_Query_And_Remove_SubTree_ExA(
1656 IN DEVINST dnAncestor
,
1657 OUT PPNP_VETO_TYPE pVetoType
,
1658 OUT LPSTR pszVetoName
,
1659 IN ULONG ulNameLength
,
1661 IN HMACHINE hMachine
);
1666 CM_Query_And_Remove_SubTree_ExW(
1667 IN DEVINST dnAncestor
,
1668 OUT PPNP_VETO_TYPE pVetoType
,
1669 OUT LPWSTR pszVetoName
,
1670 IN ULONG ulNameLength
,
1672 IN HMACHINE hMachine
);
1674 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1675 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1676 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1677 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1678 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1679 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1680 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1685 CM_Query_Resource_Conflict_List(
1686 OUT PCONFLICT_LIST pclConflictList
,
1687 IN DEVINST dnDevInst
,
1688 IN RESOURCEID ResourceID
,
1689 IN PCVOID ResourceData
,
1690 IN ULONG ResourceLen
,
1692 IN HMACHINE hMachine
);
1694 /* CM_Reenumerate_DevNode.ulFlags constants */
1695 #define CM_REENUMERATE_NORMAL 0x00000000
1696 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1697 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1698 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1699 #define CM_REENUMERATE_BITS 0x00000007
1704 CM_Reenumerate_DevNode(
1705 IN DEVINST dnDevInst
,
1711 CM_Reenumerate_DevNode_Ex(
1712 IN DEVINST dnDevInst
,
1714 IN HMACHINE hMachine
);
1716 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1717 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1719 /* FIXME: Obsolete CM_Register_Device_Driver */
1720 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1721 /* FIXME: Obsolete CM_Register_Device_Interface */
1722 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1723 /* FIXME: Obsolete CM_Remove_SubTree */
1724 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1729 CM_Request_Device_EjectA(
1730 IN DEVINST dnDevInst
,
1731 OUT PPNP_VETO_TYPE pVetoType
,
1732 OUT LPSTR pszVetoName
,
1733 IN ULONG ulNameLength
,
1739 CM_Request_Device_Eject_ExW(
1740 IN DEVINST dnDevInst
,
1741 OUT PPNP_VETO_TYPE pVetoType
,
1742 OUT LPWSTR pszVetoName
,
1743 IN ULONG ulNameLength
,
1745 IN HMACHINE hMachine
);
1750 CM_Request_Device_Eject_ExA(
1751 IN DEVINST dnDevInst
,
1752 OUT PPNP_VETO_TYPE pVetoType
,
1753 OUT LPSTR pszVetoName
,
1754 IN ULONG ulNameLength
,
1756 IN HMACHINE hMachine
);
1761 CM_Request_Device_EjectW(
1762 IN DEVINST dnDevInst
,
1763 OUT PPNP_VETO_TYPE pVetoType
,
1764 OUT LPWSTR pszVetoName
,
1765 IN ULONG ulNameLength
,
1769 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1770 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1772 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1773 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1774 #endif /* UNICODE */
1776 /* FIXME: Obsolete CM_Request_Eject_PC */
1777 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1778 /* FIXME: Obsolete CM_Run_Detection */
1779 /* FIXME: Obsolete CM_Run_Detection_Ex */
1780 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1781 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1782 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1787 CM_Set_DevNode_Registry_PropertyA(
1788 IN DEVINST dnDevInst
,
1789 IN ULONG ulProperty
,
1790 IN PCVOID Buffer
, OPTIONAL
1797 CM_Set_DevNode_Registry_PropertyW(
1798 IN DEVINST dnDevInst
,
1799 IN ULONG ulProperty
,
1800 IN PCVOID Buffer
, OPTIONAL
1807 CM_Set_DevNode_Registry_Property_ExA(
1808 IN DEVINST dnDevInst
,
1809 IN ULONG ulProperty
,
1810 IN PCVOID Buffer
, OPTIONAL
1813 IN HMACHINE hMachine
);
1818 CM_Set_DevNode_Registry_Property_ExW(
1819 IN DEVINST dnDevInst
,
1820 IN ULONG ulProperty
,
1821 IN PCVOID Buffer
, OPTIONAL
1824 IN HMACHINE hMachine
);
1826 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
1827 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
1828 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
1829 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
1832 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
1833 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1834 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
1835 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1837 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
1838 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1839 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
1840 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1841 #endif /* UNICODE */
1843 /* FIXME: Obsolete CM_Set_HW_Prof */
1844 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1845 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1846 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1847 /* FIXME: Obsolete CM_Setup_DevNode */
1848 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1849 /* FIXME: Obsolete CM_Test_Range_Available */
1850 /* FIXME: Obsolete CM_Uninstall_DevNode */
1851 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1852 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1853 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1855 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1860 CMP_WaitNoPendingInstallEvents(
1861 IN DWORD dwTimeout
);
1863 #include <poppack.h>
1869 #endif /* __CFGMGR32_H */