3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
24 /* Created by Casper S. Hornstrup <chorns@users.sourceforge.net> */
27 #pragma GCC system_header
31 * PnP configuration manager
40 #if defined(_CFGMGR32_)
41 #define CMAPI DECLSPEC_EXPORT
43 #define CMAPI DECLSPEC_IMPORT
50 #define CR_SUCCESS 0x00000000
51 #define CR_DEFAULT 0x00000001
52 #define CR_OUT_OF_MEMORY 0x00000002
53 #define CR_INVALID_POINTER 0x00000003
54 #define CR_INVALID_FLAG 0x00000004
55 #define CR_INVALID_DEVNODE 0x00000005
56 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE
57 #define CR_INVALID_RES_DES 0x00000006
58 #define CR_INVALID_LOG_CONF 0x00000007
59 #define CR_INVALID_ARBITRATOR 0x00000008
60 #define CR_INVALID_NODELIST 0x00000009
61 #define CR_DEVNODE_HAS_REQS 0x0000000A
62 #define CR_DEVINST_HAS_REQS CR_DEVNODE_HAS_REQS
63 #define CR_INVALID_RESOURCEID 0x0000000B
64 #define CR_DLVXD_NOT_FOUND 0x0000000C
65 #define CR_NO_SUCH_DEVNODE 0x0000000D
66 #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE
67 #define CR_NO_MORE_LOG_CONF 0x0000000E
68 #define CR_NO_MORE_RES_DES 0x0000000F
69 #define CR_ALREADY_SUCH_DEVNODE 0x00000010
70 #define CR_ALREADY_SUCH_DEVINST CR_ALREADY_SUCH_DEVNODE
71 #define CR_INVALID_RANGE_LIST 0x00000011
72 #define CR_INVALID_RANGE 0x00000012
73 #define CR_FAILURE 0x00000013
74 #define CR_NO_SUCH_LOGICAL_DEV 0x00000014
75 #define CR_CREATE_BLOCKED 0x00000015
76 #define CR_NOT_SYSTEM_VM 0x00000016
77 #define CR_REMOVE_VETOED 0x00000017
78 #define CR_APM_VETOED 0x00000018
79 #define CR_INVALID_LOAD_TYPE 0x00000019
80 #define CR_BUFFER_SMALL 0x0000001A
81 #define CR_NO_ARBITRATOR 0x0000001B
82 #define CR_NO_REGISTRY_HANDLE 0x0000001C
83 #define CR_REGISTRY_ERROR 0x0000001D
84 #define CR_INVALID_DEVICE_ID 0x0000001E
85 #define CR_INVALID_DATA 0x0000001F
86 #define CR_INVALID_API 0x00000020
87 #define CR_DEVLOADER_NOT_READY 0x00000021
88 #define CR_NEED_RESTART 0x00000022
89 #define CR_NO_MORE_HW_PROFILES 0x00000023
90 #define CR_DEVICE_NOT_THERE 0x00000024
91 #define CR_NO_SUCH_VALUE 0x00000025
92 #define CR_WRONG_TYPE 0x00000026
93 #define CR_INVALID_PRIORITY 0x00000027
94 #define CR_NOT_DISABLEABLE 0x00000028
95 #define CR_FREE_RESOURCES 0x00000029
96 #define CR_QUERY_VETOED 0x0000002A
97 #define CR_CANT_SHARE_IRQ 0x0000002B
98 #define CR_NO_DEPENDENT 0x0000002C
99 #define CR_SAME_RESOURCES 0x0000002D
100 #define CR_NO_SUCH_REGISTRY_KEY 0x0000002E
101 #define CR_INVALID_MACHINENAME 0x0000002F
102 #define CR_REMOTE_COMM_FAILURE 0x00000030
103 #define CR_MACHINE_UNAVAILABLE 0x00000031
104 #define CR_NO_CM_SERVICES 0x00000032
105 #define CR_ACCESS_DENIED 0x00000033
106 #define CR_CALL_NOT_IMPLEMENTED 0x00000034
107 #define CR_INVALID_PROPERTY 0x00000035
108 #define CR_DEVICE_INTERFACE_ACTIVE 0x00000036
109 #define CR_NO_SUCH_DEVICE_INTERFACE 0x00000037
110 #define CR_INVALID_REFERENCE_STRING 0x00000038
111 #define CR_INVALID_CONFLICT_LIST 0x00000039
112 #define CR_INVALID_INDEX 0x0000003A
113 #define CR_INVALID_STRUCTURE_SIZE 0x0000003B
116 typedef DWORD RETURN_TYPE;
117 typedef RETURN_TYPE CONFIGRET;
119 typedef HANDLE HMACHINE;
120 typedef HMACHINE *PHMACHINE;
122 typedef DWORD_PTR RES_DES;
123 typedef RES_DES *PRES_DES;
125 typedef DWORD_PTR RANGE_ELEMENT;
126 typedef RANGE_ELEMENT *PRANGE_ELEMENT;
128 typedef ULONG_PTR CONFLICT_LIST;
129 typedef CONFLICT_LIST *PCONFLICT_LIST;
131 typedef DWORD_PTR LOG_CONF;
132 typedef LOG_CONF *PLOG_CONF;
134 typedef ULONG PRIORITY;
135 typedef PRIORITY *PPRIORITY;
137 typedef DWORD_PTR RANGE_LIST;
138 typedef RANGE_LIST *PRANGE_LIST;
140 typedef DWORD DEVNODE, DEVINST;
141 typedef DEVNODE *PDEVNODE, *PDEVINST;
143 typedef CHAR *DEVNODEID_A, *DEVINSTID_A;
144 typedef WCHAR *DEVNODEID_W, *DEVINSTID_W;
146 typedef __AW(DEVNODEID_) DEVNODEID;
147 typedef __AW(DEVINSTID_) DEVINSTID;
149 typedef ULONG REGDISPOSITION;
151 typedef ULONG RESOURCEID;
152 typedef RESOURCEID *PRESOURCEID;
154 #define CM_RESDES_WIDTH_DEFAULT 0x00000000
155 #define CM_RESDES_WIDTH_32 0x00000001
156 #define CM_RESDES_WIDTH_64 0x00000002
157 #define CM_RESDES_WIDTH_BITS 0x00000003
160 #define MAX_CONFIG_VALUE 9999
161 #define MAX_INSTANCE_VALUE 9999
163 #define MAX_DEVICE_ID_LEN 200
164 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN
166 #define MAX_CLASS_NAME_LEN 32
167 #define MAX_GUID_STRING_LEN 39
168 #define MAX_PROFILE_LEN 80
171 #define ResType_All 0x00000000
172 #define ResType_None 0x00000000
173 #define ResType_Mem 0x00000001
174 #define ResType_IO 0x00000002
175 #define ResType_DMA 0x00000003
176 #define ResType_IRQ 0x00000004
177 #define ResType_DoNotUse 0x00000005
178 #define ResType_BusNumber 0x00000006
179 #define ResType_MAX 0x00000006
180 #define ResType_Ignored_Bit 0x00008000
181 #define ResType_ClassSpecific 0x0000FFFF
182 #define ResType_Reserved 0x00008000
183 #define ResType_DevicePrivate 0x00008001
184 #define ResType_PcCardConfig 0x00008002
185 #define ResType_MfCardConfig 0x00008003
187 #define CM_GETIDLIST_FILTER_NONE 0x00000000
188 #define CM_GETIDLIST_FILTER_ENUMERATOR 0x00000001
189 #define CM_GETIDLIST_FILTER_SERVICE 0x00000002
190 #define CM_GETIDLIST_FILTER_EJECTRELATIONS 0x00000004
191 #define CM_GETIDLIST_FILTER_REMOVALRELATIONS 0x00000008
192 #define CM_GETIDLIST_FILTER_POWERRELATIONS 0x00000010
193 #define CM_GETIDLIST_FILTER_BUSRELATIONS 0x00000020
194 #define CM_GETIDLIST_DONOTGENERATE 0x10000040
195 #define CM_GETIDLIST_FILTER_BITS 0x1000007F
197 #define CM_GET_DEVICE_INTERFACE_LIST_PRESENT 0x00000000
198 #define CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES 0x00000001
199 #define CM_GET_DEVICE_INTERFACE_LIST_BITS 0x00000001
202 typedef struct BusNumber_Des_s {
206 ULONG BUSD_Alloc_Base;
207 ULONG BUSD_Alloc_End;
208 } BUSNUMBER_DES, *PBUSNUMBER_DES;
210 typedef struct BusNumber_Range_s {
213 ULONG BUSR_nBusNumbers;
215 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE;
217 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE)
219 typedef struct BusNumber_Resource_s {
220 BUSNUMBER_DES BusNumber_Header;
221 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY];
222 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE;
224 typedef struct CS_Des_s {
225 DWORD CSD_SignatureLength;
226 DWORD CSD_LegacyDataOffset;
227 DWORD CSD_LegacyDataSize;
230 BYTE CSD_Signature[ANYSIZE_ARRAY];
233 typedef struct CS_Resource_s {
235 } CS_RESOURCE, *PCS_RESOURCE;
237 typedef struct DevPrivate_Des_s {
244 } DEVPRIVATE_DES, *PDEVPRIVATE_DES;
246 typedef struct DevPrivate_Range_s {
250 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE;
252 #define PType_Range sizeof(DEVPRIVATE_RANGE)
254 typedef struct DevPrivate_Resource_s {
255 DEVPRIVATE_DES PRV_Header;
256 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY];
257 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE;
259 /* DMA_DES.DD_Flags constants and masks */
260 #define mDD_Width 0x3
263 #define fDD_DWORD 0x2
264 #define fDD_BYTE_AND_WORD 0x3
266 #define mDD_BusMaster 0x4
267 #define fDD_NoBusMaster 0x0
268 #define fDD_BusMaster 0x4
270 #define mDD_Type 0x18
271 #define fDD_TypeStandard 0x00
272 #define fDD_TypeA 0x08
273 #define fDD_TypeB 0x10
274 #define fDD_TypeF 0x18
276 typedef struct DMA_Des_s {
281 } DMA_DES, *PDMA_DES;
283 typedef struct DMA_Range_s {
287 } DMA_RANGE, *PDMA_RANGE;
289 #define DType_Range sizeof(DMA_RANGE)
291 typedef struct DMA_Resource_s {
293 DMA_RANGE DMA_Data[ANYSIZE_ARRAY];
294 } DMA_RESOURCE, *PDMA_RESOURCE;
296 /* IO_DES.Type constants and masks */
297 #define fIOD_PortType 0x1
298 #define fIOD_Memory 0x0
300 #define fIOD_DECODE 0x00fc
301 #define fIOD_10_BIT_DECODE 0x0004
302 #define fIOD_12_BIT_DECODE 0x0008
303 #define fIOD_16_BIT_DECODE 0x0010
304 #define fIOD_POSITIVE_DECODE 0x0020
305 #define fIOD_PASSIVE_DECODE 0x0040
306 #define fIOD_WINDOW_DECODE 0x0080
308 typedef struct IO_Des_s {
311 DWORDLONG IOD_Alloc_Base;
312 DWORDLONG IOD_Alloc_End;
316 /* IO_RANGE.IOR_Alias constants */
317 #define IO_ALIAS_10_BIT_DECODE 0x00000004
318 #define IO_ALIAS_12_BIT_DECODE 0x00000010
319 #define IO_ALIAS_16_BIT_DECODE 0x00000000
320 #define IO_ALIAS_POSITIVE_DECODE 0x000000FF
322 typedef struct IO_Range_s {
327 DWORD IOR_RangeFlags;
329 } IO_RANGE, *PIO_RANGE;
331 #define IOType_Range sizeof(IO_RANGE)
333 typedef struct IO_Resource_s {
335 IO_RANGE IO_Data[ANYSIZE_ARRAY];
336 } IO_RESOURCE, *PIO_RESOURCE;
338 /* IRQ_DES.IRQD_flags constants */
339 #define mIRQD_Share 0x1
340 #define fIRQD_Exclusive 0x0
341 #define fIRQD_Share 0x1
343 #define fIRQD_Share_Bit 0
344 #define fIRQD_Level_Bit 1
346 #define mIRQD_Edge_Level 0x2
347 #define fIRQD_Level 0x0
348 #define fIRQD_Edge 0x2
350 typedef struct IRQ_Des_32_s {
354 ULONG IRQD_Alloc_Num;
355 ULONG32 IRQD_Affinity;
356 } IRQ_DES_32, *PIRQ_DES_32;
358 typedef struct IRQ_Des_64_s {
362 ULONG IRQD_Alloc_Num;
363 ULONG64 IRQD_Affinity;
364 } IRQ_DES_64, *PIRQ_DES_64;
367 typedef IRQ_DES_64 IRQ_DES;
368 typedef PIRQ_DES_64 PIRQ_DES;
370 typedef IRQ_DES_32 IRQ_DES;
371 typedef PIRQ_DES_32 PIRQ_DES;
374 typedef struct IRQ_Range_s {
378 } IRQ_RANGE, *PIRQ_RANGE;
380 #define IRQType_Range sizeof(IRQ_RANGE)
382 typedef struct IRQ_Resource_s {
384 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY];
385 } IRQ_RESOURCE, *PIRQ_RESOURCE;
387 /* MEM_DES.MD_Flags constants */
388 #define mMD_MemoryType 0x1
389 #define fMD_MemoryType mMD_MemoryType
393 #define mMD_32_24 0x2
394 #define fMD_32_24 mMD_32_24
398 #define mMD_Prefetchable 0x4
399 #define fMD_Prefetchable mMD_Prefetchable
400 #define fMD_Pref mMD_Prefetchable
401 #define fMD_PrefetchDisallowed 0x0
402 #define fMD_PrefetchAllowed 0x4
404 #define mMD_Readable 0x8
405 #define fMD_Readable mMD_Readable
406 #define fMD_ReadAllowed 0x0
407 #define fMD_ReadDisallowed 0x8
409 #define mMD_CombinedWrite 0x10
410 #define fMD_CombinedWrite mMD_CombinedWrite
411 #define fMD_CombinedWriteDisallowed 0x0
412 #define fMD_CombinedWriteAllowed 0x10
414 #define mMD_Cacheable 0x20
415 #define fMD_NonCacheable 0x0
416 #define fMD_Cacheable 0x20
418 typedef struct Mem_Des_s {
421 DWORDLONG MD_Alloc_Base;
422 DWORDLONG MD_Alloc_End;
425 } MEM_DES, *PMEM_DES;
427 typedef struct Mem_Range_s {
434 } MEM_RANGE, *PMEM_RANGE;
436 #define MType_Range sizeof(MEM_RANGE)
438 typedef struct Mem_Resource_s {
440 MEM_RANGE MEM_Data[ANYSIZE_ARRAY];
441 } MEM_RESOURCE, *PMEM_RESOURCE;
443 /* MFCARD_DES.PMF_Flags constants */
444 #define fPMF_AUDIO_ENABLE 0x8
445 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE
447 typedef struct MfCard_Des_s {
451 BYTE PMF_ConfigOptions;
452 BYTE PMF_IoResourceIndex;
453 BYTE PMF_Reserved[2];
454 DWORD PMF_ConfigRegisterBase;
455 } MFCARD_DES, *PMFCARD_DES;
457 typedef struct MfCard_Resource_s {
458 MFCARD_DES MfCard_Header;
459 } MFCARD_RESOURCE, *PMFCARD_RESOURCE;
461 /* PCCARD_DES.PCD_Flags constants */
463 typedef struct PcCard_Des_s {
467 BYTE PCD_ConfigIndex;
468 BYTE PCD_Reserved[3];
469 DWORD PCD_MemoryCardBase1;
470 DWORD PCD_MemoryCardBase2;
471 } PCCARD_DES, *PPCCARD_DES;
473 #define mPCD_IO_8_16 0x1
474 #define fPCD_IO_8 0x0
475 #define fPCD_IO_16 0x1
476 #define mPCD_MEM_8_16 0x2
477 #define fPCD_MEM_8 0x0
478 #define fPCD_MEM_16 0x2
479 #define mPCD_MEM_A_C 0xC
480 #define fPCD_MEM1_A 0x4
481 #define fPCD_MEM2_A 0x8
482 #define fPCD_IO_ZW_8 0x10
483 #define fPCD_IO_SRC_16 0x20
484 #define fPCD_IO_WS_16 0x40
485 #define mPCD_MEM_WS 0x300
486 #define fPCD_MEM_WS_ONE 0x100
487 #define fPCD_MEM_WS_TWO 0x200
488 #define fPCD_MEM_WS_THREE 0x300
490 #define fPCD_MEM_A 0x4
492 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000
494 #define fPCD_IO1_16 0x00010000
495 #define fPCD_IO1_ZW_8 0x00020000
496 #define fPCD_IO1_SRC_16 0x00040000
497 #define fPCD_IO1_WS_16 0x00080000
499 #define fPCD_IO2_16 0x00100000
500 #define fPCD_IO2_ZW_8 0x00200000
501 #define fPCD_IO2_SRC_16 0x00400000
502 #define fPCD_IO2_WS_16 0x00800000
504 #define mPCD_MEM1_WS 0x03000000
505 #define fPCD_MEM1_WS_ONE 0x01000000
506 #define fPCD_MEM1_WS_TWO 0x02000000
507 #define fPCD_MEM1_WS_THREE 0x03000000
508 #define fPCD_MEM1_16 0x04000000
510 #define mPCD_MEM2_WS 0x30000000
511 #define fPCD_MEM2_WS_ONE 0x10000000
512 #define fPCD_MEM2_WS_TWO 0x20000000
513 #define fPCD_MEM2_WS_THREE 0x30000000
514 #define fPCD_MEM2_16 0x40000000
516 #define PCD_MAX_MEMORY 2
519 typedef struct PcCard_Resource_s {
520 PCCARD_DES PcCard_Header;
521 } PCCARD_RESOURCE, *PPCCARD_RESOURCE;
524 /* CONFLICT_DETAILS.CD.ulMask constants */
525 #define CM_CDMASK_DEVINST 0x00000001
526 #define CM_CDMASK_RESDES 0x00000002
527 #define CM_CDMASK_FLAGS 0x00000004
528 #define CM_CDMASK_DESCRIPTION 0x00000008
529 #define CM_CDMASK_VALID 0x0000000F
531 /* CONFLICT_DETAILS.CD.ulFlags constants */
532 #define CM_CDFLAGS_DRIVER 0x00000001
533 #define CM_CDFLAGS_ROOT_OWNED 0x00000002
534 #define CM_CDFLAGS_RESERVED 0x00000004
536 typedef struct _CONFLICT_DETAILS_A {
539 DEVINST CD_dnDevInst;
542 CHAR CD_szDescription[MAX_PATH];
543 } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A;
545 typedef struct _CONFLICT_DETAILS_W {
548 DEVINST CD_dnDevInst;
551 WCHAR CD_szDescription[MAX_PATH];
552 } CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W;
554 typedef __AW(CONFLICT_DETAILS_) CONFLICT_DETAILS;
555 typedef __AW(PCONFLICT_DETAILS_) PCONFLICT_DETAILS;
557 /* CM_Add_Empty_Log_Conf.ulFlags constants */
558 #define PRIORITY_EQUAL_FIRST 0x00000008
559 #define PRIORITY_EQUAL_LAST 0x00000000
560 #define PRIORITY_BIT 0x00000008
565 CM_Add_Empty_Log_Conf(
566 /*OUT*/ PLOG_CONF plcLogConf,
567 /*IN*/ DEVINST dnDevInst,
568 /*IN*/ PRIORITY Priority,
569 /*IN*/ ULONG ulFlags);
574 CM_Add_Empty_Log_Conf_Ex(
575 /*OUT*/ PLOG_CONF plcLogConf,
576 /*IN*/ DEVINST dnDevInst,
577 /*IN*/ PRIORITY Priority,
578 /*IN*/ ULONG ulFlags,
579 /*IN*/ HMACHINE hMachine);
581 /* CM_Add_ID.ulFlags constants */
582 #define CM_ADD_ID_HARDWARE 0x00000000
583 #define CM_ADD_ID_COMPATIBLE 0x00000001
584 #define CM_ADD_ID_BITS 0x00000001
590 /*IN*/ DEVINST dnDevInst,
592 /*IN*/ ULONG ulFlags,
593 /*IN*/ HMACHINE hMachine);
599 /*IN*/ DEVINST dnDevInst,
601 /*IN*/ ULONG ulFlags,
602 /*IN*/ HMACHINE hMachine);
608 /*IN*/ DEVINST dnDevInst,
610 /*IN*/ ULONG ulFlags,
611 /*IN*/ HMACHINE hMachine);
617 /*IN*/ DEVINST dnDevInst,
619 /*IN*/ ULONG ulFlags,
620 /*IN*/ HMACHINE hMachine);
622 #define CM_Add_ID __AW(CM_Add_ID)
623 #define CM_Add_ID_Ex __AW(CM_Add_ID_Ex)
625 /* FIXME: Obsolete CM_Add_Range */
631 /*OUT*/ PRES_DES prdResDes,
632 /*IN*/ LOG_CONF lcLogConf,
633 /*IN*/ RESOURCEID ResourceID,
634 /*IN*/ PCVOID ResourceData,
635 /*IN*/ ULONG ResourceLen,
636 /*IN*/ ULONG ulFlags);
642 /*OUT*/ PRES_DES prdResDes,
643 /*IN*/ LOG_CONF lcLogConf,
644 /*IN*/ RESOURCEID ResourceID,
645 /*IN*/ PCVOID ResourceData,
646 /*IN*/ ULONG ResourceLen,
647 /*IN*/ ULONG ulFlags,
648 /*IN*/ HMACHINE hMachine);
654 /*IN*/ PCSTR UNCServerName,
655 /*OUT*/ PHMACHINE phMachine);
661 /*IN*/ PCWSTR UNCServerName,
662 /*OUT*/ PHMACHINE phMachine);
664 #define CM_Connect_Machine __AW(CM_Connect_Machine)
666 /* FIXME: Obsolete CM_Create_DevNode */
667 /* FIXME: Obsolete CM_Create_DevNodeEx */
668 /* FIXME: Obsolete CM_Create_Range_List */
669 /* FIXME: Obsolete CM_Delete_Class_Key */
670 /* FIXME: Obsolete CM_Delete_Class_Key_Ex */
671 /* FIXME: Obsolete CM_Delete_DevNode_Key */
672 /* FIXME: Obsolete CM_Delete_DevNode_Key_Ex */
673 /* FIXME: Obsolete CM_Delete_Range */
674 /* FIXME: Obsolete CM_Detected_Resource_Conflict */
675 /* FIXME: Obsolete CM_Detected_Resource_Conflict_Ex */
676 /* FIXME: Obsolete CM_Disable_DevNode */
677 /* FIXME: Obsolete CM_Disable_DevNodeEx */
682 CM_Disconnect_Machine(
683 /*IN*/ HMACHINE hMachine);
685 /* FIXME: Obsolete CM_Enable_DevNode */
686 /* FIXME: Obsolete CM_Enable_DevNodeEx */
691 CM_Enumerate_Classes(
692 /*IN*/ ULONG ulClassIndex,
693 /*OUT*/ LPGUID ClassGuid,
694 /*IN*/ ULONG ulFlags);
699 CM_Enumerate_Classes_Ex(
700 /*IN*/ ULONG ulClassIndex,
701 /*OUT*/ LPGUID ClassGuid,
702 /*IN*/ ULONG ulFlags,
703 /*IN*/ HMACHINE hMachine);
708 CM_Enumerate_EnumeratorsA(
709 /*IN*/ ULONG ulEnumIndex,
710 /*OUT*/ PCHAR Buffer,
711 /*IN OUT*/ PULONG pulLength,
712 /*IN*/ ULONG ulFlags);
717 CM_Enumerate_Enumerators_ExA(
718 /*IN*/ ULONG ulEnumIndex,
719 /*OUT*/ PCHAR Buffer,
720 /*IN OUT*/ PULONG pulLength,
721 /*IN*/ ULONG ulFlags,
722 /*IN*/ HMACHINE hMachine);
727 CM_Enumerate_Enumerators_ExW(
728 /*IN*/ ULONG ulEnumIndex,
729 /*OUT*/ PWCHAR Buffer,
730 /*IN OUT*/ PULONG pulLength,
731 /*IN*/ ULONG ulFlags,
732 /*IN*/ HMACHINE hMachine);
737 CM_Enumerate_EnumeratorsW(
738 /*IN*/ ULONG ulEnumIndex,
739 /*OUT*/ PWCHAR Buffer,
740 /*IN OUT*/ PULONG pulLength,
741 /*IN*/ ULONG ulFlags);
743 #define CM_Enumerate_Enumerators __AW(CM_Enumerate_Enumerators)
744 #define CM_Enumerate_Enumerators_Ex __AW(CM_Enumerate_Enumerators_Ex)
746 /* FIXME: Obsolete CM_Find_Range */
747 /* FIXME: Obsolete CM_First_Range */
753 /*IN*/ LOG_CONF lcLogConfToBeFreed,
754 /*IN*/ ULONG ulFlags);
760 /*IN*/ LOG_CONF lcLogConfToBeFreed,
761 /*IN*/ ULONG ulFlags,
762 /*IN*/ HMACHINE hMachine);
767 CM_Free_Log_Conf_Handle(
768 /*IN*/ LOG_CONF lcLogConf);
770 /* FIXME: Obsolete CM_Free_Range_List */
776 /*OUT*/ PRES_DES prdResDes,
777 /*IN*/ RES_DES rdResDes,
778 /*IN*/ ULONG ulFlags);
784 /*OUT*/ PRES_DES prdResDes,
785 /*IN*/ RES_DES rdResDes,
786 /*IN*/ ULONG ulFlags,
787 /*IN*/ HMACHINE hMachine);
792 CM_Free_Res_Des_Handle(
793 /*IN*/ RES_DES rdResDes);
798 CM_Free_Resource_Conflict_Handle(
799 /*IN*/ CONFLICT_LIST clConflictList);
805 /*OUT*/ PDEVINST pdnDevInst,
806 /*IN*/ DEVINST dnDevInst,
807 /*IN*/ ULONG ulFlags);
813 /*OUT*/ PDEVINST pdnDevInst,
814 /*IN*/ DEVINST dnDevInst,
815 /*IN*/ ULONG ulFlags,
816 /*IN*/ HMACHINE hMachine);
818 /* FIXME: Obsolete CM_Get_Class_Name */
819 /* FIXME: Obsolete CM_Get_Class_Name_Ex */
820 /* FIXME: Obsolete CM_Get_Class_Key_Name */
821 /* FIXME: Obsolete CM_Get_Class_Key_Name_Ex */
822 /* FIXME: Obsolete CM_Get_Class_Registry_Property */
828 /*OUT*/ PULONG pulDepth,
829 /*IN*/ DEVINST dnDevInst,
830 /*IN*/ ULONG ulFlags);
836 /*OUT*/ PULONG pulDepth,
837 /*IN*/ DEVINST dnDevInst,
838 /*IN*/ ULONG ulFlags,
839 /*IN*/ HMACHINE hMachine);
845 /*IN*/ DEVINST dnDevInst,
846 /*OUT*/ PCHAR Buffer,
847 /*IN*/ ULONG BufferLen,
848 /*IN*/ ULONG ulFlags);
853 CM_Get_Device_ID_ExA(
854 /*IN*/ DEVINST dnDevInst,
855 /*OUT*/ PCHAR Buffer,
856 /*IN*/ ULONG BufferLen,
857 /*IN*/ ULONG ulFlags,
858 /*IN*/ HMACHINE hMachine);
863 CM_Get_Device_ID_ExW(
864 /*IN*/ DEVINST dnDevInst,
865 /*OUT*/ PWCHAR Buffer,
866 /*IN*/ ULONG BufferLen,
867 /*IN*/ ULONG ulFlags,
868 /*IN*/ HMACHINE hMachine);
874 /*IN*/ DEVINST dnDevInst,
875 /*OUT*/ PWCHAR Buffer,
876 /*IN*/ ULONG BufferLen,
877 /*IN*/ ULONG ulFlags);
879 #define CM_Get_Device_ID __AW(CM_Get_Device_ID)
880 #define CM_Get_Device_ID_Ex __AW(CM_Get_Device_ID_Ex)
885 CM_Get_Device_ID_ListA(
886 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
887 /*OUT*/ PCHAR Buffer,
888 /*IN*/ ULONG BufferLen,
889 /*IN*/ ULONG ulFlags);
894 CM_Get_Device_ID_List_ExA(
895 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
896 /*OUT*/ PCHAR Buffer,
897 /*IN*/ ULONG BufferLen,
898 /*IN*/ ULONG ulFlags,
899 /*IN*/ HMACHINE hMachine);
904 CM_Get_Device_ID_List_ExW(
905 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
906 /*OUT*/ PWCHAR Buffer,
907 /*IN*/ ULONG BufferLen,
908 /*IN*/ ULONG ulFlags,
909 /*IN*/ HMACHINE hMachine);
914 CM_Get_Device_ID_ListW(
915 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
916 /*OUT*/ PWCHAR Buffer,
917 /*IN*/ ULONG BufferLen,
918 /*IN*/ ULONG ulFlags);
920 #define CM_Get_Device_ID_List __AW(CM_Get_Device_ID_List)
921 #define CM_Get_Device_ID_List_Ex __AW(CM_Get_Device_ID_List_Ex)
926 CM_Get_Device_ID_List_SizeA(
927 /*OUT*/ PULONG pulLen,
928 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
929 /*IN*/ ULONG ulFlags);
934 CM_Get_Device_ID_List_Size_ExA(
935 /*OUT*/ PULONG pulLen,
936 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/
937 /*IN*/ ULONG ulFlags,
938 /*IN*/ HMACHINE hMachine);
943 CM_Get_Device_ID_List_Size_ExW(
944 /*OUT*/ PULONG pulLen,
945 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
946 /*IN*/ ULONG ulFlags,
947 /*IN*/ HMACHINE hMachine);
952 CM_Get_Device_ID_List_SizeW(
953 /*OUT*/ PULONG pulLen,
954 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/
955 /*IN*/ ULONG ulFlags);
957 #define CM_Get_Device_ID_List_Size __AW(CM_Get_Device_ID_List_Size)
958 #define CM_Get_Device_ID_List_Size_Ex __AW(CM_Get_Device_ID_List_Size_Ex)
963 CM_Get_Device_ID_Size(
964 /*OUT*/ PULONG pulLen,
965 /*IN*/ DEVINST dnDevInst,
966 /*IN*/ ULONG ulFlags);
971 CM_Get_Device_ID_Size_Ex(
972 /*OUT*/ PULONG pulLen,
973 /*IN*/ DEVINST dnDevInst,
974 /*IN*/ ULONG ulFlags,
975 /*IN*/ HMACHINE hMachine);
977 /* FIXME: Obsolete CM_Get_Device_Interface_Alias */
978 /* FIXME: Obsolete CM_Get_Device_Interface_Alias_Ex */
979 /* FIXME: Obsolete CM_Get_Device_Interface_List */
980 /* FIXME: Obsolete CM_Get_Device_Interface_List_Ex */
981 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size */
982 /* FIXME: Obsolete CM_Get_Device_Interface_List_Size_Ex */
983 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property */
984 /* FIXME: Obsolete CM_Get_DevNode_Custom_Property_Ex */
985 /* FIXME: Obsolete CM_Get_DevNode_Registry_Property */
990 CM_Get_DevNode_Status(
991 /*OUT*/ PULONG pulStatus,
992 /*OUT*/ PULONG pulProblemNumber,
993 /*IN*/ DEVINST dnDevInst,
994 /*IN*/ ULONG ulFlags);
999 CM_Get_DevNode_Status_Ex(
1000 /*OUT*/ PULONG pulStatus,
1001 /*OUT*/ PULONG pulProblemNumber,
1002 /*IN*/ DEVINST dnDevInst,
1003 /*IN*/ ULONG ulFlags,
1004 /*IN*/ HMACHINE hMachine);
1006 #define CM_Get_DevInst_Status CM_Get_DevNode_Status
1007 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex
1009 /* CM_Get_First_Log_Conf.ulFlags constants */
1010 #define BASIC_LOG_CONF 0x00000000 /* Specifies the req list. */
1011 #define FILTERED_LOG_CONF 0x00000001 /* Specifies the filtered req list. */
1012 #define ALLOC_LOG_CONF 0x00000002 /* Specifies the Alloc Element. */
1013 #define BOOT_LOG_CONF 0x00000003 /* Specifies the RM Alloc Element. */
1014 #define FORCED_LOG_CONF 0x00000004 /* Specifies the Forced Log Conf */
1015 #define OVERRIDE_LOG_CONF 0x00000005 /* Specifies the Override req list. */
1016 #define NUM_LOG_CONF 0x00000006 /* Number of Log Conf type */
1017 #define LOG_CONF_BITS 0x00000007 /* The bits of the log conf type. */
1022 CM_Get_First_Log_Conf(
1023 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1024 /*IN*/ DEVINST dnDevInst,
1025 /*IN*/ ULONG ulFlags);
1030 CM_Get_First_Log_Conf_Ex(
1031 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1032 /*IN*/ DEVINST dnDevInst,
1033 /*IN*/ ULONG ulFlags,
1034 /*IN*/ HMACHINE hMachine);
1036 /* FIXME: Obsolete CM_Get_Global_State */
1037 /* FIXME: Obsolete CM_Get_Global_State_Ex */
1038 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
1039 /* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
1040 /* FIXME: Obsolete CM_Get_HW_Prof_Flags */
1041 /* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
1046 CM_Get_Log_Conf_Priority(
1047 /*IN*/ LOG_CONF lcLogConf,
1048 /*OUT*/ PPRIORITY pPriority,
1049 /*IN*/ ULONG ulFlags);
1054 CM_Get_Log_Conf_Priority_Ex(
1055 /*IN*/ LOG_CONF lcLogConf,
1056 /*OUT*/ PPRIORITY pPriority,
1057 /*IN*/ ULONG ulFlags,
1058 /*IN*/ HMACHINE hMachine);
1063 CM_Get_Next_Log_Conf(
1064 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1065 /*IN*/ LOG_CONF lcLogConf,
1066 /*IN*/ ULONG ulFlags);
1071 CM_Get_Next_Log_Conf_Ex(
1072 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/
1073 /*IN*/ LOG_CONF lcLogConf,
1074 /*IN*/ ULONG ulFlags,
1075 /*IN*/ HMACHINE hMachine);
1080 CM_Get_Next_Res_Des(
1081 /*OUT*/ PRES_DES prdResDes,
1082 /*IN*/ RES_DES rdResDes,
1083 /*IN*/ RESOURCEID ForResource,
1084 /*OUT*/ PRESOURCEID pResourceID,
1085 /*IN*/ ULONG ulFlags);
1090 CM_Get_Next_Res_Des_Ex(
1091 /*OUT*/ PRES_DES prdResDes,
1092 /*IN*/ RES_DES rdResDes,
1093 /*IN*/ RESOURCEID ForResource,
1094 /*OUT*/ PRESOURCEID pResourceID,
1095 /*IN*/ ULONG ulFlags,
1096 /*IN*/ HMACHINE hMachine);
1102 /*OUT*/ PDEVINST pdnDevInst,
1103 /*IN*/ DEVINST dnDevInst,
1104 /*IN*/ ULONG ulFlags);
1110 /*OUT*/ PDEVINST pdnDevInst,
1111 /*IN*/ DEVINST dnDevInst,
1112 /*IN*/ ULONG ulFlags,
1113 /*IN*/ HMACHINE hMachine);
1118 CM_Get_Res_Des_Data(
1119 /*IN*/ RES_DES rdResDes,
1120 /*OUT*/ PVOID Buffer,
1121 /*IN*/ ULONG BufferLen,
1122 /*IN*/ ULONG ulFlags);
1127 CM_Get_Res_Des_Data_Ex(
1128 /*IN*/ RES_DES rdResDes,
1129 /*OUT*/ PVOID Buffer,
1130 /*IN*/ ULONG BufferLen,
1131 /*IN*/ ULONG ulFlags,
1132 /*IN*/ HMACHINE hMachine);
1137 CM_Get_Res_Des_Data_Size(
1138 /*OUT*/ PULONG pulSize,
1139 /*IN*/ RES_DES rdResDes,
1140 /*IN*/ ULONG ulFlags);
1145 CM_Get_Res_Des_Data_Size_Ex(
1146 /*OUT*/ PULONG pulSize,
1147 /*IN*/ RES_DES rdResDes,
1148 /*IN*/ ULONG ulFlags,
1149 /*IN*/ HMACHINE hMachine);
1154 CM_Get_Resource_Conflict_Count(
1155 /*IN*/ CONFLICT_LIST clConflictList,
1156 /*OUT*/ PULONG pulCount);
1161 CM_Get_Resource_Conflict_DetailsA(
1162 /*IN*/ CONFLICT_LIST clConflictList,
1163 /*IN*/ ULONG ulIndex,
1164 /*IN OUT*/ PCONFLICT_DETAILS_A pConflictDetails);
1169 CM_Get_Resource_Conflict_DetailsW(
1170 /*IN*/ CONFLICT_LIST clConflictList,
1171 /*IN*/ ULONG ulIndex,
1172 /*IN OUT*/ PCONFLICT_DETAILS_W pConflictDetails);
1174 #define CM_Get_Resource_Conflict_Details __AW(CM_Get_Resource_Conflict_Details)
1180 /*OUT*/ PDEVINST pdnDevInst,
1181 /*IN*/ DEVINST DevInst,
1182 /*IN*/ ULONG ulFlags);
1188 /*OUT*/ PDEVINST pdnDevInst,
1189 /*IN*/ DEVINST DevInst,
1190 /*IN*/ ULONG ulFlags,
1191 /*IN*/ HMACHINE hMachine);
1203 /*IN*/ HMACHINE hMachine);
1205 /* FIXME: Obsolete CM_Intersect_Range_List */
1206 /* FIXME: Obsolete CM_Invert_Range_List */
1207 /* FIXME: Obsolete CM_Is_Dock_Station_Present */
1208 /* FIXME: Obsolete CM_Is_Dock_Station_Present_Ex */
1210 /* CM_Locate_DevNode.ulFlags constants */
1211 #define CM_LOCATE_DEVNODE_NORMAL 0x00000000
1212 #define CM_LOCATE_DEVNODE_PHANTOM 0x00000001
1213 #define CM_LOCATE_DEVNODE_CANCELREMOVE 0x00000002
1214 #define CM_LOCATE_DEVNODE_NOVALIDATION 0x00000004
1215 #define CM_LOCATE_DEVNODE_BITS 0x00000007
1217 #define CM_LOCATE_DEVINST_NORMAL CM_LOCATE_DEVNODE_NORMAL
1218 #define CM_LOCATE_DEVINST_PHANTOM CM_LOCATE_DEVNODE_PHANTOM
1219 #define CM_LOCATE_DEVINST_CANCELREMOVE CM_LOCATE_DEVNODE_CANCELREMOVE
1220 #define CM_LOCATE_DEVINST_NOVALIDATION CM_LOCATE_DEVNODE_NOVALIDATION
1221 #define CM_LOCATE_DEVINST_BITS CM_LOCATE_DEVNODE_BITS
1227 /*OUT*/ PDEVINST pdnDevInst,
1228 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1229 /*IN*/ ULONG ulFlags);
1234 CM_Locate_DevNode_ExA(
1235 /*OUT*/ PDEVINST pdnDevInst,
1236 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/
1237 /*IN*/ ULONG ulFlags,
1238 /*IN*/ HMACHINE hMachine);
1243 CM_Locate_DevNode_ExW(
1244 /*OUT*/ PDEVINST pdnDevInst,
1245 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1246 /*IN*/ ULONG ulFlags,
1247 /*IN*/ HMACHINE hMachine);
1253 /*OUT*/ PDEVINST pdnDevInst,
1254 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/
1255 /*IN*/ ULONG ulFlags);
1257 #define CM_Locate_DevInstA CM_Locate_DevNodeA
1258 #define CM_Locate_DevInstW CM_Locate_DevNodeW
1259 #define CM_Locate_DevInst_ExA CM_Locate_DevNode_ExA
1260 #define CM_Locate_DevInst_ExW CM_Locate_DevNode_ExW
1262 #define CM_Locate_DevNode __AW(CM_Locate_DevNode)
1263 #define CM_Locate_DevInst __AW(CM_Locate_DevNode)
1264 #define CM_Locate_DevNode_Ex __AW(CM_Locate_DevNode_Ex)
1265 #define CM_Locate_DevInst_Ex __AW(CM_Locate_DevNode_Ex)
1267 /* FIXME: Obsolete CM_Merge_Range_List */
1273 /*OUT*/ PRES_DES prdResDes,
1274 /*IN*/ RES_DES rdResDes,
1275 /*IN*/ RESOURCEID ResourceID,
1276 /*IN*/ PCVOID ResourceData,
1277 /*IN*/ ULONG ResourceLen,
1278 /*IN*/ ULONG ulFlags);
1283 CM_Modify_Res_Des_Ex(
1284 /*OUT*/ PRES_DES prdResDes,
1285 /*IN*/ RES_DES rdResDes,
1286 /*IN*/ RESOURCEID ResourceID,
1287 /*IN*/ PCVOID ResourceData,
1288 /*IN*/ ULONG ResourceLen,
1289 /*IN*/ ULONG ulFlags,
1290 /*IN*/ HMACHINE hMachine);
1292 /* FIXME: Obsolete CM_Move_DevNode */
1293 /* FIXME: Obsolete CM_Move_DevNode_Ex */
1294 /* FIXME: Obsolete CM_Next_Range */
1295 /* FIXME: Obsolete CM_Open_Class_Key */
1296 /* FIXME: Obsolete CM_Open_Class_Key_Ex */
1297 /* FIXME: Obsolete CM_Open_DevNode_Key */
1298 /* FIXME: Obsolete CM_Open_DevNode_Key_Ex */
1300 /* CM_Query_And_Remove_SubTree.ulFlags constants */
1301 #define CM_REMOVE_UI_OK 0x00000000
1302 #define CM_REMOVE_UI_NOT_OK 0x00000001
1303 #define CM_REMOVE_NO_RESTART 0x00000002
1304 #define CM_REMOVE_BITS 0x00000003
1309 CM_Query_And_Remove_SubTreeA(
1310 /*IN*/ DEVINST dnAncestor,
1311 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1312 /*OUT*/ LPSTR pszVetoName,
1313 /*IN*/ ULONG ulNameLength,
1314 /*IN*/ ULONG ulFlags);
1319 CM_Query_And_Remove_SubTreeW(
1320 /*IN*/ DEVINST dnAncestor,
1321 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1322 /*OUT*/ LPWSTR pszVetoName,
1323 /*IN*/ ULONG ulNameLength,
1324 /*IN*/ ULONG ulFlags);
1329 CM_Query_And_Remove_SubTree_ExA(
1330 /*IN*/ DEVINST dnAncestor,
1331 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1332 /*OUT*/ LPSTR pszVetoName,
1333 /*IN*/ ULONG ulNameLength,
1334 /*IN*/ ULONG ulFlags,
1335 /*IN*/ HMACHINE hMachine);
1340 CM_Query_And_Remove_SubTree_ExW(
1341 /*IN*/ DEVINST dnAncestor,
1342 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1343 /*OUT*/ LPWSTR pszVetoName,
1344 /*IN*/ ULONG ulNameLength,
1345 /*IN*/ ULONG ulFlags,
1346 /*IN*/ HMACHINE hMachine);
1348 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data */
1349 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Data_Ex */
1350 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size */
1351 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1352 /* FIXME: Obsolete CM_Query_Arbitrator_Free_Size_Ex */
1353 /* FIXME: Obsolete CM_Query_Remove_SubTree */
1354 /* FIXME: Obsolete CM_Query_Remove_SubTree_Ex */
1359 CM_Query_Resource_Conflict_List(
1360 /*OUT*/ PCONFLICT_LIST pclConflictList,
1361 /*IN*/ DEVINST dnDevInst,
1362 /*IN*/ RESOURCEID ResourceID,
1363 /*IN*/ PCVOID ResourceData,
1364 /*IN*/ ULONG ResourceLen,
1365 /*IN*/ ULONG ulFlags,
1366 /*IN*/ HMACHINE hMachine);
1368 /* CM_Reenumerate_DevNode.ulFlags constants */
1369 #define CM_REENUMERATE_NORMAL 0x00000000
1370 #define CM_REENUMERATE_SYNCHRONOUS 0x00000001
1371 #define CM_REENUMERATE_RETRY_INSTALLATION 0x00000002
1372 #define CM_REENUMERATE_ASYNCHRONOUS 0x00000004
1373 #define CM_REENUMERATE_BITS 0x00000007
1378 CM_Reenumerate_DevNode(
1379 /*IN*/ DEVINST dnDevInst,
1380 /*IN*/ ULONG ulFlags);
1385 CM_Reenumerate_DevNode_Ex(
1386 /*IN*/ DEVINST dnDevInst,
1387 /*IN*/ ULONG ulFlags,
1388 /*IN*/ HMACHINE hMachine);
1390 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode
1391 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex
1393 /* FIXME: Obsolete CM_Register_Device_Driver */
1394 /* FIXME: Obsolete CM_Register_Device_Driver_Ex */
1395 /* FIXME: Obsolete CM_Register_Device_Interface */
1396 /* FIXME: Obsolete CM_Register_Device_Interface_Ex */
1397 /* FIXME: Obsolete CM_Remove_SubTree */
1398 /* FIXME: Obsolete CM_Remove_SubTree_Ex */
1403 CM_Request_Device_EjectA(
1404 /*IN*/ DEVINST dnDevInst,
1405 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1406 /*OUT*/ LPSTR pszVetoName,
1407 /*IN*/ ULONG ulNameLength,
1408 /*IN*/ ULONG ulFlags);
1413 CM_Request_Device_Eject_ExW(
1414 /*IN*/ DEVINST dnDevInst,
1415 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1416 /*OUT*/ LPWSTR pszVetoName,
1417 /*IN*/ ULONG ulNameLength,
1418 /*IN*/ ULONG ulFlags,
1419 /*IN*/ HMACHINE hMachine);
1424 CM_Request_Device_Eject_ExA(
1425 /*IN*/ DEVINST dnDevInst,
1426 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1427 /*OUT*/ LPSTR pszVetoName,
1428 /*IN*/ ULONG ulNameLength,
1429 /*IN*/ ULONG ulFlags,
1430 /*IN*/ HMACHINE hMachine);
1435 CM_Request_Device_EjectW(
1436 /*IN*/ DEVINST dnDevInst,
1437 /*OUT*/ PPNP_VETO_TYPE pVetoType,
1438 /*OUT*/ LPWSTR pszVetoName,
1439 /*IN*/ ULONG ulNameLength,
1440 /*IN*/ ULONG ulFlags);
1442 #define CM_Request_Device_Eject __AW(CM_Request_Device_Eject)
1443 #define CM_Request_Device_Eject_Ex __AW(CM_Request_Device_Eject_Ex)
1445 /* FIXME: Obsolete CM_Request_Eject_PC */
1446 /* FIXME: Obsolete CM_Request_Eject_PC_Ex */
1447 /* FIXME: Obsolete CM_Run_Detection */
1448 /* FIXME: Obsolete CM_Run_Detection_Ex */
1449 /* FIXME: Obsolete CM_Set_Class_Registry_Property */
1450 /* FIXME: Obsolete CM_Set_DevNode_Problem */
1451 /* FIXME: Obsolete CM_Set_DevNode_Problem_Ex */
1452 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property */
1453 /* FIXME: Obsolete CM_Set_DevNode_Registry_Property_Ex */
1454 /* FIXME: Obsolete CM_Set_HW_Prof */
1455 /* FIXME: Obsolete CM_Set_HW_Prof_Ex */
1456 /* FIXME: Obsolete CM_Set_HW_Prof_Flags */
1457 /* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
1458 /* FIXME: Obsolete CM_Setup_DevNode */
1459 /* FIXME: Obsolete CM_Setup_DevNode_Ex */
1460 /* FIXME: Obsolete CM_Test_Range_Available */
1461 /* FIXME: Obsolete CM_Uninstall_DevNode */
1462 /* FIXME: Obsolete CM_Uninstall_DevNode_Ex */
1463 /* FIXME: Obsolete CM_Unregister_Device_Interface */
1464 /* FIXME: Obsolete CM_Unregister_Device_Interface_Ex */
1466 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents
1471 CMP_WaitNoPendingInstallEvents(
1472 /*IN*/ DWORD dwTimeout);
1474 #include <poppack.h>
1480 #endif /* __CFGMGR32_H */