1 /** 2 * @file cfgmgr32.h 3 * Copyright 2012, 2013 MinGW.org project 4 * 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: 11 * 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 14 * Software. 15 * 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. 23 */ 24 /* Created by Casper S. Hornstrup <chorns@users.sourceforge.net> */ 25 #ifndef __CFGMGR32_H 26 #define __CFGMGR32_H 27 #pragma GCC system_header 28 #include <_mingw.h> 29 30 /* 31 * PnP configuration manager 32 */ 33 34 #ifdef __cplusplus 35 extern "C" { 36 #endif 37 38 #include "ntddk.h" 39 40 #if defined(_CFGMGR32_) 41 #define CMAPI DECLSPEC_EXPORT 42 #else 43 #define CMAPI DECLSPEC_IMPORT 44 #endif 45 46 #include "cfg.h" 47 48 #include <pshpack1.h> 49 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 114 115 116 typedef DWORD RETURN_TYPE; 117 typedef RETURN_TYPE CONFIGRET; 118 119 typedef HANDLE HMACHINE; 120 typedef HMACHINE *PHMACHINE; 121 122 typedef DWORD_PTR RES_DES; 123 typedef RES_DES *PRES_DES; 124 125 typedef DWORD_PTR RANGE_ELEMENT; 126 typedef RANGE_ELEMENT *PRANGE_ELEMENT; 127 128 typedef ULONG_PTR CONFLICT_LIST; 129 typedef CONFLICT_LIST *PCONFLICT_LIST; 130 131 typedef DWORD_PTR LOG_CONF; 132 typedef LOG_CONF *PLOG_CONF; 133 134 typedef ULONG PRIORITY; 135 typedef PRIORITY *PPRIORITY; 136 137 typedef DWORD_PTR RANGE_LIST; 138 typedef RANGE_LIST *PRANGE_LIST; 139 140 typedef DWORD DEVNODE, DEVINST; 141 typedef DEVNODE *PDEVNODE, *PDEVINST; 142 143 typedef CHAR *DEVNODEID_A, *DEVINSTID_A; 144 typedef WCHAR *DEVNODEID_W, *DEVINSTID_W; 145 146 typedef __AW(DEVNODEID_) DEVNODEID; 147 typedef __AW(DEVINSTID_) DEVINSTID; 148 149 typedef ULONG REGDISPOSITION; 150 151 typedef ULONG RESOURCEID; 152 typedef RESOURCEID *PRESOURCEID; 153 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 158 159 160 #define MAX_CONFIG_VALUE 9999 161 #define MAX_INSTANCE_VALUE 9999 162 163 #define MAX_DEVICE_ID_LEN 200 164 #define MAX_DEVNODE_ID_LEN MAX_DEVICE_ID_LEN 165 166 #define MAX_CLASS_NAME_LEN 32 167 #define MAX_GUID_STRING_LEN 39 168 #define MAX_PROFILE_LEN 80 169 170 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 186 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 196 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 200 201 202 typedef struct BusNumber_Des_s { 203 DWORD BUSD_Count; 204 DWORD BUSD_Type; 205 DWORD BUSD_Flags; 206 ULONG BUSD_Alloc_Base; 207 ULONG BUSD_Alloc_End; 208 } BUSNUMBER_DES, *PBUSNUMBER_DES; 209 210 typedef struct BusNumber_Range_s { 211 ULONG BUSR_Min; 212 ULONG BUSR_Max; 213 ULONG BUSR_nBusNumbers; 214 ULONG BUSR_Flags; 215 } BUSNUMBER_RANGE, *PBUSNUMBER_RANGE; 216 217 #define BusNumberType_Range sizeof(BUSNUMBER_RANGE) 218 219 typedef struct BusNumber_Resource_s { 220 BUSNUMBER_DES BusNumber_Header; 221 BUSNUMBER_RANGE BusNumber_Data[ANYSIZE_ARRAY]; 222 } BUSNUMBER_RESOURCE, *PBUSNUMBER_RESOURCE; 223 224 typedef struct CS_Des_s { 225 DWORD CSD_SignatureLength; 226 DWORD CSD_LegacyDataOffset; 227 DWORD CSD_LegacyDataSize; 228 DWORD CSD_Flags; 229 GUID CSD_ClassGuid; 230 BYTE CSD_Signature[ANYSIZE_ARRAY]; 231 } CS_DES, *PCS_DES; 232 233 typedef struct CS_Resource_s { 234 CS_DES CS_Header; 235 } CS_RESOURCE, *PCS_RESOURCE; 236 237 typedef struct DevPrivate_Des_s { 238 DWORD PD_Count; 239 DWORD PD_Type; 240 DWORD PD_Data1; 241 DWORD PD_Data2; 242 DWORD PD_Data3; 243 DWORD PD_Flags; 244 } DEVPRIVATE_DES, *PDEVPRIVATE_DES; 245 246 typedef struct DevPrivate_Range_s { 247 DWORD PR_Data1; 248 DWORD PR_Data2; 249 DWORD PR_Data3; 250 } DEVPRIVATE_RANGE, *PDEVPRIVATE_RANGE; 251 252 #define PType_Range sizeof(DEVPRIVATE_RANGE) 253 254 typedef struct DevPrivate_Resource_s { 255 DEVPRIVATE_DES PRV_Header; 256 DEVPRIVATE_RANGE PRV_Data[ANYSIZE_ARRAY]; 257 } DEVPRIVATE_RESOURCE, *PDEVPRIVATE_RESOURCE; 258 259 /* DMA_DES.DD_Flags constants and masks */ 260 #define mDD_Width 0x3 261 #define fDD_BYTE 0x0 262 #define fDD_WORD 0x1 263 #define fDD_DWORD 0x2 264 #define fDD_BYTE_AND_WORD 0x3 265 266 #define mDD_BusMaster 0x4 267 #define fDD_NoBusMaster 0x0 268 #define fDD_BusMaster 0x4 269 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 275 276 typedef struct DMA_Des_s { 277 DWORD DD_Count; 278 DWORD DD_Type; 279 DWORD DD_Flags; 280 ULONG DD_Alloc_Chan; 281 } DMA_DES, *PDMA_DES; 282 283 typedef struct DMA_Range_s { 284 ULONG DR_Min; 285 ULONG DR_Max; 286 ULONG DR_Flags; 287 } DMA_RANGE, *PDMA_RANGE; 288 289 #define DType_Range sizeof(DMA_RANGE) 290 291 typedef struct DMA_Resource_s { 292 DMA_DES DMA_Header; 293 DMA_RANGE DMA_Data[ANYSIZE_ARRAY]; 294 } DMA_RESOURCE, *PDMA_RESOURCE; 295 296 /* IO_DES.Type constants and masks */ 297 #define fIOD_PortType 0x1 298 #define fIOD_Memory 0x0 299 #define fIOD_IO 0x1 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 307 308 typedef struct IO_Des_s { 309 DWORD IOD_Count; 310 DWORD IOD_Type; 311 DWORDLONG IOD_Alloc_Base; 312 DWORDLONG IOD_Alloc_End; 313 DWORD IOD_DesFlags; 314 } IO_DES, *PIO_DES; 315 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 321 322 typedef struct IO_Range_s { 323 DWORDLONG IOR_Align; 324 DWORD IOR_nPorts; 325 DWORDLONG IOR_Min; 326 DWORDLONG IOR_Max; 327 DWORD IOR_RangeFlags; 328 DWORDLONG IOR_Alias; 329 } IO_RANGE, *PIO_RANGE; 330 331 #define IOType_Range sizeof(IO_RANGE) 332 333 typedef struct IO_Resource_s { 334 IO_DES IO_Header; 335 IO_RANGE IO_Data[ANYSIZE_ARRAY]; 336 } IO_RESOURCE, *PIO_RESOURCE; 337 338 /* IRQ_DES.IRQD_flags constants */ 339 #define mIRQD_Share 0x1 340 #define fIRQD_Exclusive 0x0 341 #define fIRQD_Share 0x1 342 343 #define fIRQD_Share_Bit 0 344 #define fIRQD_Level_Bit 1 345 346 #define mIRQD_Edge_Level 0x2 347 #define fIRQD_Level 0x0 348 #define fIRQD_Edge 0x2 349 350 typedef struct IRQ_Des_32_s { 351 DWORD IRQD_Count; 352 DWORD IRQD_Type; 353 DWORD IRQD_Flags; 354 ULONG IRQD_Alloc_Num; 355 ULONG32 IRQD_Affinity; 356 } IRQ_DES_32, *PIRQ_DES_32; 357 358 typedef struct IRQ_Des_64_s { 359 DWORD IRQD_Count; 360 DWORD IRQD_Type; 361 DWORD IRQD_Flags; 362 ULONG IRQD_Alloc_Num; 363 ULONG64 IRQD_Affinity; 364 } IRQ_DES_64, *PIRQ_DES_64; 365 366 #ifdef _WIN64 367 typedef IRQ_DES_64 IRQ_DES; 368 typedef PIRQ_DES_64 PIRQ_DES; 369 #else 370 typedef IRQ_DES_32 IRQ_DES; 371 typedef PIRQ_DES_32 PIRQ_DES; 372 #endif 373 374 typedef struct IRQ_Range_s { 375 ULONG IRQR_Min; 376 ULONG IRQR_Max; 377 ULONG IRQR_Flags; 378 } IRQ_RANGE, *PIRQ_RANGE; 379 380 #define IRQType_Range sizeof(IRQ_RANGE) 381 382 typedef struct IRQ_Resource_s { 383 IRQ_DES IRQ_Header; 384 IRQ_RANGE IRQ_Data[ANYSIZE_ARRAY]; 385 } IRQ_RESOURCE, *PIRQ_RESOURCE; 386 387 /* MEM_DES.MD_Flags constants */ 388 #define mMD_MemoryType 0x1 389 #define fMD_MemoryType mMD_MemoryType 390 #define fMD_ROM 0x0 391 #define fMD_RAM 0x1 392 393 #define mMD_32_24 0x2 394 #define fMD_32_24 mMD_32_24 395 #define fMD_24 0x0 396 #define fMD_32 0x2 397 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 403 404 #define mMD_Readable 0x8 405 #define fMD_Readable mMD_Readable 406 #define fMD_ReadAllowed 0x0 407 #define fMD_ReadDisallowed 0x8 408 409 #define mMD_CombinedWrite 0x10 410 #define fMD_CombinedWrite mMD_CombinedWrite 411 #define fMD_CombinedWriteDisallowed 0x0 412 #define fMD_CombinedWriteAllowed 0x10 413 414 #define mMD_Cacheable 0x20 415 #define fMD_NonCacheable 0x0 416 #define fMD_Cacheable 0x20 417 418 typedef struct Mem_Des_s { 419 DWORD MD_Count; 420 DWORD MD_Type; 421 DWORDLONG MD_Alloc_Base; 422 DWORDLONG MD_Alloc_End; 423 DWORD MD_Flags; 424 DWORD MD_Reserved; 425 } MEM_DES, *PMEM_DES; 426 427 typedef struct Mem_Range_s { 428 DWORDLONG MR_Align; 429 ULONG MR_nBytes; 430 DWORDLONG MR_Min; 431 DWORDLONG MR_Max; 432 DWORD MR_Flags; 433 DWORD MR_Reserved; 434 } MEM_RANGE, *PMEM_RANGE; 435 436 #define MType_Range sizeof(MEM_RANGE) 437 438 typedef struct Mem_Resource_s { 439 MEM_DES MEM_Header; 440 MEM_RANGE MEM_Data[ANYSIZE_ARRAY]; 441 } MEM_RESOURCE, *PMEM_RESOURCE; 442 443 /* MFCARD_DES.PMF_Flags constants */ 444 #define fPMF_AUDIO_ENABLE 0x8 445 #define mPMF_AUDIO_ENABLE fPMF_AUDIO_ENABLE 446 447 typedef struct MfCard_Des_s { 448 DWORD PMF_Count; 449 DWORD PMF_Type; 450 DWORD PMF_Flags; 451 BYTE PMF_ConfigOptions; 452 BYTE PMF_IoResourceIndex; 453 BYTE PMF_Reserved[2]; 454 DWORD PMF_ConfigRegisterBase; 455 } MFCARD_DES, *PMFCARD_DES; 456 457 typedef struct MfCard_Resource_s { 458 MFCARD_DES MfCard_Header; 459 } MFCARD_RESOURCE, *PMFCARD_RESOURCE; 460 461 /* PCCARD_DES.PCD_Flags constants */ 462 463 typedef struct PcCard_Des_s { 464 DWORD PCD_Count; 465 DWORD PCD_Type; 466 DWORD PCD_Flags; 467 BYTE PCD_ConfigIndex; 468 BYTE PCD_Reserved[3]; 469 DWORD PCD_MemoryCardBase1; 470 DWORD PCD_MemoryCardBase2; 471 } PCCARD_DES, *PPCCARD_DES; 472 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 489 490 #define fPCD_MEM_A 0x4 491 492 #define fPCD_ATTRIBUTES_PER_WINDOW 0x8000 493 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 498 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 503 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 509 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 515 516 #define PCD_MAX_MEMORY 2 517 #define PCD_MAX_IO 2 518 519 typedef struct PcCard_Resource_s { 520 PCCARD_DES PcCard_Header; 521 } PCCARD_RESOURCE, *PPCCARD_RESOURCE; 522 523 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 530 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 535 536 typedef struct _CONFLICT_DETAILS_A { 537 ULONG CD_ulSize; 538 ULONG CD_ulMask; 539 DEVINST CD_dnDevInst; 540 RES_DES CD_rdResDes; 541 ULONG CD_ulFlags; 542 CHAR CD_szDescription[MAX_PATH]; 543 } CONFLICT_DETAILS_A , *PCONFLICT_DETAILS_A; 544 545 typedef struct _CONFLICT_DETAILS_W { 546 ULONG CD_ulSize; 547 ULONG CD_ulMask; 548 DEVINST CD_dnDevInst; 549 RES_DES CD_rdResDes; 550 ULONG CD_ulFlags; 551 WCHAR CD_szDescription[MAX_PATH]; 552 } CONFLICT_DETAILS_W , *PCONFLICT_DETAILS_W; 553 554 typedef __AW(CONFLICT_DETAILS_) CONFLICT_DETAILS; 555 typedef __AW(PCONFLICT_DETAILS_) PCONFLICT_DETAILS; 556 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 561 562 CMAPI 563 CONFIGRET 564 WINAPI 565 CM_Add_Empty_Log_Conf( 566 /*OUT*/ PLOG_CONF plcLogConf, 567 /*IN*/ DEVINST dnDevInst, 568 /*IN*/ PRIORITY Priority, 569 /*IN*/ ULONG ulFlags); 570 571 CMAPI 572 CONFIGRET 573 WINAPI 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); 580 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 585 586 CMAPI 587 CONFIGRET 588 WINAPI 589 CM_Add_IDA( 590 /*IN*/ DEVINST dnDevInst, 591 /*IN*/ PSTR pszID, 592 /*IN*/ ULONG ulFlags, 593 /*IN*/ HMACHINE hMachine); 594 595 CMAPI 596 CONFIGRET 597 WINAPI 598 CM_Add_ID_ExA( 599 /*IN*/ DEVINST dnDevInst, 600 /*IN*/ PSTR pszID, 601 /*IN*/ ULONG ulFlags, 602 /*IN*/ HMACHINE hMachine); 603 604 CMAPI 605 CONFIGRET 606 WINAPI 607 CM_Add_ID_ExW( 608 /*IN*/ DEVINST dnDevInst, 609 /*IN*/ PWSTR pszID, 610 /*IN*/ ULONG ulFlags, 611 /*IN*/ HMACHINE hMachine); 612 613 CMAPI 614 CONFIGRET 615 WINAPI 616 CM_Add_IDW( 617 /*IN*/ DEVINST dnDevInst, 618 /*IN*/ PWSTR pszID, 619 /*IN*/ ULONG ulFlags, 620 /*IN*/ HMACHINE hMachine); 621 622 #define CM_Add_ID __AW(CM_Add_ID) 623 #define CM_Add_ID_Ex __AW(CM_Add_ID_Ex) 624 625 /* FIXME: Obsolete CM_Add_Range */ 626 627 CMAPI 628 CONFIGRET 629 WINAPI 630 CM_Add_Res_Des( 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); 637 638 CMAPI 639 CONFIGRET 640 WINAPI 641 CM_Add_Res_Des_Ex( 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); 649 650 CMAPI 651 CONFIGRET 652 WINAPI 653 CM_Connect_MachineA( 654 /*IN*/ PCSTR UNCServerName, 655 /*OUT*/ PHMACHINE phMachine); 656 657 CMAPI 658 CONFIGRET 659 WINAPI 660 CM_Connect_MachineW( 661 /*IN*/ PCWSTR UNCServerName, 662 /*OUT*/ PHMACHINE phMachine); 663 664 #define CM_Connect_Machine __AW(CM_Connect_Machine) 665 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 */ 678 679 CMAPI 680 CONFIGRET 681 WINAPI 682 CM_Disconnect_Machine( 683 /*IN*/ HMACHINE hMachine); 684 685 /* FIXME: Obsolete CM_Enable_DevNode */ 686 /* FIXME: Obsolete CM_Enable_DevNodeEx */ 687 688 CMAPI 689 CONFIGRET 690 WINAPI 691 CM_Enumerate_Classes( 692 /*IN*/ ULONG ulClassIndex, 693 /*OUT*/ LPGUID ClassGuid, 694 /*IN*/ ULONG ulFlags); 695 696 CMAPI 697 CONFIGRET 698 WINAPI 699 CM_Enumerate_Classes_Ex( 700 /*IN*/ ULONG ulClassIndex, 701 /*OUT*/ LPGUID ClassGuid, 702 /*IN*/ ULONG ulFlags, 703 /*IN*/ HMACHINE hMachine); 704 705 CMAPI 706 CONFIGRET 707 WINAPI 708 CM_Enumerate_EnumeratorsA( 709 /*IN*/ ULONG ulEnumIndex, 710 /*OUT*/ PCHAR Buffer, 711 /*IN OUT*/ PULONG pulLength, 712 /*IN*/ ULONG ulFlags); 713 714 CMAPI 715 CONFIGRET 716 WINAPI 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); 723 724 CMAPI 725 CONFIGRET 726 WINAPI 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); 733 734 CMAPI 735 CONFIGRET 736 WINAPI 737 CM_Enumerate_EnumeratorsW( 738 /*IN*/ ULONG ulEnumIndex, 739 /*OUT*/ PWCHAR Buffer, 740 /*IN OUT*/ PULONG pulLength, 741 /*IN*/ ULONG ulFlags); 742 743 #define CM_Enumerate_Enumerators __AW(CM_Enumerate_Enumerators) 744 #define CM_Enumerate_Enumerators_Ex __AW(CM_Enumerate_Enumerators_Ex) 745 746 /* FIXME: Obsolete CM_Find_Range */ 747 /* FIXME: Obsolete CM_First_Range */ 748 749 CMAPI 750 CONFIGRET 751 WINAPI 752 CM_Free_Log_Conf( 753 /*IN*/ LOG_CONF lcLogConfToBeFreed, 754 /*IN*/ ULONG ulFlags); 755 756 CMAPI 757 CONFIGRET 758 WINAPI 759 CM_Free_Log_Conf_Ex( 760 /*IN*/ LOG_CONF lcLogConfToBeFreed, 761 /*IN*/ ULONG ulFlags, 762 /*IN*/ HMACHINE hMachine); 763 764 CMAPI 765 CONFIGRET 766 WINAPI 767 CM_Free_Log_Conf_Handle( 768 /*IN*/ LOG_CONF lcLogConf); 769 770 /* FIXME: Obsolete CM_Free_Range_List */ 771 772 CMAPI 773 CONFIGRET 774 WINAPI 775 CM_Free_Res_Des( 776 /*OUT*/ PRES_DES prdResDes, 777 /*IN*/ RES_DES rdResDes, 778 /*IN*/ ULONG ulFlags); 779 780 CMAPI 781 CONFIGRET 782 WINAPI 783 CM_Free_Res_Des_Ex( 784 /*OUT*/ PRES_DES prdResDes, 785 /*IN*/ RES_DES rdResDes, 786 /*IN*/ ULONG ulFlags, 787 /*IN*/ HMACHINE hMachine); 788 789 CMAPI 790 CONFIGRET 791 WINAPI 792 CM_Free_Res_Des_Handle( 793 /*IN*/ RES_DES rdResDes); 794 795 CMAPI 796 CONFIGRET 797 WINAPI 798 CM_Free_Resource_Conflict_Handle( 799 /*IN*/ CONFLICT_LIST clConflictList); 800 801 CMAPI 802 CONFIGRET 803 WINAPI 804 CM_Get_Child( 805 /*OUT*/ PDEVINST pdnDevInst, 806 /*IN*/ DEVINST dnDevInst, 807 /*IN*/ ULONG ulFlags); 808 809 CMAPI 810 CONFIGRET 811 WINAPI 812 CM_Get_Child_Ex( 813 /*OUT*/ PDEVINST pdnDevInst, 814 /*IN*/ DEVINST dnDevInst, 815 /*IN*/ ULONG ulFlags, 816 /*IN*/ HMACHINE hMachine); 817 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 */ 823 824 CMAPI 825 CONFIGRET 826 WINAPI 827 CM_Get_Depth( 828 /*OUT*/ PULONG pulDepth, 829 /*IN*/ DEVINST dnDevInst, 830 /*IN*/ ULONG ulFlags); 831 832 CMAPI 833 CONFIGRET 834 WINAPI 835 CM_Get_Depth_Ex( 836 /*OUT*/ PULONG pulDepth, 837 /*IN*/ DEVINST dnDevInst, 838 /*IN*/ ULONG ulFlags, 839 /*IN*/ HMACHINE hMachine); 840 841 CMAPI 842 CONFIGRET 843 WINAPI 844 CM_Get_Device_IDA( 845 /*IN*/ DEVINST dnDevInst, 846 /*OUT*/ PCHAR Buffer, 847 /*IN*/ ULONG BufferLen, 848 /*IN*/ ULONG ulFlags); 849 850 CMAPI 851 CONFIGRET 852 WINAPI 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); 859 860 CMAPI 861 CONFIGRET 862 WINAPI 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); 869 870 CMAPI 871 CONFIGRET 872 WINAPI 873 CM_Get_Device_IDW( 874 /*IN*/ DEVINST dnDevInst, 875 /*OUT*/ PWCHAR Buffer, 876 /*IN*/ ULONG BufferLen, 877 /*IN*/ ULONG ulFlags); 878 879 #define CM_Get_Device_ID __AW(CM_Get_Device_ID) 880 #define CM_Get_Device_ID_Ex __AW(CM_Get_Device_ID_Ex) 881 882 CMAPI 883 CONFIGRET 884 WINAPI 885 CM_Get_Device_ID_ListA( 886 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/ 887 /*OUT*/ PCHAR Buffer, 888 /*IN*/ ULONG BufferLen, 889 /*IN*/ ULONG ulFlags); 890 891 CMAPI 892 CONFIGRET 893 WINAPI 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); 900 901 CMAPI 902 CONFIGRET 903 WINAPI 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); 910 911 CMAPI 912 CONFIGRET 913 WINAPI 914 CM_Get_Device_ID_ListW( 915 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/ 916 /*OUT*/ PWCHAR Buffer, 917 /*IN*/ ULONG BufferLen, 918 /*IN*/ ULONG ulFlags); 919 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) 922 923 CMAPI 924 CONFIGRET 925 WINAPI 926 CM_Get_Device_ID_List_SizeA( 927 /*OUT*/ PULONG pulLen, 928 /*IN*/ PCSTR pszFilter, /*OPTIONAL*/ 929 /*IN*/ ULONG ulFlags); 930 931 CMAPI 932 CONFIGRET 933 WINAPI 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); 939 940 CMAPI 941 CONFIGRET 942 WINAPI 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); 948 949 CMAPI 950 CONFIGRET 951 WINAPI 952 CM_Get_Device_ID_List_SizeW( 953 /*OUT*/ PULONG pulLen, 954 /*IN*/ PCWSTR pszFilter, /*OPTIONAL*/ 955 /*IN*/ ULONG ulFlags); 956 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) 959 960 CMAPI 961 CONFIGRET 962 WINAPI 963 CM_Get_Device_ID_Size( 964 /*OUT*/ PULONG pulLen, 965 /*IN*/ DEVINST dnDevInst, 966 /*IN*/ ULONG ulFlags); 967 968 CMAPI 969 CONFIGRET 970 WINAPI 971 CM_Get_Device_ID_Size_Ex( 972 /*OUT*/ PULONG pulLen, 973 /*IN*/ DEVINST dnDevInst, 974 /*IN*/ ULONG ulFlags, 975 /*IN*/ HMACHINE hMachine); 976 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 */ 986 987 CMAPI 988 CONFIGRET 989 WINAPI 990 CM_Get_DevNode_Status( 991 /*OUT*/ PULONG pulStatus, 992 /*OUT*/ PULONG pulProblemNumber, 993 /*IN*/ DEVINST dnDevInst, 994 /*IN*/ ULONG ulFlags); 995 996 CMAPI 997 CONFIGRET 998 WINAPI 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); 1005 1006 #define CM_Get_DevInst_Status CM_Get_DevNode_Status 1007 #define CM_Get_DevInst_Status_Ex CM_Get_DevNode_Status_Ex 1008 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. */ 1018 1019 CMAPI 1020 CONFIGRET 1021 WINAPI 1022 CM_Get_First_Log_Conf( 1023 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/ 1024 /*IN*/ DEVINST dnDevInst, 1025 /*IN*/ ULONG ulFlags); 1026 1027 CMAPI 1028 CONFIGRET 1029 WINAPI 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); 1035 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 */ 1042 1043 CMAPI 1044 CONFIGRET 1045 WINAPI 1046 CM_Get_Log_Conf_Priority( 1047 /*IN*/ LOG_CONF lcLogConf, 1048 /*OUT*/ PPRIORITY pPriority, 1049 /*IN*/ ULONG ulFlags); 1050 1051 CMAPI 1052 CONFIGRET 1053 WINAPI 1054 CM_Get_Log_Conf_Priority_Ex( 1055 /*IN*/ LOG_CONF lcLogConf, 1056 /*OUT*/ PPRIORITY pPriority, 1057 /*IN*/ ULONG ulFlags, 1058 /*IN*/ HMACHINE hMachine); 1059 1060 CMAPI 1061 CONFIGRET 1062 WINAPI 1063 CM_Get_Next_Log_Conf( 1064 /*OUT*/ PLOG_CONF plcLogConf, /*OPTIONAL*/ 1065 /*IN*/ LOG_CONF lcLogConf, 1066 /*IN*/ ULONG ulFlags); 1067 1068 CMAPI 1069 CONFIGRET 1070 WINAPI 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); 1076 1077 CMAPI 1078 CONFIGRET 1079 WINAPI 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); 1086 1087 CMAPI 1088 CONFIGRET 1089 WINAPI 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); 1097 1098 CMAPI 1099 CONFIGRET 1100 WINAPI 1101 CM_Get_Parent( 1102 /*OUT*/ PDEVINST pdnDevInst, 1103 /*IN*/ DEVINST dnDevInst, 1104 /*IN*/ ULONG ulFlags); 1105 1106 CMAPI 1107 CONFIGRET 1108 WINAPI 1109 CM_Get_Parent_Ex( 1110 /*OUT*/ PDEVINST pdnDevInst, 1111 /*IN*/ DEVINST dnDevInst, 1112 /*IN*/ ULONG ulFlags, 1113 /*IN*/ HMACHINE hMachine); 1114 1115 CMAPI 1116 CONFIGRET 1117 WINAPI 1118 CM_Get_Res_Des_Data( 1119 /*IN*/ RES_DES rdResDes, 1120 /*OUT*/ PVOID Buffer, 1121 /*IN*/ ULONG BufferLen, 1122 /*IN*/ ULONG ulFlags); 1123 1124 CMAPI 1125 CONFIGRET 1126 WINAPI 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); 1133 1134 CMAPI 1135 CONFIGRET 1136 WINAPI 1137 CM_Get_Res_Des_Data_Size( 1138 /*OUT*/ PULONG pulSize, 1139 /*IN*/ RES_DES rdResDes, 1140 /*IN*/ ULONG ulFlags); 1141 1142 CMAPI 1143 CONFIGRET 1144 WINAPI 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); 1150 1151 CMAPI 1152 CONFIGRET 1153 WINAPI 1154 CM_Get_Resource_Conflict_Count( 1155 /*IN*/ CONFLICT_LIST clConflictList, 1156 /*OUT*/ PULONG pulCount); 1157 1158 CMAPI 1159 CONFIGRET 1160 WINAPI 1161 CM_Get_Resource_Conflict_DetailsA( 1162 /*IN*/ CONFLICT_LIST clConflictList, 1163 /*IN*/ ULONG ulIndex, 1164 /*IN OUT*/ PCONFLICT_DETAILS_A pConflictDetails); 1165 1166 CMAPI 1167 CONFIGRET 1168 WINAPI 1169 CM_Get_Resource_Conflict_DetailsW( 1170 /*IN*/ CONFLICT_LIST clConflictList, 1171 /*IN*/ ULONG ulIndex, 1172 /*IN OUT*/ PCONFLICT_DETAILS_W pConflictDetails); 1173 1174 #define CM_Get_Resource_Conflict_Details __AW(CM_Get_Resource_Conflict_Details) 1175 1176 CMAPI 1177 CONFIGRET 1178 WINAPI 1179 CM_Get_Sibling( 1180 /*OUT*/ PDEVINST pdnDevInst, 1181 /*IN*/ DEVINST DevInst, 1182 /*IN*/ ULONG ulFlags); 1183 1184 CMAPI 1185 CONFIGRET 1186 WINAPI 1187 CM_Get_Sibling_Ex( 1188 /*OUT*/ PDEVINST pdnDevInst, 1189 /*IN*/ DEVINST DevInst, 1190 /*IN*/ ULONG ulFlags, 1191 /*IN*/ HMACHINE hMachine); 1192 1193 CMAPI 1194 WORD 1195 WINAPI 1196 CM_Get_Version( 1197 VOID); 1198 1199 CMAPI 1200 WORD 1201 WINAPI 1202 CM_Get_Version_Ex( 1203 /*IN*/ HMACHINE hMachine); 1204 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 */ 1209 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 1216 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 1222 1223 CMAPI 1224 CONFIGRET 1225 WINAPI 1226 CM_Locate_DevNodeA( 1227 /*OUT*/ PDEVINST pdnDevInst, 1228 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/ 1229 /*IN*/ ULONG ulFlags); 1230 1231 CMAPI 1232 CONFIGRET 1233 WINAPI 1234 CM_Locate_DevNode_ExA( 1235 /*OUT*/ PDEVINST pdnDevInst, 1236 /*IN*/ DEVINSTID_A pDeviceID, /*OPTIONAL*/ 1237 /*IN*/ ULONG ulFlags, 1238 /*IN*/ HMACHINE hMachine); 1239 1240 CMAPI 1241 CONFIGRET 1242 WINAPI 1243 CM_Locate_DevNode_ExW( 1244 /*OUT*/ PDEVINST pdnDevInst, 1245 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/ 1246 /*IN*/ ULONG ulFlags, 1247 /*IN*/ HMACHINE hMachine); 1248 1249 CMAPI 1250 CONFIGRET 1251 WINAPI 1252 CM_Locate_DevNodeW( 1253 /*OUT*/ PDEVINST pdnDevInst, 1254 /*IN*/ DEVINSTID_W pDeviceID, /*OPTIONAL*/ 1255 /*IN*/ ULONG ulFlags); 1256 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 1261 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) 1266 1267 /* FIXME: Obsolete CM_Merge_Range_List */ 1268 1269 CMAPI 1270 CONFIGRET 1271 WINAPI 1272 CM_Modify_Res_Des( 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); 1279 1280 CMAPI 1281 CONFIGRET 1282 WINAPI 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); 1291 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 */ 1299 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 1305 1306 CMAPI 1307 CONFIGRET 1308 WINAPI 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); 1315 1316 CMAPI 1317 CONFIGRET 1318 WINAPI 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); 1325 1326 CMAPI 1327 CONFIGRET 1328 WINAPI 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); 1336 1337 CMAPI 1338 CONFIGRET 1339 WINAPI 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); 1347 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 */ 1355 1356 CMAPI 1357 CONFIGRET 1358 WINAPI 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); 1367 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 1374 1375 CMAPI 1376 CONFIGRET 1377 WINAPI 1378 CM_Reenumerate_DevNode( 1379 /*IN*/ DEVINST dnDevInst, 1380 /*IN*/ ULONG ulFlags); 1381 1382 CMAPI 1383 CONFIGRET 1384 WINAPI 1385 CM_Reenumerate_DevNode_Ex( 1386 /*IN*/ DEVINST dnDevInst, 1387 /*IN*/ ULONG ulFlags, 1388 /*IN*/ HMACHINE hMachine); 1389 1390 #define CM_Reenumerate_DevInst CM_Reenumerate_DevNode 1391 #define CM_Reenumerate_DevInst_Ex CM_Reenumerate_DevNode_Ex 1392 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 */ 1399 1400 CMAPI 1401 CONFIGRET 1402 WINAPI 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); 1409 1410 CMAPI 1411 CONFIGRET 1412 WINAPI 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); 1420 1421 CMAPI 1422 CONFIGRET 1423 WINAPI 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); 1431 1432 CMAPI 1433 CONFIGRET 1434 WINAPI 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); 1441 1442 #define CM_Request_Device_Eject __AW(CM_Request_Device_Eject) 1443 #define CM_Request_Device_Eject_Ex __AW(CM_Request_Device_Eject_Ex) 1444 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 */ 1465 1466 #define CM_WaitNoPendingInstallEvents CMP_WaitNoPendingInstallEvents 1467 1468 CMAPI 1469 DWORD 1470 WINAPI 1471 CMP_WaitNoPendingInstallEvents( 1472 /*IN*/ DWORD dwTimeout); 1473 1474 #include <poppack.h> 1475 1476 #ifdef __cplusplus 1477 } 1478 #endif 1479 1480 #endif /* __CFGMGR32_H */ 1481