1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758
|
// Copyright © 2015, skdltmxn
// Licensed under the MIT License <LICENSE.md>
//! user APIs for the Configuration Manager
pub type PCVOID = *const ::VOID;
pub const MAX_DEVICE_ID_LEN: usize = 200;
pub const MAX_DEVNODE_ID_LEN: usize = MAX_DEVICE_ID_LEN;
pub const MAX_GUID_STRING_LEN: usize = 39;
pub const MAX_CLASS_NAME_LEN: usize = 32;
pub const MAX_PROFILE_LEN: usize = 80;
pub const MAX_CONFIG_VALUE: ::DWORD = 9999;
pub const MAX_INSTANCE_VALUE: ::DWORD = 9999;
pub const MAX_MEM_REGISTERS: ::DWORD = 9;
pub const MAX_IO_PORTS: ::DWORD = 20;
pub const MAX_IRQS: ::DWORD = 7;
pub const MAX_DMA_CHANNELS: ::DWORD = 7;
pub const DWORD_MAX: ::DWORD = 0xffffffff;
pub const DWORDLONG_MAX: ::DWORDLONG = 0xffffffffffffffff;
pub const CONFIGMG_VERSION: ::DWORD = 0x0400;
pub type RETURN_TYPE = ::DWORD;
pub type CONFIGRET = RETURN_TYPE;
pub type DEVNODE = ::DWORD;
pub type DEVINST = ::DWORD;
pub type PDEVNODE = *mut DEVNODE;
pub type PDEVINST = *mut DEVNODE;
pub type DEVNODEID_A = *mut ::CHAR;
pub type DEVINSTID_A = *mut ::CHAR;
pub type DEVNODEID_W = *mut ::WCHAR;
pub type DEVINSTID_W = *mut ::WCHAR;
pub type LOG_CONF = ::DWORD_PTR;
pub type PLOG_CONF = *mut LOG_CONF;
pub type RES_DES = ::DWORD_PTR;
pub type PRES_DES = *mut RES_DES;
pub type RESOURCEID = ::ULONG;
pub type PRESOURCEID = *mut RESOURCEID;
pub type PRIORITY = ::ULONG;
pub type PPRIORITY = *mut PRIORITY;
pub type RANGE_LIST = ::DWORD_PTR;
pub type PRANGE_LIST = *mut RANGE_LIST;
pub type RANGE_ELEMENT = ::DWORD_PTR;
pub type PRANGE_ELEMENT = *mut RANGE_ELEMENT;
pub type HMACHINE = ::HANDLE;
pub type PHMACHINE = *mut HMACHINE;
pub type CONFLICT_LIST = ::ULONG_PTR;
pub type PCONFLICT_LIST = *mut CONFLICT_LIST;
STRUCT!{nodebug struct CONFLICT_DETAILS_A {
CD_ulSize: ::ULONG,
CD_ulMask: ::ULONG,
CD_dnDevInst: DEVINST,
CD_rdResDes: RES_DES,
CD_ulFlags: ::ULONG,
CD_szDescription: [::CHAR; ::MAX_PATH],
}}
pub type PCONFLICT_DETAILS_A = *mut CONFLICT_DETAILS_A;
STRUCT!{nodebug struct CONFLICT_DETAILS_W {
CD_ulSize: ::ULONG,
CD_ulMask: ::ULONG,
CD_dnDevInst: DEVINST,
CD_rdResDes: RES_DES,
CD_ulFlags: ::ULONG,
CD_szDescription: [::WCHAR; ::MAX_PATH],
}}
pub type PCONFLICT_DETAILS_W = *mut CONFLICT_DETAILS_W;
pub const CM_CDMASK_DEVINST: ::ULONG = 0x00000001;
pub const CM_CDMASK_RESDES: ::ULONG = 0x00000002;
pub const CM_CDMASK_FLAGS: ::ULONG = 0x00000004;
pub const CM_CDMASK_DESCRIPTION: ::ULONG = 0x00000008;
pub const CM_CDMASK_VALID: ::ULONG = 0x0000000F;
pub const CM_CDFLAGS_DRIVER: ::ULONG = 0x00000001;
pub const CM_CDFLAGS_ROOT_OWNED: ::ULONG = 0x00000002;
pub const CM_CDFLAGS_RESERVED: ::ULONG = 0x00000004;
pub type REGDISPOSITION = ::ULONG;
pub const mMD_MemoryType: ::DWORD = 0x1;
pub const fMD_MemoryType: ::DWORD = mMD_MemoryType;
pub const fMD_ROM: ::DWORD = 0x0;
pub const fMD_RAM: ::DWORD = 0x1;
pub const mMD_32_24: ::DWORD = 0x2;
pub const fMD_32_24: ::DWORD = mMD_32_24;
pub const fMD_24: ::DWORD = 0x0;
pub const fMD_32: ::DWORD = 0x2;
pub const mMD_Prefetchable: ::DWORD = 0x4;
pub const fMD_Prefetchable: ::DWORD = mMD_Prefetchable;
pub const fMD_Pref: ::DWORD = mMD_Prefetchable;
pub const fMD_PrefetchDisallowed: ::DWORD = 0x0;
pub const fMD_PrefetchAllowed: ::DWORD = 0x4;
pub const mMD_Readable: ::DWORD = 0x8;
pub const fMD_Readable: ::DWORD = mMD_Readable;
pub const fMD_ReadAllowed: ::DWORD = 0x0;
pub const fMD_ReadDisallowed: ::DWORD = 0x8;
pub const mMD_CombinedWrite: ::DWORD = 0x10;
pub const fMD_CombinedWrite: ::DWORD = mMD_CombinedWrite;
pub const fMD_CombinedWriteDisallowed: ::DWORD = 0x0;
pub const fMD_CombinedWriteAllowed: ::DWORD = 0x10;
pub const mMD_Cacheable: ::DWORD = 0x20;
pub const fMD_NonCacheable: ::DWORD = 0x0;
pub const fMD_Cacheable: ::DWORD = 0x20;
pub const fMD_WINDOW_DECODE: ::DWORD = 0x40;
pub const fMD_MEMORY_BAR: ::DWORD = 0x80;
STRUCT!{struct MEM_RANGE {
MR_Align: ::DWORDLONG,
MR_nBytes: ::ULONG,
MR_Min: ::DWORDLONG,
MR_Max: ::DWORDLONG,
MR_Flags: ::DWORD,
MR_Reserved: ::DWORD,
}}
pub type PMEM_RANGE = *mut MEM_RANGE;
STRUCT!{struct MEM_DES {
MD_Count: ::DWORD,
MD_Type: ::DWORD,
MD_Alloc_Base: ::DWORDLONG,
MD_Alloc_End: ::DWORDLONG,
MD_Flags: ::DWORD,
MD_Reserved: ::DWORD,
}}
pub type PMEM_DES = *mut MEM_DES;
STRUCT!{struct MEM_RESOURCE {
MEM_Header: MEM_DES,
MEM_Data: [MEM_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PMEM_RESOURCE = *mut MEM_RESOURCE;
STRUCT!{struct MEM_LARGE_RANGE {
MLR_Align: ::DWORDLONG,
MLR_nBytes: ::ULONGLONG,
MLR_Min: ::DWORDLONG,
MLR_Max: ::DWORDLONG,
MLR_Flags: ::DWORD,
MLR_Reserved: ::DWORD,
}}
pub type PMEM_LARGE_RANGE = *mut MEM_LARGE_RANGE;
STRUCT!{struct MEM_LARGE_DES {
MLD_Count: ::DWORD,
MLD_Type: ::DWORD,
MLD_Alloc_Base: ::DWORDLONG,
MLD_Alloc_End: ::DWORDLONG,
MLD_Flags: ::DWORD,
MLD_Reserved: ::DWORD,
}}
pub type PMEM_LARGE_DES = *mut MEM_LARGE_DES;
STRUCT!{struct MEM_LARGE_RESOURCE {
MEM_LARGE_Header: MEM_LARGE_DES,
MEM_LARGE_Data: [MEM_LARGE_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PMEM_LARGE_RESOURCE = *mut MEM_LARGE_RESOURCE;
pub const fIOD_PortType: ::DWORD = 0x1;
pub const fIOD_Memory: ::DWORD = 0x0;
pub const fIOD_IO: ::DWORD = 0x1;
pub const fIOD_DECODE: ::DWORD = 0x00fc;
pub const fIOD_10_BIT_DECODE: ::DWORD = 0x0004;
pub const fIOD_12_BIT_DECODE: ::DWORD = 0x0008;
pub const fIOD_16_BIT_DECODE: ::DWORD = 0x0010;
pub const fIOD_POSITIVE_DECODE: ::DWORD = 0x0020;
pub const fIOD_PASSIVE_DECODE: ::DWORD = 0x0040;
pub const fIOD_WINDOW_DECODE: ::DWORD = 0x0080;
pub const fIOD_PORT_BAR: ::DWORD = 0x0100;
pub const IO_ALIAS_10_BIT_DECODE: ::DWORDLONG = 0x00000004;
pub const IO_ALIAS_12_BIT_DECODE: ::DWORDLONG = 0x00000010;
pub const IO_ALIAS_16_BIT_DECODE: ::DWORDLONG = 0x00000000;
pub const IO_ALIAS_POSITIVE_DECODE: ::DWORDLONG = 0x000000FF;
STRUCT!{struct IO_RANGE {
IOR_Align: ::DWORDLONG,
IOR_nPorts: ::DWORD,
IOR_Min: ::DWORDLONG,
IOR_Max: ::DWORDLONG,
IOR_RangeFlags: ::DWORD,
IOR_Alias: ::DWORDLONG,
}}
pub type PIO_RANGE = *mut IO_RANGE;
STRUCT!{struct IO_DES {
IOD_Count: ::DWORD,
IOD_Type: ::DWORD,
IOD_Alloc_Base: ::DWORDLONG,
IOD_Alloc_End: ::DWORDLONG,
IOD_DesFlags: ::DWORD,
}}
pub type PIO_DES = *mut IO_DES;
STRUCT!{struct IO_RESOURCE {
IO_Header: IO_DES,
IO_Data: [IO_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PIO_RESOURCE = *mut IO_RESOURCE;
pub const mDD_Width: ::ULONG = 0x3;
pub const fDD_BYTE: ::ULONG = 0x0;
pub const fDD_WORD: ::ULONG = 0x1;
pub const fDD_DWORD: ::ULONG = 0x2;
pub const fDD_BYTE_AND_WORD: ::ULONG = 0x3;
pub const mDD_BusMaster: ::ULONG = 0x4;
pub const fDD_NoBusMaster: ::ULONG = 0x0;
pub const fDD_BusMaster: ::ULONG = 0x4;
pub const mDD_Type: ::ULONG = 0x18;
pub const fDD_TypeStandard: ::ULONG = 0x00;
pub const fDD_TypeA: ::ULONG = 0x08;
pub const fDD_TypeB: ::ULONG = 0x10;
pub const fDD_TypeF: ::ULONG = 0x18;
STRUCT!{struct DMA_RANGE {
DR_Min: ::ULONG,
DR_Max: ::ULONG,
DR_Flags: ::ULONG,
}}
pub type PDMA_RANGE = *mut DMA_RANGE;
STRUCT!{struct DMA_DES {
DD_Count: ::DWORD,
DD_Type: ::DWORD,
DD_Flags: ::DWORD,
DD_Alloc_Chan: ::ULONG,
}}
pub type PDMA_DES = *mut DMA_DES;
STRUCT!{struct DMA_RESOURCE {
DMA_Header: DMA_DES,
DMA_Data: [DMA_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PDMA_RESOURCE = *mut DMA_RESOURCE;
pub const mIRQD_Share: ::ULONG = 0x1;
pub const fIRQD_Exclusive: ::ULONG = 0x0;
pub const fIRQD_Share: ::ULONG = 0x1;
pub const fIRQD_Share_Bit: ::ULONG = 0;
pub const fIRQD_Level_Bit: ::ULONG = 1;
pub const mIRQD_Edge_Level: ::ULONG = 0x2;
pub const fIRQD_Level: ::ULONG = 0x0;
pub const fIRQD_Edge: ::ULONG = 0x2;
STRUCT!{struct IRQ_RANGE {
IRQR_Min: ::ULONG,
IRQR_Max: ::ULONG,
IRQR_Flags: ::ULONG,
}}
pub type PIRQ_RANGE = *mut IRQ_RANGE;
STRUCT!{struct IRQ_DES_32 {
IRQD_Count: ::DWORD,
IRQD_Type: ::DWORD,
IRQD_Flags: ::DWORD,
IRQD_Alloc_Num: ::ULONG,
IRQD_Affinity: ::ULONG32,
}}
pub type PIRQ_DES_32 = *mut IRQ_DES_32;
STRUCT!{struct IRQ_DES_64 {
IRQD_Count: ::DWORD,
IRQD_Type: ::DWORD,
IRQD_Flags: ::DWORD,
IRQD_Alloc_Num: ::ULONG,
IRQD_Affinity: ::ULONG64,
}}
pub type PIRQ_DES_64 = *mut IRQ_DES_64;
STRUCT!{struct IRQ_RESOURCE_32 {
IRQ_Header: IRQ_DES_32,
IRQ_Data: [IRQ_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PIRQ_RESOURCE_32 = *mut IRQ_RESOURCE_32;
STRUCT!{struct IRQ_RESOURCE_64 {
IRQ_Header: IRQ_DES_64,
IRQ_Data: [IRQ_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PIRQ_RESOURCE_64 = *mut IRQ_RESOURCE_64;
STRUCT!{struct DEVPRIVATE_RANGE {
PR_Data1: ::DWORD,
PR_Data2: ::DWORD,
PR_Data3: ::DWORD,
}}
pub type PDEVPRIVATE_RANGE = *mut DEVPRIVATE_RANGE;
STRUCT!{struct DEVPRIVATE_DES {
PD_Count: ::DWORD,
PD_Type: ::DWORD,
PD_Data1: ::DWORD,
PD_Data2: ::DWORD,
PD_Data3: ::DWORD,
PD_Flags: ::DWORD,
}}
pub type PDEVPRIVATE_DES = *mut DEVPRIVATE_DES;
STRUCT!{struct DEVPRIVATE_RESOURCE {
PRV_Header: DEVPRIVATE_DES,
PRV_Data: [DEVPRIVATE_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PDEVPRIVATE_RESOURCE = *mut DEVPRIVATE_RESOURCE;
STRUCT!{struct CS_DES {
CSD_SignatureLength: ::DWORD,
CSD_LegacyDataOffset: ::DWORD,
CSD_LegacyDataSize: ::DWORD,
CSD_Flags: ::DWORD,
CSD_ClassGuid: ::GUID,
CSD_Signature: [::BYTE; ::ANYSIZE_ARRAY],
}}
pub type PCS_DES = *mut CS_DES;
STRUCT!{struct CS_RESOURCE {
CS_Header: CS_DES,
}}
pub type PCS_RESOURCE = *mut CS_RESOURCE;
pub const mPCD_IO_8_16: ::DWORD = 0x1;
pub const fPCD_IO_8: ::DWORD = 0x0;
pub const fPCD_IO_16: ::DWORD = 0x1;
pub const mPCD_MEM_8_16: ::DWORD = 0x2;
pub const fPCD_MEM_8: ::DWORD = 0x0;
pub const fPCD_MEM_16: ::DWORD = 0x2;
pub const mPCD_MEM_A_C: ::DWORD = 0xC;
pub const fPCD_MEM1_A: ::DWORD = 0x4;
pub const fPCD_MEM2_A: ::DWORD = 0x8;
pub const fPCD_IO_ZW_8: ::DWORD = 0x10;
pub const fPCD_IO_SRC_16: ::DWORD = 0x20;
pub const fPCD_IO_WS_16: ::DWORD = 0x40;
pub const mPCD_MEM_WS: ::DWORD = 0x300;
pub const fPCD_MEM_WS_ONE: ::DWORD = 0x100;
pub const fPCD_MEM_WS_TWO: ::DWORD = 0x200;
pub const fPCD_MEM_WS_THREE: ::DWORD = 0x300;
pub const fPCD_MEM_A: ::DWORD = 0x4;
pub const fPCD_ATTRIBUTES_PER_WINDOW: ::DWORD = 0x8000;
pub const fPCD_IO1_16: ::DWORD = 0x00010000;
pub const fPCD_IO1_ZW_8: ::DWORD = 0x00020000;
pub const fPCD_IO1_SRC_16: ::DWORD = 0x00040000;
pub const fPCD_IO1_WS_16: ::DWORD = 0x00080000;
pub const fPCD_IO2_16: ::DWORD = 0x00100000;
pub const fPCD_IO2_ZW_8: ::DWORD = 0x00200000;
pub const fPCD_IO2_SRC_16: ::DWORD = 0x00400000;
pub const fPCD_IO2_WS_16: ::DWORD = 0x00800000;
pub const mPCD_MEM1_WS: ::DWORD = 0x03000000;
pub const fPCD_MEM1_WS_TWO: ::DWORD = 0x02000000;
pub const fPCD_MEM1_WS_THREE: ::DWORD = 0x03000000;
pub const fPCD_MEM1_16: ::DWORD = 0x04000000;
pub const mPCD_MEM2_WS: ::DWORD = 0x30000000;
pub const fPCD_MEM2_WS_ONE: ::DWORD = 0x10000000;
pub const fPCD_MEM2_WS_TWO: ::DWORD = 0x20000000;
pub const fPCD_MEM2_WS_THREE: ::DWORD = 0x30000000;
pub const fPCD_MEM2_16: ::DWORD = 0x40000000;
pub const PCD_MAX_MEMORY: usize = 2;
pub const PCD_MAX_IO: usize = 2;
STRUCT!{struct PCCARD_DES {
PCD_Count: ::DWORD,
PCD_Type: ::DWORD,
PCD_Flags: ::DWORD,
PCD_ConfigIndex: ::BYTE,
PCD_Reserved: [::BYTE; 3],
PCD_MemoryCardBase1: ::DWORD,
PCD_MemoryCardBase2: ::DWORD,
PCD_MemoryCardBase: [::DWORD; PCD_MAX_MEMORY],
PCD_MemoryFlags: [::WORD; PCD_MAX_MEMORY],
PCD_IoFlags: [::BYTE; PCD_MAX_IO],
}}
pub type PPCCARD_DES = *mut PCCARD_DES;
STRUCT!{struct PCCARD_RESOURCE {
PcCard_Header: PCCARD_DES,
}}
pub type PPCCARD_RESOURCE = *mut PCCARD_RESOURCE;
pub const mPMF_AUDIO_ENABLE: ::DWORD = 0x8;
pub const fPMF_AUDIO_ENABLE: ::DWORD = 0x8;
STRUCT!{struct MFCARD_DES {
PMF_Count: ::DWORD,
PMF_Type: ::DWORD,
PMF_Flags: ::DWORD,
PMF_ConfigOptions: ::BYTE,
PMF_IoResourceIndex: ::BYTE,
PMF_Reserved: [::BYTE; 2],
PMF_ConfigRegisterBase: ::DWORD,
}}
pub type PMFCARD_DES = *mut MFCARD_DES;
STRUCT!{struct MFCARD_RESOURCE {
MfCard_Header: MFCARD_DES,
}}
pub type PMFCARD_RESOURCE = *mut MFCARD_RESOURCE;
STRUCT!{struct BUSNUMBER_RANGE {
BUSR_Min: ::ULONG,
BUSR_Max: ::ULONG,
BUSR_nBusNumbers: ::ULONG,
BUSR_Flags: ::ULONG,
}}
pub type PBUSNUMBER_RANGE = *mut BUSNUMBER_RANGE;
STRUCT!{struct BUSNUMBER_DES {
BUSD_Count: ::DWORD,
BUSD_Type: ::DWORD,
BUSD_Flags: ::DWORD,
BUSD_Alloc_Base: ::ULONG,
BUSD_Alloc_End: ::ULONG,
}}
pub type PBUSNUMBER_DES = *mut BUSNUMBER_DES;
STRUCT!{struct BUSNUMBER_RESOURCE {
BusNumber_Header: BUSNUMBER_DES,
BusNumber_Data: [BUSNUMBER_RANGE; ::ANYSIZE_ARRAY],
}}
pub type PBUSNUMBER_RESOURCE = *mut BUSNUMBER_RESOURCE;
STRUCT!{struct CONNECTION_DES {
COND_Type: ::DWORD,
COND_Flags: ::DWORD,
COND_Class: ::BYTE,
COND_ClassType: ::BYTE,
COND_Reserved1: ::BYTE,
COND_Reserved2: ::BYTE,
COND_Id: ::LARGE_INTEGER,
}}
pub type PCONNECTION_DES = *mut CONNECTION_DES;
STRUCT!{struct CONNECTION_RESOURCE {
Connection_Header: CONNECTION_DES,
}}
pub type PCONNECTION_RESOURCE = *mut CONNECTION_RESOURCE;
pub const CM_HWPI_NOT_DOCKABLE: ::DWORD = 0x00000000;
pub const CM_HWPI_UNDOCKED: ::DWORD = 0x00000001;
pub const CM_HWPI_DOCKED: ::DWORD = 0x00000002;
STRUCT!{nodebug struct HWPROFILEINFO_A {
HWPI_ulHWProfile: ::ULONG,
HWPI_szFriendlyName: [::CHAR; MAX_PROFILE_LEN],
HWPI_dwFlags: ::DWORD,
}}
pub type PHWPROFILEINFO_A = *mut HWPROFILEINFO_A;
STRUCT!{nodebug struct HWPROFILEINFO_W {
HWPI_ulHWProfile: ::ULONG,
HWPI_szFriendlyName: [::WCHAR; MAX_PROFILE_LEN],
HWPI_dwFlags: ::DWORD,
}}
pub type PHWPROFILEINFO_W = *mut HWPROFILEINFO_W;
pub const ResType_All: RESOURCEID = 0x00000000;
pub const ResType_None: RESOURCEID = 0x00000000;
pub const ResType_Mem: RESOURCEID = 0x00000001;
pub const ResType_IO: RESOURCEID = 0x00000002;
pub const ResType_DMA: RESOURCEID = 0x00000003;
pub const ResType_IRQ: RESOURCEID = 0x00000004;
pub const ResType_DoNotUse: RESOURCEID = 0x00000005;
pub const ResType_BusNumber: RESOURCEID = 0x00000006;
pub const ResType_MemLarge: RESOURCEID = 0x00000007;
pub const ResType_MAX: RESOURCEID = 0x00000007;
pub const ResType_Ignored_Bit: RESOURCEID = 0x00008000;
pub const ResType_ClassSpecific: RESOURCEID = 0x0000FFFF;
pub const ResType_Reserved: RESOURCEID = 0x00008000;
pub const ResType_DevicePrivate: RESOURCEID = 0x00008001;
pub const ResType_PcCardConfig: RESOURCEID = 0x00008002;
pub const ResType_MfCardConfig: RESOURCEID = 0x00008003;
pub const ResType_Connection: RESOURCEID = 0x00008004;
pub const CM_ADD_RANGE_ADDIFCONFLICT: ::ULONG = 0x00000000;
pub const CM_ADD_RANGE_DONOTADDIFCONFLICT: ::ULONG = 0x00000001;
pub const CM_ADD_RANGE_BITS: ::ULONG = 0x00000001;
pub const BASIC_LOG_CONF: ::ULONG = 0x00000000;
pub const FILTERED_LOG_CONF: ::ULONG = 0x00000001;
pub const ALLOC_LOG_CONF: ::ULONG = 0x00000002;
pub const BOOT_LOG_CONF: ::ULONG = 0x00000003;
pub const FORCED_LOG_CONF: ::ULONG = 0x00000004;
pub const OVERRIDE_LOG_CONF: ::ULONG = 0x00000005;
pub const NUM_LOG_CONF: ::ULONG = 0x00000006;
pub const LOG_CONF_BITS: ::ULONG = 0x00000007;
pub const PRIORITY_EQUAL_FIRST: ::ULONG = 0x00000008;
pub const PRIORITY_EQUAL_LAST: ::ULONG = 0x00000000;
pub const PRIORITY_BIT: ::ULONG = 0x00000008;
pub const RegDisposition_OpenAlways: REGDISPOSITION = 0x00000000;
pub const RegDisposition_OpenExisting: REGDISPOSITION = 0x00000001;
pub const RegDisposition_Bits: REGDISPOSITION = 0x00000001;
pub const CM_ADD_ID_HARDWARE: ::ULONG = 0x00000000;
pub const CM_ADD_ID_COMPATIBLE: ::ULONG = 0x00000001;
pub const CM_ADD_ID_BITS: ::ULONG = 0x00000001;
pub const CM_CREATE_DEVNODE_NORMAL: ::ULONG = 0x00000000;
pub const CM_CREATE_DEVNODE_NO_WAIT_INSTALL: ::ULONG = 0x00000001;
pub const CM_CREATE_DEVNODE_PHANTOM: ::ULONG = 0x00000002;
pub const CM_CREATE_DEVNODE_GENERATE_ID: ::ULONG = 0x00000004;
pub const CM_CREATE_DEVNODE_DO_NOT_INSTALL: ::ULONG = 0x00000008;
pub const CM_CREATE_DEVNODE_BITS: ::ULONG = 0x0000000F;
pub const CM_CREATE_DEVINST_NORMAL: ::ULONG = CM_CREATE_DEVNODE_NORMAL;
pub const CM_CREATE_DEVINST_NO_WAIT_INSTALL: ::ULONG = CM_CREATE_DEVNODE_NO_WAIT_INSTALL;
pub const CM_CREATE_DEVINST_PHANTOM: ::ULONG = CM_CREATE_DEVNODE_PHANTOM;
pub const CM_CREATE_DEVINST_GENERATE_ID: ::ULONG = CM_CREATE_DEVNODE_GENERATE_ID;
pub const CM_CREATE_DEVINST_DO_NOT_INSTALL: ::ULONG = CM_CREATE_DEVNODE_DO_NOT_INSTALL;
pub const CM_CREATE_DEVINST_BITS: ::ULONG = CM_CREATE_DEVNODE_BITS;
pub const CM_DELETE_CLASS_ONLY: ::ULONG = 0x00000000;
pub const CM_DELETE_CLASS_SUBKEYS: ::ULONG = 0x00000001;
pub const CM_DELETE_CLASS_INTERFACE: ::ULONG = 0x00000002;
pub const CM_DELETE_CLASS_BITS: ::ULONG = 0x00000003;
pub const CM_ENUMERATE_CLASSES_INSTALLER: ::ULONG = 0x00000000;
pub const CM_ENUMERATE_CLASSES_INTERFACE: ::ULONG = 0x00000001;
pub const CM_ENUMERATE_CLASSES_BITS: ::ULONG = 0x00000001;
pub const CM_DETECT_NEW_PROFILE: ::ULONG = 0x00000001;
pub const CM_DETECT_CRASHED: ::ULONG = 0x00000002;
pub const CM_DETECT_HWPROF_FIRST_BOOT: ::ULONG = 0x00000004;
pub const CM_DETECT_RUN: ::ULONG = 0x80000000;
pub const CM_DETECT_BITS: ::ULONG = 0x80000007;
pub const CM_DISABLE_POLITE: ::ULONG = 0x00000000;
pub const CM_DISABLE_ABSOLUTE: ::ULONG = 0x00000001;
pub const CM_DISABLE_HARDWARE: ::ULONG = 0x00000002;
pub const CM_DISABLE_UI_NOT_OK: ::ULONG = 0x00000004;
pub const CM_DISABLE_BITS: ::ULONG = 0x00000007;
pub const CM_GETIDLIST_FILTER_NONE: ::ULONG = 0x00000000;
pub const CM_GETIDLIST_FILTER_ENUMERATOR: ::ULONG = 0x00000001;
pub const CM_GETIDLIST_FILTER_SERVICE: ::ULONG = 0x00000002;
pub const CM_GETIDLIST_FILTER_EJECTRELATIONS: ::ULONG = 0x00000004;
pub const CM_GETIDLIST_FILTER_REMOVALRELATIONS: ::ULONG = 0x00000008;
pub const CM_GETIDLIST_FILTER_POWERRELATIONS: ::ULONG = 0x00000010;
pub const CM_GETIDLIST_FILTER_BUSRELATIONS: ::ULONG = 0x00000020;
pub const CM_GETIDLIST_DONOTGENERATE: ::ULONG = 0x10000040;
pub const CM_GETIDLIST_FILTER_TRANSPORTRELATIONS: ::ULONG = 0x00000080;
pub const CM_GETIDLIST_FILTER_PRESENT: ::ULONG = 0x00000100;
pub const CM_GETIDLIST_FILTER_CLASS: ::ULONG = 0x00000200;
pub const CM_GETIDLIST_FILTER_BITS: ::ULONG = 0x100003FF;
pub const CM_GET_DEVICE_INTERFACE_LIST_PRESENT: ::ULONG = 0x00000000;
pub const CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES: ::ULONG = 0x00000001;
pub const CM_GET_DEVICE_INTERFACE_LIST_BITS: ::ULONG = 0x00000001;
pub const CM_DRP_DEVICEDESC: ::ULONG = 0x00000001;
pub const CM_DRP_HARDWAREID: ::ULONG = 0x00000002;
pub const CM_DRP_COMPATIBLEIDS: ::ULONG = 0x00000003;
pub const CM_DRP_UNUSED0: ::ULONG = 0x00000004;
pub const CM_DRP_SERVICE: ::ULONG = 0x00000005;
pub const CM_DRP_UNUSED1: ::ULONG = 0x00000006;
pub const CM_DRP_UNUSED2: ::ULONG = 0x00000007;
pub const CM_DRP_CLASS: ::ULONG = 0x00000008;
pub const CM_DRP_CLASSGUID: ::ULONG = 0x00000009;
pub const CM_DRP_DRIVER: ::ULONG = 0x0000000A;
pub const CM_DRP_CONFIGFLAGS: ::ULONG = 0x0000000B;
pub const CM_DRP_MFG: ::ULONG = 0x0000000C;
pub const CM_DRP_FRIENDLYNAME: ::ULONG = 0x0000000D;
pub const CM_DRP_LOCATION_INFORMATION: ::ULONG = 0x0000000E;
pub const CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME: ::ULONG = 0x0000000F;
pub const CM_DRP_CAPABILITIES: ::ULONG = 0x00000010;
pub const CM_DRP_UI_NUMBER: ::ULONG = 0x00000011;
pub const CM_DRP_UPPERFILTERS: ::ULONG = 0x00000012;
pub const CM_CRP_UPPERFILTERS: ::ULONG = CM_DRP_UPPERFILTERS;
pub const CM_DRP_LOWERFILTERS: ::ULONG = 0x00000013;
pub const CM_CRP_LOWERFILTERS: ::ULONG = CM_DRP_LOWERFILTERS;
pub const CM_DRP_BUSTYPEGUID: ::ULONG = 0x00000014;
pub const CM_DRP_LEGACYBUSTYPE: ::ULONG = 0x00000015;
pub const CM_DRP_BUSNUMBER: ::ULONG = 0x00000016;
pub const CM_DRP_ENUMERATOR_NAME: ::ULONG = 0x00000017;
pub const CM_DRP_SECURITY: ::ULONG = 0x00000018;
pub const CM_CRP_SECURITY: ::ULONG = CM_DRP_SECURITY;
pub const CM_DRP_SECURITY_SDS: ::ULONG = 0x00000019;
pub const CM_CRP_SECURITY_SDS: ::ULONG = CM_DRP_SECURITY_SDS;
pub const CM_DRP_DEVTYPE: ::ULONG = 0x0000001A;
pub const CM_CRP_DEVTYPE: ::ULONG = CM_DRP_DEVTYPE;
pub const CM_DRP_EXCLUSIVE: ::ULONG = 0x0000001B;
pub const CM_CRP_EXCLUSIVE: ::ULONG = CM_DRP_EXCLUSIVE;
pub const CM_DRP_CHARACTERISTICS: ::ULONG = 0x0000001C;
pub const CM_CRP_CHARACTERISTICS: ::ULONG = CM_DRP_CHARACTERISTICS;
pub const CM_DRP_ADDRESS: ::ULONG = 0x0000001D;
pub const CM_DRP_UI_NUMBER_DESC_FORMAT: ::ULONG = 0x0000001E;
pub const CM_DRP_DEVICE_POWER_DATA: ::ULONG = 0x0000001F;
pub const CM_DRP_REMOVAL_POLICY: ::ULONG = 0x00000020;
pub const CM_DRP_REMOVAL_POLICY_HW_DEFAULT: ::ULONG = 0x00000021;
pub const CM_DRP_REMOVAL_POLICY_OVERRIDE: ::ULONG = 0x00000022;
pub const CM_DRP_INSTALL_STATE: ::ULONG = 0x00000023;
pub const CM_DRP_LOCATION_PATHS: ::ULONG = 0x00000024;
pub const CM_DRP_BASE_CONTAINERID: ::ULONG = 0x00000025;
pub const CM_DRP_MIN: ::ULONG = 0x00000001;
pub const CM_CRP_MIN: ::ULONG = CM_DRP_MIN;
pub const CM_DRP_MAX: ::ULONG = 0x00000025;
pub const CM_CRP_MAX: ::ULONG = CM_DRP_MAX;
pub const CM_DEVCAP_LOCKSUPPORTED: ::ULONG = 0x00000001;
pub const CM_DEVCAP_EJECTSUPPORTED: ::ULONG = 0x00000002;
pub const CM_DEVCAP_REMOVABLE: ::ULONG = 0x00000004;
pub const CM_DEVCAP_DOCKDEVICE: ::ULONG = 0x00000008;
pub const CM_DEVCAP_UNIQUEID: ::ULONG = 0x00000010;
pub const CM_DEVCAP_SILENTINSTALL: ::ULONG = 0x00000020;
pub const CM_DEVCAP_RAWDEVICEOK: ::ULONG = 0x00000040;
pub const CM_DEVCAP_SURPRISEREMOVALOK: ::ULONG = 0x00000080;
pub const CM_DEVCAP_HARDWAREDISABLED: ::ULONG = 0x00000100;
pub const CM_DEVCAP_NONDYNAMIC: ::ULONG = 0x00000200;
pub const CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL: ::ULONG = 1;
pub const CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL: ::ULONG = 2;
pub const CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL: ::ULONG = 3;
pub const CM_INSTALL_STATE_INSTALLED: ::ULONG = 0;
pub const CM_INSTALL_STATE_NEEDS_REINSTALL: ::ULONG = 1;
pub const CM_INSTALL_STATE_FAILED_INSTALL: ::ULONG = 2;
pub const CM_INSTALL_STATE_FINISH_INSTALL: ::ULONG = 3;
pub const CM_LOCATE_DEVNODE_NORMAL: ::ULONG = 0x00000000;
pub const CM_LOCATE_DEVNODE_PHANTOM: ::ULONG = 0x00000001;
pub const CM_LOCATE_DEVNODE_CANCELREMOVE: ::ULONG = 0x00000002;
pub const CM_LOCATE_DEVNODE_NOVALIDATION: ::ULONG = 0x00000004;
pub const CM_LOCATE_DEVNODE_BITS: ::ULONG = 0x00000007;
pub const CM_LOCATE_DEVINST_NORMAL: ::ULONG = CM_LOCATE_DEVNODE_NORMAL;
pub const CM_LOCATE_DEVINST_PHANTOM: ::ULONG = CM_LOCATE_DEVNODE_PHANTOM;
pub const CM_LOCATE_DEVINST_CANCELREMOVE: ::ULONG = CM_LOCATE_DEVNODE_CANCELREMOVE;
pub const CM_LOCATE_DEVINST_NOVALIDATION: ::ULONG = CM_LOCATE_DEVNODE_NOVALIDATION;
pub const CM_LOCATE_DEVINST_BITS: ::ULONG = CM_LOCATE_DEVNODE_BITS;
pub const CM_OPEN_CLASS_KEY_INSTALLER: ::ULONG = 0x00000000;
pub const CM_OPEN_CLASS_KEY_INTERFACE: ::ULONG = 0x00000001;
pub const CM_OPEN_CLASS_KEY_BITS: ::ULONG = 0x00000001;
pub const CM_REMOVE_UI_OK: ::ULONG = 0x00000000;
pub const CM_REMOVE_UI_NOT_OK: ::ULONG = 0x00000001;
pub const CM_REMOVE_NO_RESTART: ::ULONG = 0x00000002;
pub const CM_REMOVE_BITS: ::ULONG = 0x00000003;
pub const CM_QUERY_REMOVE_UI_OK: ::ULONG = CM_REMOVE_UI_OK;
pub const CM_QUERY_REMOVE_UI_NOT_OK: ::ULONG = CM_REMOVE_UI_NOT_OK;
pub const CM_QUERY_REMOVE_BITS: ::ULONG = CM_QUERY_REMOVE_UI_OK | CM_QUERY_REMOVE_UI_NOT_OK;
pub const CM_REENUMERATE_NORMAL: ::ULONG = 0x00000000;
pub const CM_REENUMERATE_SYNCHRONOUS: ::ULONG = 0x00000001;
pub const CM_REENUMERATE_RETRY_INSTALLATION: ::ULONG = 0x00000002;
pub const CM_REENUMERATE_ASYNCHRONOUS: ::ULONG = 0x00000004;
pub const CM_REENUMERATE_BITS: ::ULONG = 0x00000007;
pub const CM_REGISTER_DEVICE_DRIVER_STATIC: ::ULONG = 0x00000000;
pub const CM_REGISTER_DEVICE_DRIVER_DISABLEABLE: ::ULONG = 0x00000001;
pub const CM_REGISTER_DEVICE_DRIVER_REMOVABLE: ::ULONG = 0x00000002;
pub const CM_REGISTER_DEVICE_DRIVER_BITS: ::ULONG = 0x00000003;
pub const CM_REGISTRY_HARDWARE: ::ULONG = 0x00000000;
pub const CM_REGISTRY_SOFTWARE: ::ULONG = 0x00000001;
pub const CM_REGISTRY_USER: ::ULONG = 0x00000100;
pub const CM_REGISTRY_CONFIG: ::ULONG = 0x00000200;
pub const CM_REGISTRY_BITS: ::ULONG = 0x00000301;
pub const CM_SET_DEVNODE_PROBLEM_NORMAL: ::ULONG = 0x00000000;
pub const CM_SET_DEVNODE_PROBLEM_OVERRIDE: ::ULONG = 0x00000001;
pub const CM_SET_DEVNODE_PROBLEM_BITS: ::ULONG = 0x00000001;
pub const CM_SET_DEVINST_PROBLEM_NORMAL: ::ULONG = CM_SET_DEVNODE_PROBLEM_NORMAL;
pub const CM_SET_DEVINST_PROBLEM_OVERRIDE: ::ULONG = CM_SET_DEVNODE_PROBLEM_OVERRIDE;
pub const CM_SET_DEVINST_PROBLEM_BITS: ::ULONG = CM_SET_DEVNODE_PROBLEM_BITS;
pub const CM_SET_HW_PROF_FLAGS_UI_NOT_OK: ::ULONG = 0x00000001;
pub const CM_SET_HW_PROF_FLAGS_BITS: ::ULONG = 0x00000001;
pub const CM_SETUP_DEVNODE_READY: ::ULONG = 0x00000000;
pub const CM_SETUP_DEVINST_READY: ::ULONG = CM_SETUP_DEVNODE_READY;
pub const CM_SETUP_DOWNLOAD: ::ULONG = 0x00000001;
pub const CM_SETUP_WRITE_LOG_CONFS: ::ULONG = 0x00000002;
pub const CM_SETUP_PROP_CHANGE: ::ULONG = 0x00000003;
pub const CM_SETUP_DEVNODE_RESET: ::ULONG = 0x00000004;
pub const CM_SETUP_DEVINST_RESET: ::ULONG = CM_SETUP_DEVNODE_RESET;
pub const CM_SETUP_DEVNODE_CONFIG: ::ULONG = 0x00000005;
pub const CM_SETUP_DEVINST_CONFIG: ::ULONG = CM_SETUP_DEVNODE_CONFIG;
pub const CM_SETUP_DEVNODE_CONFIG_CLASS: ::ULONG = 0x00000006;
pub const CM_SETUP_DEVINST_CONFIG_CLASS: ::ULONG = CM_SETUP_DEVNODE_CONFIG_CLASS;
pub const CM_SETUP_DEVNODE_CONFIG_EXTENSIONS: ::ULONG = 0x00000007;
pub const CM_SETUP_DEVINST_CONFIG_EXTENSIONS: ::ULONG = CM_SETUP_DEVNODE_CONFIG_EXTENSIONS;
pub const CM_SETUP_BITS: ::ULONG = 0x00000007;
pub const CM_QUERY_ARBITRATOR_RAW: ::ULONG = 0x00000000;
pub const CM_QUERY_ARBITRATOR_TRANSLATED: ::ULONG = 0x00000001;
pub const CM_QUERY_ARBITRATOR_BITS: ::ULONG = 0x00000001;
pub const CM_CUSTOMDEVPROP_MERGE_MULTISZ: ::ULONG = 0x00000001;
pub const CM_CUSTOMDEVPROP_BITS: ::ULONG = 0x00000001;
pub const CM_NAME_ATTRIBUTE_NAME_RETRIEVED_FROM_DEVICE: ::ULONG = 0x1;
pub const CM_NAME_ATTRIBUTE_USER_ASSIGNED_NAME: ::ULONG = 0x2;
pub const CM_CLASS_PROPERTY_INSTALLER: ::ULONG = 0x00000000;
pub const CM_CLASS_PROPERTY_INTERFACE: ::ULONG = 0x00000001;
pub const CM_CLASS_PROPERTY_BITS: ::ULONG = 0x00000001;
DECLARE_HANDLE!(HCMNOTIFICATION, HCMNOTIFICATION__);
pub type PHCMNOTIFICATION = *mut HCMNOTIFICATION;
pub const CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES: ::ULONG = 0x00000001;
pub const CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES: ::ULONG = 0x00000002;
pub const CM_NOTIFY_FILTER_VALID_FLAGS: ::ULONG = CM_NOTIFY_FILTER_FLAG_ALL_INTERFACE_CLASSES
| CM_NOTIFY_FILTER_FLAG_ALL_DEVICE_INSTANCES;
ENUM!{enum CM_NOTIFY_FILTER_TYPE {
CM_NOTIFY_FILTER_TYPE_DEVICEINTERFACE = 0,
CM_NOTIFY_FILTER_TYPE_DEVICEHANDLE,
CM_NOTIFY_FILTER_TYPE_DEVICEINSTANCE,
CM_NOTIFY_FILTER_TYPE_MAX,
}}
pub type PCM_NOTIFY_FILTER_TYPE = *mut CM_NOTIFY_FILTER_TYPE;
STRUCT!{struct CM_NOTIFY_FILTER_DeviceInterface {
ClassGuid: ::GUID,
}}
STRUCT!{struct CM_NOTIFY_FILTER_DeviceHandle {
hTarget: ::HANDLE,
}}
STRUCT!{nodebug struct CM_NOTIFY_FILTER_DeviceInstance {
InstanceId: [::WCHAR; MAX_DEVICE_ID_LEN],
}}
STRUCT!{nodebug struct CM_NOTIFY_FILTER {
cbSize: ::DWORD,
Flags: ::DWORD,
FilterType: CM_NOTIFY_FILTER_TYPE,
Reserved: ::DWORD,
u: [::BYTE; 400],
}}
UNION!(CM_NOTIFY_FILTER, u, DeviceInterface, DeviceInterface_mut, CM_NOTIFY_FILTER_DeviceInterface);
UNION!(CM_NOTIFY_FILTER, u, DeviceHandle, DeviceHandle_mut, CM_NOTIFY_FILTER_DeviceHandle);
UNION!(CM_NOTIFY_FILTER, u, DeviceInstance, DeviceInstance_mut, CM_NOTIFY_FILTER_DeviceInstance);
pub type PCM_NOTIFY_FILTER = *mut CM_NOTIFY_FILTER;
ENUM!{enum CM_NOTIFY_ACTION {
CM_NOTIFY_ACTION_DEVICEINTERFACEARRIVAL = 0,
CM_NOTIFY_ACTION_DEVICEINTERFACEREMOVAL,
CM_NOTIFY_ACTION_DEVICEQUERYREMOVE,
CM_NOTIFY_ACTION_DEVICEQUERYREMOVEFAILED,
CM_NOTIFY_ACTION_DEVICEREMOVEPENDING,
CM_NOTIFY_ACTION_DEVICEREMOVECOMPLETE,
CM_NOTIFY_ACTION_DEVICECUSTOMEVENT,
CM_NOTIFY_ACTION_DEVICEINSTANCEENUMERATED,
CM_NOTIFY_ACTION_DEVICEINSTANCESTARTED,
CM_NOTIFY_ACTION_DEVICEINSTANCEREMOVED,
CM_NOTIFY_ACTION_MAX,
}}
pub type PCM_NOTIFY_ACTION = *mut CM_NOTIFY_ACTION;
STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceInterface {
ClassGuid: ::GUID,
SymbolicLink: [::WCHAR; ::ANYSIZE_ARRAY],
}}
STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceHandle {
EventGuid: ::GUID,
NameOffset: ::LONG,
DataSize: ::DWORD,
Data: [::BYTE; ::ANYSIZE_ARRAY],
}}
STRUCT!{struct CM_NOTIFY_EVENT_DATA_DeviceInstance {
InstanceId: [::WCHAR; ::ANYSIZE_ARRAY],
}}
STRUCT!{struct CM_NOTIFY_EVENT_DATA {
FilterType: CM_NOTIFY_FILTER_TYPE,
Reserved: ::DWORD,
u: [::BYTE; 25],
}}
UNION!(
CM_NOTIFY_EVENT_DATA, u, DeviceInterface, DeviceInterface_mut,
CM_NOTIFY_EVENT_DATA_DeviceInterface
);
UNION!(CM_NOTIFY_EVENT_DATA, u, DeviceHandle, DeviceHandle_mut, CM_NOTIFY_EVENT_DATA_DeviceHandle);
UNION!(
CM_NOTIFY_EVENT_DATA, u, DeviceInstance, DeviceInstance_mut, CM_NOTIFY_EVENT_DATA_DeviceInstance
);
pub type PCM_NOTIFY_EVENT_DATA = *mut CM_NOTIFY_EVENT_DATA;
pub type PCM_NOTIFY_CALLBACK = Option<unsafe extern "system" fn(
hNotify: HCMNOTIFICATION, Context: ::PVOID, Action: CM_NOTIFY_ACTION,
EventData: PCM_NOTIFY_EVENT_DATA, EventDataSize: ::DWORD,
) -> ::DWORD>;
pub const CR_SUCCESS: CONFIGRET = 0x00000000;
pub const CR_DEFAULT: CONFIGRET = 0x00000001;
pub const CR_OUT_OF_MEMORY: CONFIGRET = 0x00000002;
pub const CR_INVALID_POINTER: CONFIGRET = 0x00000003;
pub const CR_INVALID_FLAG: CONFIGRET = 0x00000004;
pub const CR_INVALID_DEVNODE: CONFIGRET = 0x00000005;
pub const CR_INVALID_DEVINST: CONFIGRET = CR_INVALID_DEVNODE;
pub const CR_INVALID_RES_DES: CONFIGRET = 0x00000006;
pub const CR_INVALID_LOG_CONF: CONFIGRET = 0x00000007;
pub const CR_INVALID_ARBITRATOR: CONFIGRET = 0x00000008;
pub const CR_INVALID_NODELIST: CONFIGRET = 0x00000009;
pub const CR_DEVNODE_HAS_REQS: CONFIGRET = 0x0000000A;
pub const CR_DEVINST_HAS_REQS: CONFIGRET = CR_DEVNODE_HAS_REQS;
pub const CR_INVALID_RESOURCEID: CONFIGRET = 0x0000000B;
pub const CR_DLVXD_NOT_FOUND: CONFIGRET = 0x0000000C;
pub const CR_NO_SUCH_DEVNODE: CONFIGRET = 0x0000000D;
pub const CR_NO_SUCH_DEVINST: CONFIGRET = CR_NO_SUCH_DEVNODE;
pub const CR_NO_MORE_LOG_CONF: CONFIGRET = 0x0000000E;
pub const CR_NO_MORE_RES_DES: CONFIGRET = 0x0000000F;
pub const CR_ALREADY_SUCH_DEVNODE: CONFIGRET = 0x00000010;
pub const CR_ALREADY_SUCH_DEVINST: CONFIGRET = CR_ALREADY_SUCH_DEVNODE;
pub const CR_INVALID_RANGE_LIST: CONFIGRET = 0x00000011;
pub const CR_INVALID_RANGE: CONFIGRET = 0x00000012;
pub const CR_FAILURE: CONFIGRET = 0x00000013;
pub const CR_NO_SUCH_LOGICAL_DEV: CONFIGRET = 0x00000014;
pub const CR_CREATE_BLOCKED: CONFIGRET = 0x00000015;
pub const CR_NOT_SYSTEM_VM: CONFIGRET = 0x00000016;
pub const CR_REMOVE_VETOED: CONFIGRET = 0x00000017;
pub const CR_APM_VETOED: CONFIGRET = 0x00000018;
pub const CR_INVALID_LOAD_TYPE: CONFIGRET = 0x00000019;
pub const CR_BUFFER_SMALL: CONFIGRET = 0x0000001A;
pub const CR_NO_ARBITRATOR: CONFIGRET = 0x0000001B;
pub const CR_NO_REGISTRY_HANDLE: CONFIGRET = 0x0000001C;
pub const CR_REGISTRY_ERROR: CONFIGRET = 0x0000001D;
pub const CR_INVALID_DEVICE_ID: CONFIGRET = 0x0000001E;
pub const CR_INVALID_DATA: CONFIGRET = 0x0000001F;
pub const CR_INVALID_API: CONFIGRET = 0x00000020;
pub const CR_DEVLOADER_NOT_READY: CONFIGRET = 0x00000021;
pub const CR_NEED_RESTART: CONFIGRET = 0x00000022;
pub const CR_NO_MORE_HW_PROFILES: CONFIGRET = 0x00000023;
pub const CR_DEVICE_NOT_THERE: CONFIGRET = 0x00000024;
pub const CR_NO_SUCH_VALUE: CONFIGRET = 0x00000025;
pub const CR_WRONG_TYPE: CONFIGRET = 0x00000026;
pub const CR_INVALID_PRIORITY: CONFIGRET = 0x00000027;
pub const CR_NOT_DISABLEABLE: CONFIGRET = 0x00000028;
pub const CR_FREE_RESOURCES: CONFIGRET = 0x00000029;
pub const CR_QUERY_VETOED: CONFIGRET = 0x0000002A;
pub const CR_CANT_SHARE_IRQ: CONFIGRET = 0x0000002B;
pub const CR_NO_DEPENDENT: CONFIGRET = 0x0000002C;
pub const CR_SAME_RESOURCES: CONFIGRET = 0x0000002D;
pub const CR_NO_SUCH_REGISTRY_KEY: CONFIGRET = 0x0000002E;
pub const CR_INVALID_MACHINENAME: CONFIGRET = 0x0000002F;
pub const CR_REMOTE_COMM_FAILURE: CONFIGRET = 0x00000030;
pub const CR_MACHINE_UNAVAILABLE: CONFIGRET = 0x00000031;
pub const CR_NO_CM_SERVICES: CONFIGRET = 0x00000032;
pub const CR_ACCESS_DENIED: CONFIGRET = 0x00000033;
pub const CR_CALL_NOT_IMPLEMENTED: CONFIGRET = 0x00000034;
pub const CR_INVALID_PROPERTY: CONFIGRET = 0x00000035;
pub const CR_DEVICE_INTERFACE_ACTIVE: CONFIGRET = 0x00000036;
pub const CR_NO_SUCH_DEVICE_INTERFACE: CONFIGRET = 0x00000037;
pub const CR_INVALID_REFERENCE_STRING: CONFIGRET = 0x00000038;
pub const CR_INVALID_CONFLICT_LIST: CONFIGRET = 0x00000039;
pub const CR_INVALID_INDEX: CONFIGRET = 0x0000003A;
pub const CR_INVALID_STRUCTURE_SIZE: CONFIGRET = 0x0000003B;
pub const NUM_CR_RESULTS: CONFIGRET = 0x0000003C;
|