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_ExW
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
);
865 /* FIXME: Obsolete CM_Get_Class_Name */
866 /* FIXME: Obsolete CM_Get_Class_Name_Ex */
867 /* FIXME: Obsolete CM_Get_Class_Key_Name */
868 /* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
869 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
876 IN DEVINST dnDevInst
,
884 IN DEVINST dnDevInst
,
886 IN HMACHINE hMachine
);
892 IN DEVINST dnDevInst
,
900 CM_Get_Device_ID_ExA(
901 IN DEVINST dnDevInst
,
905 IN HMACHINE hMachine
);
910 CM_Get_Device_ID_ExW(
911 IN DEVINST dnDevInst
,
915 IN HMACHINE hMachine
);
921 IN DEVINST dnDevInst
,
927 #define CM_Get_Device_ID CM_Get_Device_IDW
928 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
930 #define CM_Get_Device_ID CM_Get_Device_IDA
931 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
937 CM_Get_Device_ID_ListA(
938 IN PCSTR pszFilter
, OPTIONAL
946 CM_Get_Device_ID_List_ExA(
947 IN PCSTR pszFilter
, OPTIONAL
951 IN HMACHINE hMachine
);
956 CM_Get_Device_ID_List_ExW(
957 IN PCWSTR pszFilter
, OPTIONAL
961 IN HMACHINE hMachine
);
966 CM_Get_Device_ID_ListW(
967 IN PCWSTR pszFilter
, OPTIONAL
973 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
974 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
976 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
977 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
983 CM_Get_Device_ID_List_SizeA(
985 IN PCSTR pszFilter
, OPTIONAL
991 CM_Get_Device_ID_List_Size_ExA(
993 IN PCSTR pszFilter
, OPTIONAL
995 IN HMACHINE hMachine
);
1000 CM_Get_Device_ID_List_Size_ExW(
1002 IN PCWSTR pszFilter
, OPTIONAL
1004 IN HMACHINE hMachine
);
1009 CM_Get_Device_ID_List_SizeW(
1011 IN PCWSTR pszFilter
, OPTIONAL
1015 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
1016 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
1018 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
1019 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1020 #endif /* UNICODE */
1025 CM_Get_Device_ID_Size(
1027 IN DEVINST dnDevInst
,
1033 CM_Get_Device_ID_Size_Ex(
1035 IN DEVINST dnDevInst
,
1037 IN HMACHINE hMachine
);
1039 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1040 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1041 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1042 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1043 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1044 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1045 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1046 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1051 CM_Get_DevNode_Registry_PropertyA(
1052 IN DEVINST dnDevInst
,
1053 IN ULONG ulProperty
,
1054 OUT PULONG pulRegDataType
, OPTIONAL
1055 OUT PVOID Buffer
, OPTIONAL
1056 IN OUT PULONG pulLength
,
1062 CM_Get_DevNode_Registry_PropertyW(
1063 IN DEVINST dnDevInst
,
1064 IN ULONG ulProperty
,
1065 OUT PULONG pulRegDataType
, OPTIONAL
1066 OUT PVOID Buffer
, OPTIONAL
1067 IN OUT PULONG pulLength
,
1073 CM_Get_DevNode_Registry_Property_ExA(
1074 IN DEVINST dnDevInst
,
1075 IN ULONG ulProperty
,
1076 OUT PULONG pulRegDataType
, OPTIONAL
1077 OUT PVOID Buffer
, OPTIONAL
1078 IN OUT PULONG pulLength
,
1080 IN HMACHINE hMachine
);
1085 CM_Get_DevNode_Registry_Property_ExW(
1086 IN DEVINST dnDevInst
,
1087 IN ULONG ulProperty
,
1088 OUT PULONG pulRegDataType
, OPTIONAL
1089 OUT PVOID Buffer
, OPTIONAL
1090 IN OUT PULONG pulLength
,
1092 IN HMACHINE hMachine
);
1094 #define CM_Get_DevInst_Registry_PropertyW CM_Get_DevNode_Registry_PropertyW
1095 #define CM_Get_DevInst_Registry_PropertyA CM_Get_DevNode_Registry_PropertyA
1096 #define CM_Get_DevInst_Registry_Property_ExW CM_Get_DevNode_Registry_Property_ExW
1097 #define CM_Get_DevInst_Registry_Property_ExA CM_Get_DevNode_Registry_Property_ExA
1100 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyW
1101 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1102 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyW
1103 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExW
1105 #define CM_Get_DevInst_Registry_Property CM_Get_DevNode_Registry_PropertyA
1106 #define CM_Get_DevInst_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1107 #define CM_Get_DevNode_Registry_Property CM_Get_DevNode_Registry_PropertyA
1108 #define CM_Get_DevNode_Registry_Property_Ex CM_Get_DevNode_Registry_Property_ExA
1109 #endif /* UNICODE */
1114 CM_Get_DevNode_Status(
1115 OUT PULONG pulStatus
,
1116 OUT PULONG pulProblemNumber
,
1117 IN DEVINST dnDevInst
,
1123 CM_Get_DevNode_Status_Ex(
1124 OUT PULONG pulStatus
,
1125 OUT PULONG pulProblemNumber
,
1126 IN DEVINST dnDevInst
,
1128 IN HMACHINE hMachine
);
1130 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1131 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1133 /* CM_Get_First_Log_Conf.ulFlags constants */
1134 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1135 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1136 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1137 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1138 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1139 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1140 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1141 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1146 CM_Get_First_Log_Conf(
1147 OUT PLOG_CONF plcLogConf
, OPTIONAL
1148 IN DEVINST dnDevInst
,
1154 CM_Get_First_Log_Conf_Ex(
1155 OUT PLOG_CONF plcLogConf
, OPTIONAL
1156 IN DEVINST dnDevInst
,
1158 IN HMACHINE hMachine
);
1163 CM_Get_Global_State(
1164 OUT PULONG pulState
,
1170 CM_Get_Global_State_Ex(
1171 OUT PULONG pulState
,
1173 IN HMACHINE hMachine
);
1175 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1176 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1177 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1178 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1183 CM_Get_Log_Conf_Priority(
1184 IN LOG_CONF lcLogConf
,
1185 OUT PPRIORITY pPriority
,
1191 CM_Get_Log_Conf_Priority_Ex(
1192 IN LOG_CONF lcLogConf
,
1193 OUT PPRIORITY pPriority
,
1195 IN HMACHINE hMachine
);
1200 CM_Get_Next_Log_Conf(
1201 OUT PLOG_CONF plcLogConf
, OPTIONAL
1202 IN LOG_CONF lcLogConf
,
1208 CM_Get_Next_Log_Conf_Ex(
1209 OUT PLOG_CONF plcLogConf
, OPTIONAL
1210 IN LOG_CONF lcLogConf
,
1212 IN HMACHINE hMachine
);
1217 CM_Get_Next_Res_Des(
1218 OUT PRES_DES prdResDes
,
1219 IN RES_DES rdResDes
,
1220 IN RESOURCEID ForResource
,
1221 OUT PRESOURCEID pResourceID
,
1227 CM_Get_Next_Res_Des_Ex(
1228 OUT PRES_DES prdResDes
,
1229 IN RES_DES rdResDes
,
1230 IN RESOURCEID ForResource
,
1231 OUT PRESOURCEID pResourceID
,
1233 IN HMACHINE hMachine
);
1239 OUT PDEVINST pdnDevInst
,
1240 IN DEVINST dnDevInst
,
1247 OUT PDEVINST pdnDevInst
,
1248 IN DEVINST dnDevInst
,
1250 IN HMACHINE hMachine
);
1255 CM_Get_Res_Des_Data(
1256 IN RES_DES rdResDes
,
1264 CM_Get_Res_Des_Data_Ex(
1265 IN RES_DES rdResDes
,
1269 IN HMACHINE hMachine
);
1274 CM_Get_Res_Des_Data_Size(
1276 IN RES_DES rdResDes
,
1282 CM_Get_Res_Des_Data_Size_Ex(
1284 IN RES_DES rdResDes
,
1286 IN HMACHINE hMachine
);
1291 CM_Get_Resource_Conflict_Count(
1292 IN CONFLICT_LIST clConflictList
,
1293 OUT PULONG pulCount
);
1298 CM_Get_Resource_Conflict_DetailsA(
1299 IN CONFLICT_LIST clConflictList
,
1301 IN OUT PCONFLICT_DETAILS_A pConflictDetails
);
1306 CM_Get_Resource_Conflict_DetailsW(
1307 IN CONFLICT_LIST clConflictList
,
1309 IN OUT PCONFLICT_DETAILS_W pConflictDetails
);
1312 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1314 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1315 #endif /* UNICODE */
1321 OUT PDEVINST pdnDevInst
,
1329 OUT PDEVINST pdnDevInst
,
1332 IN HMACHINE hMachine
);
1344 IN HMACHINE hMachine
);
1346 /* FIXME: Obsolete CM_Intersect_Range_List */
1347 /* FIXME: Obsolete CM_Invert_Range_List */
1348 /* FIXME: Obsolete CM_Is_Dock_Station_Present */
1349 /* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
1351 /* CM_Locate_DevNode.ulFlags constants */
1352 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1353 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1354 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1355 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1356 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1358 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1359 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1360 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1361 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1362 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1368 OUT PDEVINST pdnDevInst
,
1369 IN DEVINSTID_A pDeviceID
, OPTIONAL
1375 CM_Locate_DevNode_ExA(
1376 OUT PDEVINST pdnDevInst
,
1377 IN DEVINSTID_A pDeviceID
, OPTIONAL
1379 IN HMACHINE hMachine
);
1384 CM_Locate_DevNode_ExW(
1385 OUT PDEVINST pdnDevInst
,
1386 IN DEVINSTID_W pDeviceID
, OPTIONAL
1388 IN HMACHINE hMachine
);
1394 OUT PDEVINST pdnDevInst
,
1395 IN DEVINSTID_W pDeviceID
, OPTIONAL
1398 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1399 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1400 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1401 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1404 #define CM_Locate_DevNode CM_Locate_DevNodeW
1405 #define CM_Locate_DevInst CM_Locate_DevNodeW
1406 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1407 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1409 #define CM_Locate_DevNode CM_Locate_DevNodeA
1410 #define CM_Locate_DevInst CM_Locate_DevNodeA
1411 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1412 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1413 #endif /* UNICODE */
1415 /* FIXME: Obsolete CM_Merge_Range_List */
1421 OUT PRES_DES prdResDes
,
1422 IN RES_DES rdResDes
,
1423 IN RESOURCEID ResourceID
,
1424 IN PCVOID ResourceData
,
1425 IN ULONG ResourceLen
,
1431 CM_Modify_Res_Des_Ex(
1432 OUT PRES_DES prdResDes
,
1433 IN RES_DES rdResDes
,
1434 IN RESOURCEID ResourceID
,
1435 IN PCVOID ResourceData
,
1436 IN ULONG ResourceLen
,
1438 IN HMACHINE hMachine
);
1440 /* FIXME: Obsolete CM_Move_DevNode */
1441 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1442 /* FIXME: Obsolete CM_Next_Range */
1443 /* FIXME: Obsolete CM_Open_Class_Key */
1444 /* FIXME: Obsolete CM_Open_Class_Key_Ex */
1445 /* FIXME: Obsolete CM_Open_DevNode_Key */
1446 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1448 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1449 #define CM_REMOVE_UI_OK 0x00000000
1450 #define CM_REMOVE_UI_NOT_OK 0x00000001
1451 #define CM_REMOVE_NO_RESTART 0x00000002
1452 #define CM_REMOVE_BITS 0x00000003
1457 CM_Query_And_Remove_SubTreeA(
1458 IN DEVINST dnAncestor
,
1459 OUT PPNP_VETO_TYPE pVetoType
,
1460 OUT LPSTR pszVetoName
,
1461 IN ULONG ulNameLength
,
1467 CM_Query_And_Remove_SubTreeW(
1468 IN DEVINST dnAncestor
,
1469 OUT PPNP_VETO_TYPE pVetoType
,
1470 OUT LPWSTR pszVetoName
,
1471 IN ULONG ulNameLength
,
1477 CM_Query_And_Remove_SubTree_ExA(
1478 IN DEVINST dnAncestor
,
1479 OUT PPNP_VETO_TYPE pVetoType
,
1480 OUT LPSTR pszVetoName
,
1481 IN ULONG ulNameLength
,
1483 IN HMACHINE hMachine
);
1488 CM_Query_And_Remove_SubTree_ExW(
1489 IN DEVINST dnAncestor
,
1490 OUT PPNP_VETO_TYPE pVetoType
,
1491 OUT LPWSTR pszVetoName
,
1492 IN ULONG ulNameLength
,
1494 IN HMACHINE hMachine
);
1496 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1497 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1498 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1499 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1500 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1501 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1502 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1507 CM_Query_Resource_Conflict_List(
1508 OUT PCONFLICT_LIST pclConflictList
,
1509 IN DEVINST dnDevInst
,
1510 IN RESOURCEID ResourceID
,
1511 IN PCVOID ResourceData
,
1512 IN ULONG ResourceLen
,
1514 IN HMACHINE hMachine
);
1516 /* CM_Reenumerate_DevNode.ulFlags constants */
1517 #define CM_REENUMERATE_NORMAL 0x00000000
1518 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1519 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1520 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1521 #define CM_REENUMERATE_BITS 0x00000007
1526 CM_Reenumerate_DevNode(
1527 IN DEVINST dnDevInst
,
1533 CM_Reenumerate_DevNode_Ex(
1534 IN DEVINST dnDevInst
,
1536 IN HMACHINE hMachine
);
1538 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1539 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1541 /* FIXME: Obsolete CM_Register_Device_Driver */
1542 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1543 /* FIXME: Obsolete CM_Register_Device_Interface */
1544 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1545 /* FIXME: Obsolete CM_Remove_SubTree */
1546 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1551 CM_Request_Device_EjectA(
1552 IN DEVINST dnDevInst
,
1553 OUT PPNP_VETO_TYPE pVetoType
,
1554 OUT LPSTR pszVetoName
,
1555 IN ULONG ulNameLength
,
1561 CM_Request_Device_Eject_ExW(
1562 IN DEVINST dnDevInst
,
1563 OUT PPNP_VETO_TYPE pVetoType
,
1564 OUT LPWSTR pszVetoName
,
1565 IN ULONG ulNameLength
,
1567 IN HMACHINE hMachine
);
1572 CM_Request_Device_Eject_ExA(
1573 IN DEVINST dnDevInst
,
1574 OUT PPNP_VETO_TYPE pVetoType
,
1575 OUT LPSTR pszVetoName
,
1576 IN ULONG ulNameLength
,
1578 IN HMACHINE hMachine
);
1583 CM_Request_Device_EjectW(
1584 IN DEVINST dnDevInst
,
1585 OUT PPNP_VETO_TYPE pVetoType
,
1586 OUT LPWSTR pszVetoName
,
1587 IN ULONG ulNameLength
,
1591 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1592 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1594 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1595 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1596 #endif /* UNICODE */
1598 /* FIXME: Obsolete CM_Request_Eject_PC */
1599 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1600 /* FIXME: Obsolete CM_Run_Detection */
1601 /* FIXME: Obsolete CM_Run_Detection_Ex */
1602 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1603 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1604 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1609 CM_Set_DevNode_Registry_PropertyA(
1610 IN DEVINST dnDevInst
,
1611 IN ULONG ulProperty
,
1612 IN PCVOID Buffer
, OPTIONAL
1619 CM_Set_DevNode_Registry_PropertyW(
1620 IN DEVINST dnDevInst
,
1621 IN ULONG ulProperty
,
1622 IN PCVOID Buffer
, OPTIONAL
1629 CM_Set_DevNode_Registry_Property_ExA(
1630 IN DEVINST dnDevInst
,
1631 IN ULONG ulProperty
,
1632 IN PCVOID Buffer
, OPTIONAL
1635 IN HMACHINE hMachine
);
1640 CM_Set_DevNode_Registry_Property_ExW(
1641 IN DEVINST dnDevInst
,
1642 IN ULONG ulProperty
,
1643 IN PCVOID Buffer
, OPTIONAL
1646 IN HMACHINE hMachine
);
1648 #define CM_Set_DevInst_Registry_PropertyW CM_Set_DevNode_Registry_PropertyW
1649 #define CM_Set_DevInst_Registry_PropertyA CM_Set_DevNode_Registry_PropertyA
1650 #define CM_Set_DevInst_Registry_Property_ExW CM_Set_DevNode_Registry_Property_ExW
1651 #define CM_Set_DevInst_Registry_Property_ExA CM_Set_DevNode_Registry_Property_ExA
1654 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyW
1655 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1656 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyW
1657 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExW
1659 #define CM_Set_DevInst_Registry_Property CM_Set_DevNode_Registry_PropertyA
1660 #define CM_Set_DevInst_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1661 #define CM_Set_DevNode_Registry_Property CM_Set_DevNode_Registry_PropertyA
1662 #define CM_Set_DevNode_Registry_Property_Ex CM_Set_DevNode_Registry_Property_ExA
1663 #endif /* UNICODE */
1665 /* FIXME: Obsolete CM_Set_HW_Prof */
1666 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1667 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1668 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1669 /* FIXME: Obsolete CM_Setup_DevNode */
1670 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1671 /* FIXME: Obsolete CM_Test_Range_Available */
1672 /* FIXME: Obsolete CM_Uninstall_DevNode */
1673 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1674 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1675 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1677 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1682 CMP_WaitNoPendingInstallEvents(
1683 IN DWORD dwTimeout
);
1685 #include <poppack.h>
1691 #endif /* __CFGMGR32_H */