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
46 #define CR_SUCCESS 0x00000000
47 #define CR_DEFAULT 0x00000001
48 #define CR_OUT_OF_MEMORY 0x00000002
49 #define CR_INVALID_POINTER 0x00000003
50 #define CR_INVALID_FLAG 0x00000004
51 #define CR_INVALID_DEVNODE 0x00000005
52 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
53 #define CR_INVALID_RES_DES 0x00000006
54 #define CR_INVALID_LOG_CONF 0x00000007
55 #define CR_INVALID_ARBITRATOR 0x00000008
56 #define CR_INVALID_NODELIST 0x00000009
57 #define CR_DEVNODE_HAS_REQS 0x0000000A
58 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
59 #define CR_INVALID_RESOURCEID 0x0000000B
60 #define CR_DLVXD_NOT_FOUND 0x0000000C
61 #define CR_NO_SUCH_DEVNODE 0x0000000D
62 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
63 #define CR_NO_MORE_LOG_CONF 0x0000000E
64 #define CR_NO_MORE_RES_DES 0x0000000F
65 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
66 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
67 #define CR_INVALID_RANGE_LIST 0x00000011
68 #define CR_INVALID_RANGE 0x00000012
69 #define CR_FAILURE 0x00000013
70 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
71 #define CR_CREATE_BLOCKED 0x00000015
72 #define CR_NOT_SYSTEM_VM 0x00000016
73 #define CR_REMOVE_VETOED 0x00000017
74 #define CR_APM_VETOED 0x00000018
75 #define CR_INVALID_LOAD_TYPE 0x00000019
76 #define CR_BUFFER_SMALL 0x0000001A
77 #define CR_NO_ARBITRATOR 0x0000001B
78 #define CR_NO_REGISTRY_HANDLE 0x0000001C
79 #define CR_REGISTRY_ERROR 0x0000001D
80 #define CR_INVALID_DEVICE_ID 0x0000001E
81 #define CR_INVALID_DATA 0x0000001F
82 #define CR_INVALID_API 0x00000020
83 #define CR_DEVLOADER_NOT_READY 0x00000021
84 #define CR_NEED_RESTART 0x00000022
85 #define CR_NO_MORE_HW_PROFILES 0x00000023
86 #define CR_DEVICE_NOT_THERE 0x00000024
87 #define CR_NO_SUCH_VALUE 0x00000025
88 #define CR_WRONG_TYPE 0x00000026
89 #define CR_INVALID_PRIORITY 0x00000027
90 #define CR_NOT_DISABLEABLE 0x00000028
91 #define CR_FREE_RESOURCES 0x00000029
92 #define CR_QUERY_VETOED 0x0000002A
93 #define CR_CANT_SHARE_IRQ 0x0000002B
94 #define CR_NO_DEPENDENT 0x0000002C
95 #define CR_SAME_RESOURCES 0x0000002D
96 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
97 #define CR_INVALID_MACHINENAME 0x0000002F
98 #define CR_REMOTE_COMM_FAILURE 0x00000030
99 #define CR_MACHINE_UNAVAILABLE 0x00000031
100 #define CR_NO_CM_SERVICES 0x00000032
101 #define CR_ACCESS_DENIED 0x00000033
102 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
103 #define CR_INVALID_PROPERTY 0x00000035
104 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
105 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
106 #define CR_INVALID_REFERENCE_STRING 0x00000038
107 #define CR_INVALID_CONFLICT_LIST 0x00000039
108 #define CR_INVALID_INDEX 0x0000003A
109 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
112 typedef DWORD RETURN_TYPE
;
113 typedef RETURN_TYPE CONFIGRET
;
115 typedef HANDLE HMACHINE
;
116 typedef HMACHINE
*PHMACHINE
;
118 typedef DWORD_PTR RES_DES
;
119 typedef RES_DES
*PRES_DES
;
121 typedef DWORD_PTR RANGE_ELEMENT
;
122 typedef RANGE_ELEMENT
*PRANGE_ELEMENT
;
124 typedef ULONG_PTR CONFLICT_LIST
;
125 typedef CONFLICT_LIST
*PCONFLICT_LIST
;
127 typedef DWORD_PTR LOG_CONF
;
128 typedef LOG_CONF
*PLOG_CONF
;
130 typedef ULONG PRIORITY
;
131 typedef PRIORITY
*PPRIORITY
;
133 typedef DWORD_PTR RANGE_LIST
;
134 typedef RANGE_LIST
*PRANGE_LIST
;
136 typedef DWORD DEVNODE
, DEVINST
;
137 typedef DEVNODE
*PDEVNODE
, *PDEVINST
;
139 typedef CHAR
*DEVNODEID_A
, *DEVINSTID_A
;
140 typedef WCHAR
*DEVNODEID_W
, *DEVINSTID_W
;
143 typedef DEVNODEID_W DEVNODEID
;
144 typedef DEVINSTID_W DEVINSTID
;
146 typedef DEVNODEID_A DEVNODEID
;
147 typedef DEVINSTID_A DEVINSTID
;
150 typedef ULONG REGDISPOSITION
;
152 typedef ULONG RESOURCEID
;
153 typedef RESOURCEID
*PRESOURCEID
;
155 #define CM_RESDES_WIDTH_DEFAULT 0x00000000
156 #define CM_RESDES_WIDTH_32 0x00000001
157 #define CM_RESDES_WIDTH_64 0x00000002
158 #define CM_RESDES_WIDTH_BITS 0x00000003
161 #define MAX_CONFIG_VALUE 9999
162 #define MAX_INSTANCE_VALUE 9999
164 #define MAX_DEVICE_ID_LEN 200
165 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
167 #define MAX_CLASS_NAME_LEN 32
168 #define MAX_GUID_STRING_LEN 39
169 #define MAX_PROFILE_LEN 80
172 #define ResType_All 0x00000000
173 #define ResType_None 0x00000000
174 #define ResType_Mem 0x00000001
175 #define ResType_IO 0x00000002
176 #define ResType_DMA 0x00000003
177 #define ResType_IRQ 0x00000004
178 #define ResType_DoNotUse 0x00000005
179 #define ResType_BusNumber 0x00000006
180 #define ResType_MAX 0x00000006
181 #define ResType_Ignored_Bit 0x00008000
182 #define ResType_ClassSpecific 0x0000FFFF
183 #define ResType_Reserved 0x00008000
184 #define ResType_DevicePrivate 0x00008001
185 #define ResType_PcCardConfig 0x00008002
186 #define ResType_MfCardConfig 0x00008003
188 #define CM_GETIDLIST_FILTER_NONE 0x00000000
189 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
190 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002
191 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
192 #define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
193 #define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
194 #define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
195 #define CM_GETIDLIST_DONOTGENERATE 0x10000040
196 #define CM_GETIDLIST_FILTER_BITS 0x1000007F
198 #define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
199 #define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
200 #define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
203 typedef struct BusNumber_Des_s
{
207 ULONG BUSD_Alloc_Base
;
208 ULONG BUSD_Alloc_End
;
209 } BUSNUMBER_DES
, *PBUSNUMBER_DES
;
211 typedef struct BusNumber_Range_s
{
214 ULONG BUSR_nBusNumbers
;
216 } BUSNUMBER_RANGE
, *PBUSNUMBER_RANGE
;
218 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
220 typedef struct BusNumber_Resource_s
{
221 BUSNUMBER_DES BusNumber_Header
;
222 BUSNUMBER_RANGE BusNumber_Data
[ANYSIZE_ARRAY
];
223 } BUSNUMBER_RESOURCE
, *PBUSNUMBER_RESOURCE
;
225 typedef struct CS_Des_s
{
226 DWORD CSD_SignatureLength
;
227 DWORD CSD_LegacyDataOffset
;
228 DWORD CSD_LegacyDataSize
;
231 BYTE CSD_Signature
[ANYSIZE_ARRAY
];
234 typedef struct CS_Resource_s
{
236 } CS_RESOURCE
, *PCS_RESOURCE
;
238 typedef struct DevPrivate_Des_s
{
245 } DEVPRIVATE_DES
, *PDEVPRIVATE_DES
;
247 typedef struct DevPrivate_Range_s
{
251 } DEVPRIVATE_RANGE
, *PDEVPRIVATE_RANGE
;
253 #define PType_Range sizeof(DEVPRIVATE_RANGE)
255 typedef struct DevPrivate_Resource_s
{
256 DEVPRIVATE_DES PRV_Header
;
257 DEVPRIVATE_RANGE PRV_Data
[ANYSIZE_ARRAY
];
258 } DEVPRIVATE_RESOURCE
, *PDEVPRIVATE_RESOURCE
;
260 /* DMA_DES.DD_Flags constants and masks */
261 #define mDD_Width 0x3
264 #define fDD_DWORD 0x2
265 #define fDD_BYTE_AND_WORD 0x3
267 #define mDD_BusMaster 0x4
268 #define fDD_NoBusMaster 0x0
269 #define fDD_BusMaster 0x4
271 #define mDD_Type 0x18
272 #define fDD_TypeStandard 0x00
273 #define fDD_TypeA 0x08
274 #define fDD_TypeB 0x10
275 #define fDD_TypeF 0x18
277 typedef struct DMA_Des_s
{
282 } DMA_DES
, *PDMA_DES
;
284 typedef struct DMA_Range_s
{
288 } DMA_RANGE
, *PDMA_RANGE
;
290 #define DType_Range sizeof(DMA_RANGE)
292 typedef struct DMA_Resource_s
{
294 DMA_RANGE DMA_Data
[ANYSIZE_ARRAY
];
295 } DMA_RESOURCE
, *PDMA_RESOURCE
;
297 /* IO_DES.Type constants and masks */
298 #define fIOD_PortType 0x1
299 #define fIOD_Memory 0x0
301 #define fIOD_DECODE 0x00fc
302 #define fIOD_10_BIT_DECODE 0x0004
303 #define fIOD_12_BIT_DECODE 0x0008
304 #define fIOD_16_BIT_DECODE 0x0010
305 #define fIOD_POSITIVE_DECODE 0x0020
306 #define fIOD_PASSIVE_DECODE 0x0040
307 #define fIOD_WINDOW_DECODE 0x0080
309 typedef struct IO_Des_s
{
312 DWORDLONG IOD_Alloc_Base
;
313 DWORDLONG IOD_Alloc_End
;
317 /* IO_RANGE.IOR_Alias constants */
318 #define IO_ALIAS_10_BIT_DECODE 0x00000004
319 #define IO_ALIAS_12_BIT_DECODE 0x00000010
320 #define IO_ALIAS_16_BIT_DECODE 0x00000000
321 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
323 typedef struct IO_Range_s
{
328 DWORD IOR_RangeFlags
;
330 } IO_RANGE
, *PIO_RANGE
;
332 #define IOType_Range sizeof(IO_RANGE)
334 typedef struct IO_Resource_s
{
336 IO_RANGE IO_Data
[ANYSIZE_ARRAY
];
337 } IO_RESOURCE
, *PIO_RESOURCE
;
339 /* IRQ_DES.IRQD_flags constants */
340 #define mIRQD_Share 0x1
341 #define fIRQD_Exclusive 0x0
342 #define fIRQD_Share 0x1
344 #define fIRQD_Share_Bit 0
345 #define fIRQD_Level_Bit 1
347 #define mIRQD_Edge_Level 0x2
348 #define fIRQD_Level 0x0
349 #define fIRQD_Edge 0x2
351 typedef struct IRQ_Des_32_s
{
355 ULONG IRQD_Alloc_Num
;
356 ULONG32 IRQD_Affinity
;
357 } IRQ_DES_32
, *PIRQ_DES_32
;
359 typedef struct IRQ_Des_64_s
{
363 ULONG IRQD_Alloc_Num
;
364 ULONG64 IRQD_Affinity
;
365 } IRQ_DES_64
, *PIRQ_DES_64
;
368 typedef IRQ_DES_64 IRQ_DES
;
369 typedef PIRQ_DES_64 PIRQ_DES
;
371 typedef IRQ_DES_32 IRQ_DES
;
372 typedef PIRQ_DES_32 PIRQ_DES
;
375 typedef struct IRQ_Range_s
{
379 } IRQ_RANGE
, *PIRQ_RANGE
;
381 #define IRQType_Range sizeof(IRQ_RANGE)
383 typedef struct IRQ_Resource_s
{
385 IRQ_RANGE IRQ_Data
[ANYSIZE_ARRAY
];
386 } IRQ_RESOURCE
, *PIRQ_RESOURCE
;
388 /* MEM_DES.MD_Flags constants */
389 #define mMD_MemoryType 0x1
390 #define fMD_MemoryType mMD_MemoryType
394 #define mMD_32_24 0x2
395 #define fMD_32_24 mMD_32_24
399 #define mMD_Prefetchable 0x4
400 #define fMD_Prefetchable mMD_Prefetchable
401 #define fMD_Pref mMD_Prefetchable
402 #define fMD_PrefetchDisallowed 0x0
403 #define fMD_PrefetchAllowed 0x4
405 #define mMD_Readable 0x8
406 #define fMD_Readable mMD_Readable
407 #define fMD_ReadAllowed 0x0
408 #define fMD_ReadDisallowed 0x8
410 #define mMD_CombinedWrite 0x10
411 #define fMD_CombinedWrite mMD_CombinedWrite
412 #define fMD_CombinedWriteDisallowed 0x0
413 #define fMD_CombinedWriteAllowed 0x10
415 #define mMD_Cacheable 0x20
416 #define fMD_NonCacheable 0x0
417 #define fMD_Cacheable 0x20
419 typedef struct Mem_Des_s
{
422 DWORDLONG MD_Alloc_Base
;
423 DWORDLONG MD_Alloc_End
;
426 } MEM_DES
, *PMEM_DES
;
428 typedef struct Mem_Range_s
{
435 } MEM_RANGE
, *PMEM_RANGE
;
437 #define MType_Range sizeof(MEM_RANGE)
439 typedef struct Mem_Resource_s
{
441 MEM_RANGE MEM_Data
[ANYSIZE_ARRAY
];
442 } MEM_RESOURCE
, *PMEM_RESOURCE
;
444 /* MFCARD_DES.PMF_Flags constants */
445 #define fPMF_AUDIO_ENABLE 0x8
446 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
448 typedef struct MfCard_Des_s
{
452 BYTE PMF_ConfigOptions
;
453 BYTE PMF_IoResourceIndex
;
454 BYTE PMF_Reserved
[2];
455 DWORD PMF_ConfigRegisterBase
;
456 } MFCARD_DES
, *PMFCARD_DES
;
458 typedef struct MfCard_Resource_s
{
459 MFCARD_DES MfCard_Header
;
460 } MFCARD_RESOURCE
, *PMFCARD_RESOURCE
;
462 /* PCCARD_DES.PCD_Flags constants */
464 typedef struct PcCard_Des_s
{
468 BYTE PCD_ConfigIndex
;
469 BYTE PCD_Reserved
[3];
470 DWORD PCD_MemoryCardBase1
;
471 DWORD PCD_MemoryCardBase2
;
472 } PCCARD_DES
, *PPCCARD_DES
;
474 #define mPCD_IO_8_16 0x1
475 #define fPCD_IO_8 0x0
476 #define fPCD_IO_16 0x1
477 #define mPCD_MEM_8_16 0x2
478 #define fPCD_MEM_8 0x0
479 #define fPCD_MEM_16 0x2
480 #define mPCD_MEM_A_C 0xC
481 #define fPCD_MEM1_A 0x4
482 #define fPCD_MEM2_A 0x8
483 #define fPCD_IO_ZW_8 0x10
484 #define fPCD_IO_SRC_16 0x20
485 #define fPCD_IO_WS_16 0x40
486 #define mPCD_MEM_WS 0x300
487 #define fPCD_MEM_WS_ONE 0x100
488 #define fPCD_MEM_WS_TWO 0x200
489 #define fPCD_MEM_WS_THREE 0x300
491 #define fPCD_MEM_A 0x4
493 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
495 #define fPCD_IO1_16 0x00010000
496 #define fPCD_IO1_ZW_8 0x00020000
497 #define fPCD_IO1_SRC_16 0x00040000
498 #define fPCD_IO1_WS_16 0x00080000
500 #define fPCD_IO2_16 0x00100000
501 #define fPCD_IO2_ZW_8 0x00200000
502 #define fPCD_IO2_SRC_16 0x00400000
503 #define fPCD_IO2_WS_16 0x00800000
505 #define mPCD_MEM1_WS 0x03000000
506 #define fPCD_MEM1_WS_ONE 0x01000000
507 #define fPCD_MEM1_WS_TWO 0x02000000
508 #define fPCD_MEM1_WS_THREE 0x03000000
509 #define fPCD_MEM1_16 0x04000000
511 #define mPCD_MEM2_WS 0x30000000
512 #define fPCD_MEM2_WS_ONE 0x10000000
513 #define fPCD_MEM2_WS_TWO 0x20000000
514 #define fPCD_MEM2_WS_THREE 0x30000000
515 #define fPCD_MEM2_16 0x40000000
517 #define PCD_MAX_MEMORY 2
520 typedef struct PcCard_Resource_s
{
521 PCCARD_DES PcCard_Header
;
522 } PCCARD_RESOURCE
, *PPCCARD_RESOURCE
;
525 /* CONFLICT_DETAILS.CD.ulMask constants */
526 #define CM_CDMASK_DEVINST 0x00000001
527 #define CM_CDMASK_RESDES 0x00000002
528 #define CM_CDMASK_FLAGS 0x00000004
529 #define CM_CDMASK_DESCRIPTION 0x00000008
530 #define CM_CDMASK_VALID 0x0000000F
532 /* CONFLICT_DETAILS.CD.ulFlags constants */
533 #define CM_CDFLAGS_DRIVER 0x00000001
534 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
535 #define CM_CDFLAGS_RESERVED 0x00000004
537 typedef struct _CONFLICT_DETAILS_A
{
540 DEVINST CD_dnDevInst
;
543 CHAR CD_szDescription
[MAX_PATH
];
544 } CONFLICT_DETAILS_A
, *PCONFLICT_DETAILS_A
;
546 typedef struct _CONFLICT_DETAILS_W
{
549 DEVINST CD_dnDevInst
;
552 WCHAR CD_szDescription
[MAX_PATH
];
553 } CONFLICT_DETAILS_W
, *PCONFLICT_DETAILS_W
;
556 typedef CONFLICT_DETAILS_W CONFLICT_DETAILS
;
557 typedef PCONFLICT_DETAILS_W PCONFLICT_DETAILS
;
559 typedef CONFLICT_DETAILS_A CONFLICT_DETAILS
;
560 typedef PCONFLICT_DETAILS_A PCONFLICT_DETAILS
;
565 /* CM_Add_Empty_Log_Conf.ulFlags constants */
566 #define PRIORITY_EQUAL_FIRST 0x00000008
567 #define PRIORITY_EQUAL_LAST 0x00000000
568 #define PRIORITY_BIT 0x00000008
573 CM_Add_Empty_Log_Conf(
574 /*OUT*/ PLOG_CONF plcLogConf
,
575 /*IN*/ DEVINST dnDevInst
,
576 /*IN*/ PRIORITY Priority
,
577 /*IN*/ ULONG ulFlags
);
582 CM_Add_Empty_Log_Conf_Ex(
583 /*OUT*/ PLOG_CONF plcLogConf
,
584 /*IN*/ DEVINST dnDevInst
,
585 /*IN*/ PRIORITY Priority
,
586 /*IN*/ ULONG ulFlags
,
587 /*IN*/ HMACHINE hMachine
);
589 /* CM_Add_ID.ulFlags constants */
590 #define CM_ADD_ID_HARDWARE 0x00000000
591 #define CM_ADD_ID_COMPATIBLE 0x00000001
592 #define CM_ADD_ID_BITS 0x00000001
598 /*IN*/ DEVINST dnDevInst
,
600 /*IN*/ ULONG ulFlags
,
601 /*IN*/ HMACHINE hMachine
);
607 /*IN*/ DEVINST dnDevInst
,
609 /*IN*/ ULONG ulFlags
,
610 /*IN*/ HMACHINE hMachine
);
616 /*IN*/ DEVINST dnDevInst
,
618 /*IN*/ ULONG ulFlags
,
619 /*IN*/ HMACHINE hMachine
);
625 /*IN*/ DEVINST dnDevInst
,
627 /*IN*/ ULONG ulFlags
,
628 /*IN*/ HMACHINE hMachine
);
631 #define CM_Add_ID CM_Add_IDW
632 #define CM_Add_ID_Ex CM_Add_ID_ExW
634 #define CM_Add_ID CM_Add_IDA
635 #define CM_Add_ID_Ex CM_Add_ID_ExA
638 /* FIXME: Obsolete CM_Add_Range */
644 /*OUT*/ PRES_DES prdResDes
,
645 /*IN*/ LOG_CONF lcLogConf
,
646 /*IN*/ RESOURCEID ResourceID
,
647 /*IN*/ PCVOID ResourceData
,
648 /*IN*/ ULONG ResourceLen
,
649 /*IN*/ ULONG ulFlags
);
655 /*OUT*/ PRES_DES prdResDes
,
656 /*IN*/ LOG_CONF lcLogConf
,
657 /*IN*/ RESOURCEID ResourceID
,
658 /*IN*/ PCVOID ResourceData
,
659 /*IN*/ ULONG ResourceLen
,
660 /*IN*/ ULONG ulFlags
,
661 /*IN*/ HMACHINE hMachine
);
667 /*IN*/ PCSTR UNCServerName
,
668 /*OUT*/ PHMACHINE phMachine
);
674 /*IN*/ PCWSTR UNCServerName
,
675 /*OUT*/ PHMACHINE phMachine
);
678 #define CM_Connect_Machine CM_Connect_MachineW
680 #define CM_Connect_Machine CM_Connect_MachineA
683 /* FIXME: Obsolete CM_Create_DevNode */
684 /* FIXME: Obsolete CM_Create_DevNodeEx */
685 /* FIXME: Obsolete CM_Create_Range_List */
686 /* FIXME: Obsolete CM_Delete_Class_Key */
687 /* FIXME: Obsolete CM_Delete_Class_Key_Ex */
688 /* FIXME: Obsolete CM_Delete_DevNode_Key */
689 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
690 /* FIXME: Obsolete CM_Delete_Range */
691 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
692 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
693 /* FIXME: Obsolete CM_Disable_DevNode */
694 /* FIXME: Obsolete CM_Disable_DevNodeEx */
699 CM_Disconnect_Machine(
700 /*IN*/ HMACHINE hMachine
);
702 /* FIXME: Obsolete CM_Enable_DevNode */
703 /* FIXME: Obsolete CM_Enable_DevNodeEx */
708 CM_Enumerate_Classes(
709 /*IN*/ ULONG ulClassIndex
,
710 /*OUT*/ LPGUID ClassGuid
,
711 /*IN*/ ULONG ulFlags
);
716 CM_Enumerate_Classes_Ex(
717 /*IN*/ ULONG ulClassIndex
,
718 /*OUT*/ LPGUID ClassGuid
,
719 /*IN*/ ULONG ulFlags
,
720 /*IN*/ HMACHINE hMachine
);
725 CM_Enumerate_EnumeratorsA(
726 /*IN*/ ULONG ulEnumIndex
,
727 /*OUT*/ PCHAR Buffer
,
728 /*IN OUT*/ PULONG pulLength
,
729 /*IN*/ ULONG ulFlags
);
734 CM_Enumerate_Enumerators_ExA(
735 /*IN*/ ULONG ulEnumIndex
,
736 /*OUT*/ PCHAR Buffer
,
737 /*IN OUT*/ PULONG pulLength
,
738 /*IN*/ ULONG ulFlags
,
739 /*IN*/ HMACHINE hMachine
);
744 CM_Enumerate_Enumerators_ExW(
745 /*IN*/ ULONG ulEnumIndex
,
746 /*OUT*/ PWCHAR Buffer
,
747 /*IN OUT*/ PULONG pulLength
,
748 /*IN*/ ULONG ulFlags
,
749 /*IN*/ HMACHINE hMachine
);
754 CM_Enumerate_EnumeratorsW(
755 /*IN*/ ULONG ulEnumIndex
,
756 /*OUT*/ PWCHAR Buffer
,
757 /*IN OUT*/ PULONG pulLength
,
758 /*IN*/ ULONG ulFlags
);
761 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsW
762 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
764 #define CM_Enumerate_Enumerators CM_Enumerate_EnumeratorsA
765 #define CM_Enumerate_Enumerators_Ex CM_Enumerate_Enumerators_ExW
768 /* FIXME: Obsolete CM_Find_Range */
769 /* FIXME: Obsolete CM_First_Range */
775 /*IN*/ LOG_CONF lcLogConfToBeFreed
,
776 /*IN*/ ULONG ulFlags
);
782 /*IN*/ LOG_CONF lcLogConfToBeFreed
,
783 /*IN*/ ULONG ulFlags
,
784 /*IN*/ HMACHINE hMachine
);
789 CM_Free_Log_Conf_Handle(
790 /*IN*/ LOG_CONF lcLogConf
);
792 /* FIXME: Obsolete CM_Free_Range_List */
798 /*OUT*/ PRES_DES prdResDes
,
799 /*IN*/ RES_DES rdResDes
,
800 /*IN*/ ULONG ulFlags
);
806 /*OUT*/ PRES_DES prdResDes
,
807 /*IN*/ RES_DES rdResDes
,
808 /*IN*/ ULONG ulFlags
,
809 /*IN*/ HMACHINE hMachine
);
814 CM_Free_Res_Des_Handle(
815 /*IN*/ RES_DES rdResDes
);
820 CM_Free_Resource_Conflict_Handle(
821 /*IN*/ CONFLICT_LIST clConflictList
);
827 /*OUT*/ PDEVINST pdnDevInst
,
828 /*IN*/ DEVINST dnDevInst
,
829 /*IN*/ ULONG ulFlags
);
835 /*OUT*/ PDEVINST pdnDevInst
,
836 /*IN*/ DEVINST dnDevInst
,
837 /*IN*/ ULONG ulFlags
,
838 /*IN*/ HMACHINE hMachine
);
840 /* FIXME: Obsolete CM_Get_Class_Name */
841 /* FIXME: Obsolete CM_Get_Class_Name_Ex */
842 /* FIXME: Obsolete CM_Get_Class_Key_Name */
843 /* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
844 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
850 /*OUT*/ PULONG pulDepth
,
851 /*IN*/ DEVINST dnDevInst
,
852 /*IN*/ ULONG ulFlags
);
858 /*OUT*/ PULONG pulDepth
,
859 /*IN*/ DEVINST dnDevInst
,
860 /*IN*/ ULONG ulFlags
,
861 /*IN*/ HMACHINE hMachine
);
867 /*IN*/ DEVINST dnDevInst
,
868 /*OUT*/ PCHAR Buffer
,
869 /*IN*/ ULONG BufferLen
,
870 /*IN*/ ULONG ulFlags
);
875 CM_Get_Device_ID_ExA(
876 /*IN*/ DEVINST dnDevInst
,
877 /*OUT*/ PCHAR Buffer
,
878 /*IN*/ ULONG BufferLen
,
879 /*IN*/ ULONG ulFlags
,
880 /*IN*/ HMACHINE hMachine
);
885 CM_Get_Device_ID_ExW(
886 /*IN*/ DEVINST dnDevInst
,
887 /*OUT*/ PWCHAR Buffer
,
888 /*IN*/ ULONG BufferLen
,
889 /*IN*/ ULONG ulFlags
,
890 /*IN*/ HMACHINE hMachine
);
896 /*IN*/ DEVINST dnDevInst
,
897 /*OUT*/ PWCHAR Buffer
,
898 /*IN*/ ULONG BufferLen
,
899 /*IN*/ ULONG ulFlags
);
902 #define CM_Get_Device_ID CM_Get_Device_IDW
903 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
905 #define CM_Get_Device_ID CM_Get_Device_IDA
906 #define CM_Get_Device_ID_Ex CM_Get_Device_ID_ExW
912 CM_Get_Device_ID_ListA(
913 /*IN*/ PCSTR pszFilter
, /*OPTIONAL*/
914 /*OUT*/ PCHAR Buffer
,
915 /*IN*/ ULONG BufferLen
,
916 /*IN*/ ULONG ulFlags
);
921 CM_Get_Device_ID_List_ExA(
922 /*IN*/ PCSTR pszFilter
, /*OPTIONAL*/
923 /*OUT*/ PCHAR Buffer
,
924 /*IN*/ ULONG BufferLen
,
925 /*IN*/ ULONG ulFlags
,
926 /*IN*/ HMACHINE hMachine
);
931 CM_Get_Device_ID_List_ExW(
932 /*IN*/ PCWSTR pszFilter
, /*OPTIONAL*/
933 /*OUT*/ PWCHAR Buffer
,
934 /*IN*/ ULONG BufferLen
,
935 /*IN*/ ULONG ulFlags
,
936 /*IN*/ HMACHINE hMachine
);
941 CM_Get_Device_ID_ListW(
942 /*IN*/ PCWSTR pszFilter
, /*OPTIONAL*/
943 /*OUT*/ PWCHAR Buffer
,
944 /*IN*/ ULONG BufferLen
,
945 /*IN*/ ULONG ulFlags
);
948 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListW
949 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExW
951 #define CM_Get_Device_ID_List CM_Get_Device_ID_ListA
952 #define CM_Get_Device_ID_List_Ex CM_Get_Device_ID_List_ExA
958 CM_Get_Device_ID_List_SizeA(
959 /*OUT*/ PULONG pulLen
,
960 /*IN*/ PCSTR pszFilter
, /*OPTIONAL*/
961 /*IN*/ ULONG ulFlags
);
966 CM_Get_Device_ID_List_Size_ExA(
967 /*OUT*/ PULONG pulLen
,
968 /*IN*/ PCSTR pszFilter
, /*OPTIONAL*/
969 /*IN*/ ULONG ulFlags
,
970 /*IN*/ HMACHINE hMachine
);
975 CM_Get_Device_ID_List_Size_ExW(
976 /*OUT*/ PULONG pulLen
,
977 /*IN*/ PCWSTR pszFilter
, /*OPTIONAL*/
978 /*IN*/ ULONG ulFlags
,
979 /*IN*/ HMACHINE hMachine
);
984 CM_Get_Device_ID_List_SizeW(
985 /*OUT*/ PULONG pulLen
,
986 /*IN*/ PCWSTR pszFilter
, /*OPTIONAL*/
987 /*IN*/ ULONG ulFlags
);
990 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeW
991 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExW
993 #define CM_Get_Device_ID_List_Size CM_Get_Device_ID_List_SizeA
994 #define CM_Get_Device_ID_List_Size_Ex CM_Get_Device_ID_List_Size_ExA
1000 CM_Get_Device_ID_Size(
1001 /*OUT*/ PULONG pulLen
,
1002 /*IN*/ DEVINST dnDevInst
,
1003 /*IN*/ ULONG ulFlags
);
1008 CM_Get_Device_ID_Size_Ex(
1009 /*OUT*/ PULONG pulLen
,
1010 /*IN*/ DEVINST dnDevInst
,
1011 /*IN*/ ULONG ulFlags
,
1012 /*IN*/ HMACHINE hMachine
);
1014 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
1015 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
1016 /* FIXME: Obsolete CM_Get_Device_Interface_List */
1017 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
1018 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
1019 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
1020 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
1021 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
1022 /* FIXME: Obsolete CM_Get_DevNode_Registry_Property */
1027 CM_Get_DevNode_Status(
1028 /*OUT*/ PULONG pulStatus
,
1029 /*OUT*/ PULONG pulProblemNumber
,
1030 /*IN*/ DEVINST dnDevInst
,
1031 /*IN*/ ULONG ulFlags
);
1036 CM_Get_DevNode_Status_Ex(
1037 /*OUT*/ PULONG pulStatus
,
1038 /*OUT*/ PULONG pulProblemNumber
,
1039 /*IN*/ DEVINST dnDevInst
,
1040 /*IN*/ ULONG ulFlags
,
1041 /*IN*/ HMACHINE hMachine
);
1043 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1044 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1046 /* CM_Get_First_Log_Conf.ulFlags constants */
1047 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1048 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1049 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1050 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1051 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1052 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1053 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1054 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1059 CM_Get_First_Log_Conf(
1060 /*OUT*/ PLOG_CONF plcLogConf
, /*OPTIONAL*/
1061 /*IN*/ DEVINST dnDevInst
,
1062 /*IN*/ ULONG ulFlags
);
1067 CM_Get_First_Log_Conf_Ex(
1068 /*OUT*/ PLOG_CONF plcLogConf
, /*OPTIONAL*/
1069 /*IN*/ DEVINST dnDevInst
,
1070 /*IN*/ ULONG ulFlags
,
1071 /*IN*/ HMACHINE hMachine
);
1073 /* FIXME: Obsolete CM_Get_Global_State */
1074 /* FIXME: Obsolete CM_Get_Global_State_Ex */
1075 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1076 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1077 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1078 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1083 CM_Get_Log_Conf_Priority(
1084 /*IN*/ LOG_CONF lcLogConf
,
1085 /*OUT*/ PPRIORITY pPriority
,
1086 /*IN*/ ULONG ulFlags
);
1091 CM_Get_Log_Conf_Priority_Ex(
1092 /*IN*/ LOG_CONF lcLogConf
,
1093 /*OUT*/ PPRIORITY pPriority
,
1094 /*IN*/ ULONG ulFlags
,
1095 /*IN*/ HMACHINE hMachine
);
1100 CM_Get_Next_Log_Conf(
1101 /*OUT*/ PLOG_CONF plcLogConf
, /*OPTIONAL*/
1102 /*IN*/ LOG_CONF lcLogConf
,
1103 /*IN*/ ULONG ulFlags
);
1108 CM_Get_Next_Log_Conf_Ex(
1109 /*OUT*/ PLOG_CONF plcLogConf
, /*OPTIONAL*/
1110 /*IN*/ LOG_CONF lcLogConf
,
1111 /*IN*/ ULONG ulFlags
,
1112 /*IN*/ HMACHINE hMachine
);
1117 CM_Get_Next_Res_Des(
1118 /*OUT*/ PRES_DES prdResDes
,
1119 /*IN*/ RES_DES rdResDes
,
1120 /*IN*/ RESOURCEID ForResource
,
1121 /*OUT*/ PRESOURCEID pResourceID
,
1122 /*IN*/ ULONG ulFlags
);
1127 CM_Get_Next_Res_Des_Ex(
1128 /*OUT*/ PRES_DES prdResDes
,
1129 /*IN*/ RES_DES rdResDes
,
1130 /*IN*/ RESOURCEID ForResource
,
1131 /*OUT*/ PRESOURCEID pResourceID
,
1132 /*IN*/ ULONG ulFlags
,
1133 /*IN*/ HMACHINE hMachine
);
1139 /*OUT*/ PDEVINST pdnDevInst
,
1140 /*IN*/ DEVINST dnDevInst
,
1141 /*IN*/ ULONG ulFlags
);
1147 /*OUT*/ PDEVINST pdnDevInst
,
1148 /*IN*/ DEVINST dnDevInst
,
1149 /*IN*/ ULONG ulFlags
,
1150 /*IN*/ HMACHINE hMachine
);
1155 CM_Get_Res_Des_Data(
1156 /*IN*/ RES_DES rdResDes
,
1157 /*OUT*/ PVOID Buffer
,
1158 /*IN*/ ULONG BufferLen
,
1159 /*IN*/ ULONG ulFlags
);
1164 CM_Get_Res_Des_Data_Ex(
1165 /*IN*/ RES_DES rdResDes
,
1166 /*OUT*/ PVOID Buffer
,
1167 /*IN*/ ULONG BufferLen
,
1168 /*IN*/ ULONG ulFlags
,
1169 /*IN*/ HMACHINE hMachine
);
1174 CM_Get_Res_Des_Data_Size(
1175 /*OUT*/ PULONG pulSize
,
1176 /*IN*/ RES_DES rdResDes
,
1177 /*IN*/ ULONG ulFlags
);
1182 CM_Get_Res_Des_Data_Size_Ex(
1183 /*OUT*/ PULONG pulSize
,
1184 /*IN*/ RES_DES rdResDes
,
1185 /*IN*/ ULONG ulFlags
,
1186 /*IN*/ HMACHINE hMachine
);
1191 CM_Get_Resource_Conflict_Count(
1192 /*IN*/ CONFLICT_LIST clConflictList
,
1193 /*OUT*/ PULONG pulCount
);
1198 CM_Get_Resource_Conflict_DetailsA(
1199 /*IN*/ CONFLICT_LIST clConflictList
,
1200 /*IN*/ ULONG ulIndex
,
1201 /*IN OUT*/ PCONFLICT_DETAILS_A pConflictDetails
);
1206 CM_Get_Resource_Conflict_DetailsW(
1207 /*IN*/ CONFLICT_LIST clConflictList
,
1208 /*IN*/ ULONG ulIndex
,
1209 /*IN OUT*/ PCONFLICT_DETAILS_W pConflictDetails
);
1212 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsW
1214 #define CM_Get_Resource_Conflict_Details CM_Get_Resource_Conflict_DetailsA
1215 #endif /* UNICODE */
1221 /*OUT*/ PDEVINST pdnDevInst
,
1222 /*IN*/ DEVINST DevInst
,
1223 /*IN*/ ULONG ulFlags
);
1229 /*OUT*/ PDEVINST pdnDevInst
,
1230 /*IN*/ DEVINST DevInst
,
1231 /*IN*/ ULONG ulFlags
,
1232 /*IN*/ HMACHINE hMachine
);
1244 /*IN*/ HMACHINE hMachine
);
1246 /* FIXME: Obsolete CM_Intersect_Range_List */
1247 /* FIXME: Obsolete CM_Invert_Range_List */
1248 /* FIXME: Obsolete CM_Is_Dock_Station_Present */
1249 /* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
1251 /* CM_Locate_DevNode.ulFlags constants */
1252 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1253 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1254 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1255 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1256 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1258 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1259 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1260 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1261 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1262 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1268 /*OUT*/ PDEVINST pdnDevInst
,
1269 /*IN*/ DEVINSTID_A pDeviceID
, /*OPTIONAL*/
1270 /*IN*/ ULONG ulFlags
);
1275 CM_Locate_DevNode_ExA(
1276 /*OUT*/ PDEVINST pdnDevInst
,
1277 /*IN*/ DEVINSTID_A pDeviceID
, /*OPTIONAL*/
1278 /*IN*/ ULONG ulFlags
,
1279 /*IN*/ HMACHINE hMachine
);
1284 CM_Locate_DevNode_ExW(
1285 /*OUT*/ PDEVINST pdnDevInst
,
1286 /*IN*/ DEVINSTID_W pDeviceID
, /*OPTIONAL*/
1287 /*IN*/ ULONG ulFlags
,
1288 /*IN*/ HMACHINE hMachine
);
1294 /*OUT*/ PDEVINST pdnDevInst
,
1295 /*IN*/ DEVINSTID_W pDeviceID
, /*OPTIONAL*/
1296 /*IN*/ ULONG ulFlags
);
1298 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1299 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1300 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1301 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1304 #define CM_Locate_DevNode CM_Locate_DevNodeW
1305 #define CM_Locate_DevInst CM_Locate_DevNodeW
1306 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExW
1307 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExW
1309 #define CM_Locate_DevNode CM_Locate_DevNodeA
1310 #define CM_Locate_DevInst CM_Locate_DevNodeA
1311 #define CM_Locate_DevNode_Ex CM_Locate_DevNode_ExA
1312 #define CM_Locate_DevInst_Ex CM_Locate_DevNode_ExA
1313 #endif /* UNICODE */
1315 /* FIXME: Obsolete CM_Merge_Range_List */
1321 /*OUT*/ PRES_DES prdResDes
,
1322 /*IN*/ RES_DES rdResDes
,
1323 /*IN*/ RESOURCEID ResourceID
,
1324 /*IN*/ PCVOID ResourceData
,
1325 /*IN*/ ULONG ResourceLen
,
1326 /*IN*/ ULONG ulFlags
);
1331 CM_Modify_Res_Des_Ex(
1332 /*OUT*/ PRES_DES prdResDes
,
1333 /*IN*/ RES_DES rdResDes
,
1334 /*IN*/ RESOURCEID ResourceID
,
1335 /*IN*/ PCVOID ResourceData
,
1336 /*IN*/ ULONG ResourceLen
,
1337 /*IN*/ ULONG ulFlags
,
1338 /*IN*/ HMACHINE hMachine
);
1340 /* FIXME: Obsolete CM_Move_DevNode */
1341 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1342 /* FIXME: Obsolete CM_Next_Range */
1343 /* FIXME: Obsolete CM_Open_Class_Key */
1344 /* FIXME: Obsolete CM_Open_Class_Key_Ex */
1345 /* FIXME: Obsolete CM_Open_DevNode_Key */
1346 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1348 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1349 #define CM_REMOVE_UI_OK 0x00000000
1350 #define CM_REMOVE_UI_NOT_OK 0x00000001
1351 #define CM_REMOVE_NO_RESTART 0x00000002
1352 #define CM_REMOVE_BITS 0x00000003
1357 CM_Query_And_Remove_SubTreeA(
1358 /*IN*/ DEVINST dnAncestor
,
1359 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1360 /*OUT*/ LPSTR pszVetoName
,
1361 /*IN*/ ULONG ulNameLength
,
1362 /*IN*/ ULONG ulFlags
);
1367 CM_Query_And_Remove_SubTreeW(
1368 /*IN*/ DEVINST dnAncestor
,
1369 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1370 /*OUT*/ LPWSTR pszVetoName
,
1371 /*IN*/ ULONG ulNameLength
,
1372 /*IN*/ ULONG ulFlags
);
1377 CM_Query_And_Remove_SubTree_ExA(
1378 /*IN*/ DEVINST dnAncestor
,
1379 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1380 /*OUT*/ LPSTR pszVetoName
,
1381 /*IN*/ ULONG ulNameLength
,
1382 /*IN*/ ULONG ulFlags
,
1383 /*IN*/ HMACHINE hMachine
);
1388 CM_Query_And_Remove_SubTree_ExW(
1389 /*IN*/ DEVINST dnAncestor
,
1390 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1391 /*OUT*/ LPWSTR pszVetoName
,
1392 /*IN*/ ULONG ulNameLength
,
1393 /*IN*/ ULONG ulFlags
,
1394 /*IN*/ HMACHINE hMachine
);
1396 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1397 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1398 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1399 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1400 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1401 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1402 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1407 CM_Query_Resource_Conflict_List(
1408 /*OUT*/ PCONFLICT_LIST pclConflictList
,
1409 /*IN*/ DEVINST dnDevInst
,
1410 /*IN*/ RESOURCEID ResourceID
,
1411 /*IN*/ PCVOID ResourceData
,
1412 /*IN*/ ULONG ResourceLen
,
1413 /*IN*/ ULONG ulFlags
,
1414 /*IN*/ HMACHINE hMachine
);
1416 /* CM_Reenumerate_DevNode.ulFlags constants */
1417 #define CM_REENUMERATE_NORMAL 0x00000000
1418 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1419 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1420 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1421 #define CM_REENUMERATE_BITS 0x00000007
1426 CM_Reenumerate_DevNode(
1427 /*IN*/ DEVINST dnDevInst
,
1428 /*IN*/ ULONG ulFlags
);
1433 CM_Reenumerate_DevNode_Ex(
1434 /*IN*/ DEVINST dnDevInst
,
1435 /*IN*/ ULONG ulFlags
,
1436 /*IN*/ HMACHINE hMachine
);
1438 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1439 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1441 /* FIXME: Obsolete CM_Register_Device_Driver */
1442 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1443 /* FIXME: Obsolete CM_Register_Device_Interface */
1444 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1445 /* FIXME: Obsolete CM_Remove_SubTree */
1446 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1451 CM_Request_Device_EjectA(
1452 /*IN*/ DEVINST dnDevInst
,
1453 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1454 /*OUT*/ LPSTR pszVetoName
,
1455 /*IN*/ ULONG ulNameLength
,
1456 /*IN*/ ULONG ulFlags
);
1461 CM_Request_Device_Eject_ExW(
1462 /*IN*/ DEVINST dnDevInst
,
1463 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1464 /*OUT*/ LPWSTR pszVetoName
,
1465 /*IN*/ ULONG ulNameLength
,
1466 /*IN*/ ULONG ulFlags
,
1467 /*IN*/ HMACHINE hMachine
);
1472 CM_Request_Device_Eject_ExA(
1473 /*IN*/ DEVINST dnDevInst
,
1474 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1475 /*OUT*/ LPSTR pszVetoName
,
1476 /*IN*/ ULONG ulNameLength
,
1477 /*IN*/ ULONG ulFlags
,
1478 /*IN*/ HMACHINE hMachine
);
1483 CM_Request_Device_EjectW(
1484 /*IN*/ DEVINST dnDevInst
,
1485 /*OUT*/ PPNP_VETO_TYPE pVetoType
,
1486 /*OUT*/ LPWSTR pszVetoName
,
1487 /*IN*/ ULONG ulNameLength
,
1488 /*IN*/ ULONG ulFlags
);
1491 #define CM_Request_Device_Eject CM_Request_Device_EjectW
1492 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExW
1494 #define CM_Request_Device_Eject CM_Request_Device_EjectA
1495 #define CM_Request_Device_Eject_Ex CM_Request_Device_Eject_ExA
1496 #endif /* UNICODE */
1498 /* FIXME: Obsolete CM_Request_Eject_PC */
1499 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1500 /* FIXME: Obsolete CM_Run_Detection */
1501 /* FIXME: Obsolete CM_Run_Detection_Ex */
1502 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1503 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1504 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1505 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property */
1506 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property_Ex */
1507 /* FIXME: Obsolete CM_Set_HW_Prof */
1508 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1509 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1510 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1511 /* FIXME: Obsolete CM_Setup_DevNode */
1512 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1513 /* FIXME: Obsolete CM_Test_Range_Available */
1514 /* FIXME: Obsolete CM_Uninstall_DevNode */
1515 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1516 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1517 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1519 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1524 CMP_WaitNoPendingInstallEvents(
1525 /*IN*/ DWORD dwTimeout
);
1527 #include <poppack.h>
1533 #endif /* __CFGMGR32_H */