Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  cfgmgr32.rs   Sprache: unbekannt

 
Spracherkennung für: .rs vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! user APIs for the Configuration Manager
use shared::basetsd::{DWORD_PTR, ULONG32, ULONG64, ULONG_PTR};
use shared::cfg::PPNP_VETO_TYPE;
use shared::devpropdef::{DEVPROPKEY, DEVPROPTYPE};
use shared::guiddef::{GUID, LPGUID};
use shared::minwindef::{BOOL, BYTE, DWORD, MAX_PATH, PBOOL, PBYTE, PHKEY, PULONG, ULONG, WORD};
use um::winnt::{
    ANYSIZE_ARRAY, CHAR, DWORDLONG, HANDLE, LARGE_INTEGER, LONG, LPCSTR, LPCWSTR, LPSTR, LPWSTR,
    PCHAR, PCSTR, PCWSTR, PDWORDLONG, PSTR, PVOID, PWCHAR, PWSTR, ULONGLONG, VOID, WCHAR
};
use um::winreg::REGSAM;
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!{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!{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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] struct MEM_RESOURCE {
    MEM_Header: MEM_DES,
    MEM_Data: [MEM_RANGE; ANYSIZE_ARRAY],
}}
pub type PMEM_RESOURCE = *mut MEM_RESOURCE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] struct DMA_RANGE {
    DR_Min: ULONG,
    DR_Max: ULONG,
    DR_Flags: ULONG,
}}
pub type PDMA_RANGE = *mut DMA_RANGE;
STRUCT!{#[repr(packed)] struct DMA_DES {
    DD_Count: DWORD,
    DD_Type: DWORD,
    DD_Flags: DWORD,
    DD_Alloc_Chan: ULONG,
}}
pub type PDMA_DES = *mut DMA_DES;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] struct IRQ_RANGE {
    IRQR_Min: ULONG,
    IRQR_Max: ULONG,
    IRQR_Flags: ULONG,
}}
pub type PIRQ_RANGE = *mut IRQ_RANGE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] struct DEVPRIVATE_RANGE {
    PR_Data1: DWORD,
    PR_Data2: DWORD,
    PR_Data3: DWORD,
}}
pub type PDEVPRIVATE_RANGE = *mut DEVPRIVATE_RANGE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] struct DEVPRIVATE_RESOURCE {
    PRV_Header: DEVPRIVATE_DES,
    PRV_Data: [DEVPRIVATE_RANGE; ANYSIZE_ARRAY],
}}
pub type PDEVPRIVATE_RESOURCE = *mut DEVPRIVATE_RESOURCE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] struct MFCARD_RESOURCE {
    MfCard_Header: MFCARD_DES,
}}
pub type PMFCARD_RESOURCE = *mut MFCARD_RESOURCE;
STRUCT!{#[repr(packed)] struct BUSNUMBER_RANGE {
    BUSR_Min: ULONG,
    BUSR_Max: ULONG,
    BUSR_nBusNumbers: ULONG,
    BUSR_Flags: ULONG,
}}
pub type PBUSNUMBER_RANGE = *mut BUSNUMBER_RANGE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] struct BUSNUMBER_RESOURCE {
    BusNumber_Header: BUSNUMBER_DES,
    BusNumber_Data: [BUSNUMBER_RANGE; ANYSIZE_ARRAY],
}}
pub type PBUSNUMBER_RESOURCE = *mut BUSNUMBER_RESOURCE;
STRUCT!{#[repr(packed)] 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!{#[repr(packed)] 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!{#[repr(packed)] struct HWPROFILEINFO_A {
    HWPI_ulHWProfile: ULONG,
    HWPI_szFriendlyName: [CHAR; MAX_PROFILE_LEN],
    HWPI_dwFlags: DWORD,
}}
pub type PHWPROFILEINFO_A = *mut HWPROFILEINFO_A;
STRUCT!{#[repr(packed)] 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!{struct CM_NOTIFY_FILTER_DeviceInstance {
    InstanceId: [WCHAR; MAX_DEVICE_ID_LEN],
}}
UNION!{union CM_NOTIFY_FILTER_u {
    [u32; 100] [u64; 50],
    DeviceInterface DeviceInterface_mut: CM_NOTIFY_FILTER_DeviceInterface,
    DeviceHandle DeviceHandle_mut: CM_NOTIFY_FILTER_DeviceHandle,
    DeviceInstance DeviceInstance_mut: CM_NOTIFY_FILTER_DeviceInstance,
}}
STRUCT!{struct CM_NOTIFY_FILTER {
    cbSize: DWORD,
    Flags: DWORD,
    FilterType: CM_NOTIFY_FILTER_TYPE,
    Reserved: DWORD,
    u: CM_NOTIFY_FILTER_u,
}}
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],
}}
UNION!{union CM_NOTIFY_EVENT_DATA_u {
    [u32; 7],
    DeviceInterface DeviceInterface_mut: CM_NOTIFY_EVENT_DATA_DeviceInterface,
    DeviceHandle DeviceHandle_mut: CM_NOTIFY_EVENT_DATA_DeviceHandle,
    DeviceInstance DeviceInstance_mut: CM_NOTIFY_EVENT_DATA_DeviceInstance,
}}
STRUCT!{struct CM_NOTIFY_EVENT_DATA {
    FilterType: CM_NOTIFY_FILTER_TYPE,
    Reserved: DWORD,
    u: CM_NOTIFY_EVENT_DATA_u,
}}
pub type PCM_NOTIFY_EVENT_DATA = *mut CM_NOTIFY_EVENT_DATA;
FN!{stdcall PCM_NOTIFY_CALLBACK(
    hNotify: HCMNOTIFICATION,
    Context: PVOID,
    Action: CM_NOTIFY_ACTION,
    EventData: PCM_NOTIFY_EVENT_DATA,
    EventDataSize: DWORD,
) -> DWORD}
extern "system" {
    pub fn CM_Add_Empty_Log_Conf(
        plcLogConf: PLOG_CONF,
        dnDevInst: DEVINST,
        Priority: PRIORITY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Add_Empty_Log_Conf_Ex(
        plcLogConf: PLOG_CONF,
        dnDevInst: DEVINST,
        Priority: PRIORITY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Add_IDA(
        dnDevInst: DEVINST,
        pszID: PSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Add_IDW(
        dnDevInst: DEVINST,
        pszID: PWSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Add_ID_ExA(
        dnDevInst: DEVINST,
        pszID: PSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Add_ID_ExW(
        dnDevInst: DEVINST,
        pszID: PWSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Add_Range(
        ullStartValue: DWORDLONG,
        ullEndValue: DWORDLONG,
        rlh: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Add_Res_Des(
        prdResDes: PRES_DES,
        lcLogConf: LOG_CONF,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Add_Res_Des_Ex(
        prdResDes: PRES_DES,
        lcLogConf: LOG_CONF,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Connect_MachineA(
        UNCServerName: PCSTR,
        phMachine: PHMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Connect_MachineW(
        UNCServerName: PCWSTR,
        phMachine: PHMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Create_DevNodeA(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_A,
        dnParent: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Create_DevNodeW(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_W,
        dnParent: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Create_DevNode_ExA(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_A,
        dnParent: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Create_DevNode_ExW(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_W,
        dnParent: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Create_Range_List(
        prlh: PRANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Delete_Class_Key(
        ClassGuid: LPGUID,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Delete_Class_Key_Ex(
        ClassGuid: LPGUID,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Delete_DevNode_Key(
        dnDevNode: DEVNODE,
        ulHardwareProfile: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Delete_DevNode_Key_Ex(
        dnDevNode: DEVNODE,
        ulHardwareProfile: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Delete_Range(
        ullStartValue: DWORDLONG,
        ullEndValue: DWORDLONG,
        rlh: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Detect_Resource_Conflict(
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        pbConflictDetected: PBOOL,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Detect_Resource_Conflict_Ex(
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        pbConflictDetected: PBOOL,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Disable_DevNode(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Disable_DevNode_Ex(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Disconnect_Machine(
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Dup_Range_List(
        rlhOld: RANGE_LIST,
        rlhNew: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Enable_DevNode(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Enable_DevNode_Ex(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_Classes(
        ulClassIndex: ULONG,
        ClassGuid: LPGUID,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_Classes_Ex(
        ulClassIndex: ULONG,
        ClassGuid: LPGUID,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_EnumeratorsA(
        ulEnumIndex: ULONG,
        Buffer: PSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_EnumeratorsW(
        ulEnumIndex: ULONG,
        Buffer: PWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_Enumerators_ExA(
        ulEnumIndex: ULONG,
        Buffer: PSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Enumerate_Enumerators_ExW(
        ulEnumIndex: ULONG,
        Buffer: PWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Find_Range(
        pullStart: PDWORDLONG,
        ullStart: DWORDLONG,
        ulLength: ULONG,
        ullAlignment: DWORDLONG,
        ullEnd: DWORDLONG,
        rlh: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_First_Range(
        rlh: RANGE_LIST,
        pullStart: PDWORDLONG,
        pullEnd: PDWORDLONG,
        preElement: PRANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Free_Log_Conf(
        lcLogConfToBeFreed: LOG_CONF,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Free_Log_Conf_Ex(
        lcLogConfToBeFreed: LOG_CONF,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Free_Log_Conf_Handle(
        lcLogConf: LOG_CONF,
    ) -> CONFIGRET;
    pub fn CM_Free_Range_List(
        rlh: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Free_Res_Des(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Free_Res_Des_Ex(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Free_Res_Des_Handle(
        rdResDes: RES_DES,
    ) -> CONFIGRET;
    pub fn CM_Get_Child(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Child_Ex(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Key_NameA(
        ClassGuid: LPGUID,
        pszKeyName: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Key_NameW(
        ClassGuid: LPGUID,
        pszKeyName: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Key_Name_ExA(
        ClassGuid: LPGUID,
        pszKeyName: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Key_Name_ExW(
        ClassGuid: LPGUID,
        pszKeyName: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_NameA(
        ClassGuid: LPGUID,
        Buffer: PSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_NameW(
        ClassGuid: LPGUID,
        Buffer: PWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Name_ExA(
        ClassGuid: LPGUID,
        Buffer: PSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Name_ExW(
        ClassGuid: LPGUID,
        Buffer: PWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Depth(
        pulDepth: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Depth_Ex(
        pulDepth: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_IDA(
        dnDevInst: DEVINST,
        Buffer: PSTR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_IDW(
        dnDevInst: DEVINST,
        Buffer: PWSTR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_ExA(
        dnDevInst: DEVINST,
        Buffer: PSTR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_ExW(
        dnDevInst: DEVINST,
        Buffer: PWSTR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_ListA(
        pszFilter: PCSTR,
        Buffer: PCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_ListW(
        pszFilter: PCWSTR,
        Buffer: PWCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_ExA(
        pszFilter: PCSTR,
        Buffer: PCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_ExW(
        pszFilter: PCWSTR,
        Buffer: PWCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_SizeA(
        pulLen: PULONG,
        pszFilter: PCSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_SizeW(
        pulLen: PULONG,
        pszFilter: PCWSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_Size_ExA(
        pulLen: PULONG,
        pszFilter: PCSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_List_Size_ExW(
        pulLen: PULONG,
        pszFilter: PCWSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_Size(
        pulLen: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_ID_Size_Ex(
        pulLen: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_PropertyW(
        dnDevInst: DEVINST,
        PropertyKey: *const DEVPROPKEY,
        PropertyType: *mut DEVPROPTYPE,
        PropertyBuffer: PBYTE,
        PropertyBufferSize: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_PropertyExW(
        dnDevInst: DEVINST,
        PropertyKey: *const DEVPROPKEY,
        PropertyType: *mut DEVPROPTYPE,
        PropertyBuffer: PBYTE,
        PropertyBufferSize: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Registry_PropertyA(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Registry_PropertyW(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Registry_Property_ExA(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Registry_Property_ExW(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Custom_PropertyA(
        dnDevInst: DEVINST,
        pszCustomPropertyName: PCSTR,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Custom_PropertyW(
        dnDevInst: DEVINST,
        pszCustomPropertyName: PCWSTR,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Custom_Property_ExA(
        dnDevInst: DEVINST,
        pszCustomPropertyName: PCSTR,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Custom_Property_ExW(
        dnDevInst: DEVINST,
        pszCustomPropertyName: PCWSTR,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Status(
        pulStatus: PULONG,
        pulProblemNumber: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_DevNode_Status_Ex(
        pulStatus: PULONG,
        pulProblemNumber: PULONG,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_First_Log_Conf(
        plcLogConf: PLOG_CONF,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_First_Log_Conf_Ex(
        plcLogConf: PLOG_CONF,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Global_State(
        pulState: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Global_State_Ex(
        pulState: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Hardware_Profile_InfoA(
        ulIndex: ULONG,
        pHWProfileInfo: PHWPROFILEINFO_A,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Hardware_Profile_Info_ExA(
        ulIndex: ULONG,
        pHWProfileInfo: PHWPROFILEINFO_A,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Hardware_Profile_InfoW(
        ulIndex: ULONG,
        pHWProfileInfo: PHWPROFILEINFO_W,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Hardware_Profile_Info_ExW(
        ulIndex: ULONG,
        pHWProfileInfo: PHWPROFILEINFO_W,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_HW_Prof_FlagsA(
        pDeviceID: DEVINSTID_A,
        ulHardwareProfile: ULONG,
        pulValue: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_HW_Prof_FlagsW(
        pDeviceID: DEVINSTID_W,
        ulHardwareProfile: ULONG,
        pulValue: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_HW_Prof_Flags_ExA(
        pDeviceID: DEVINSTID_A,
        ulHardwareProfile: ULONG,
        pulValue: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_HW_Prof_Flags_ExW(
        pDeviceID: DEVINSTID_W,
        ulHardwareProfile: ULONG,
        pulValue: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_AliasA(
        pszDeviceInterface: LPCSTR,
        AliasInterfaceGuid: LPGUID,
        pszAliasDeviceInterface: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_AliasW(
        pszDeviceInterface: LPCWSTR,
        AliasInterfaceGuid: LPGUID,
        pszAliasDeviceInterface: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_Alias_ExA(
        pszDeviceInterface: LPCSTR,
        AliasInterfaceGuid: LPGUID,
        pszAliasDeviceInterface: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_Alias_ExW(
        pszDeviceInterface: LPCWSTR,
        AliasInterfaceGuid: LPGUID,
        pszAliasDeviceInterface: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_ListA(
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_A,
        Buffer: PCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_ListW(
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_W,
        Buffer: PWCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_ExA(
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_A,
        Buffer: PCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_ExW(
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_W,
        Buffer: PWCHAR,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_SizeA(
        pulLen: PULONG,
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_A,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_SizeW(
        pulLen: PULONG,
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_W,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_Size_ExA(
        pulLen: PULONG,
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_A,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_List_Size_ExW(
        pulLen: PULONG,
        InterfaceClassGuid: LPGUID,
        pDeviceID: DEVINSTID_W,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_PropertyW(
        pszDeviceInterface: LPCWSTR,
        PropertyKey: *const DEVPROPKEY,
        PropertyType: *mut DEVPROPTYPE,
        PropertyBuffer: PBYTE,
        PropertyBufferSize: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Device_Interface_PropertyExW(
        pszDeviceInterface: LPCWSTR,
        PropertyKey: *const DEVPROPKEY,
        PropertyType: *mut DEVPROPTYPE,
        PropertyBuffer: PBYTE,
        PropertyBufferSize: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Log_Conf_Priority(
        lcLogConf: LOG_CONF,
        pPriority: PRIORITY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Log_Conf_Priority_Ex(
        lcLogConf: LOG_CONF,
        pPriority: PRIORITY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Next_Log_Conf(
        plcLogConf: PLOG_CONF,
        lcLogConf: LOG_CONF,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Next_Log_Conf_Ex(
        plcLogConf: PLOG_CONF,
        lcLogConf: LOG_CONF,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Parent(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Parent_Ex(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Res_Des_Data(
        rdResDes: RES_DES,
        Buffer: PVOID,
        BufferLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Res_Des_Data_Ex(
        rdResDes: RES_DES,
        Buffer: PVOID,
        BufferLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Res_Des_Data_Size(
        pulSize: PULONG,
        rdResDes: RES_DES,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Res_Des_Data_Size_Ex(
        pulSize: PULONG,
        rdResDes: RES_DES,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Sibling(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Sibling_Ex(
        pdnDevInst: PDEVINST,
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Version() -> WORD;
    pub fn CM_Get_Version_Ex(
        hMachine: HMACHINE,
    ) -> WORD;
    pub fn CM_Is_Version_Available(
        wVersion: WORD,
    ) -> BOOL;
    pub fn CM_Is_Version_Available_Ex(
        wVersion: WORD,
        hMachine: HMACHINE,
    ) -> BOOL;
    pub fn CM_Intersect_Range_List(
        rlhOld1: RANGE_LIST,
        rlhOld2: RANGE_LIST,
        rlhNew: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Invert_Range_List(
        rlhOld: RANGE_LIST,
        rlhNew: RANGE_LIST,
        ullMaxValue: DWORDLONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Locate_DevNodeA(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_A,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Locate_DevNodeW(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_W,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Locate_DevNode_ExA(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_A,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Locate_DevNode_ExW(
        pdnDevInst: PDEVINST,
        pDeviceID: DEVINSTID_W,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Merge_Range_List(
        rlhOld1: RANGE_LIST,
        rlhOld2: RANGE_LIST,
        rlhNew: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Modify_Res_Des(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Modify_Res_Des_Ex(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Move_DevNode(
        dnFromDevInst: DEVINST,
        dnToDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Move_DevNode_Ex(
        dnFromDevInst: DEVINST,
        dnToDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Next_Range(
        preElement: PRANGE_LIST,
        pullStart: PDWORDLONG,
        pullEnd: PDWORDLONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Next_Res_Des(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ForResource: RESOURCEID,
        pResourceID: PRESOURCEID,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Next_Res_Des_Ex(
        prdResDes: PRES_DES,
        rdResDes: RES_DES,
        ForResource: RESOURCEID,
        pResourceID: PRESOURCEID,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Open_Class_KeyA(
        ClassGuid: LPGUID,
        pszClassName: LPCSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkClass: PHKEY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Open_Class_KeyW(
        ClassGuid: LPGUID,
        pszClassName: LPCWSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkClass: PHKEY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Open_Class_Key_ExA(
        ClassGuid: LPGUID,
        pszClassName: LPCSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkClass: PHKEY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Open_Class_Key_ExW(
        ClassGuid: LPGUID,
        pszClassName: LPCWSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkClass: PHKEY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Open_DevNode_Key(
        dnDevNode: DEVINST,
        samDesired: REGSAM,
        ulHardwareProfile: ULONG,
        Disposition: REGDISPOSITION,
        phkDevice: PHKEY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Open_DevNode_Key_Ex(
        dnDevNode: DEVINST,
        samDesired: REGSAM,
        ulHardwareProfile: ULONG,
        Disposition: REGDISPOSITION,
        phkDevice: PHKEY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Open_Device_Interface_KeyA(
        pszDeviceInterface: LPCSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkDeviceInterface: PHKEY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Open_Device_Interface_KeyW(
        pszDeviceInterface: LPCWSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkDeviceInterface: PHKEY,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Open_Device_Interface_Key_ExA(
        pszDeviceInterface: LPCSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkDeviceInterface: PHKEY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Open_Device_Interface_Key_ExW(
        pszDeviceInterface: LPCWSTR,
        samDesired: REGSAM,
        Disposition: REGDISPOSITION,
        phkDeviceInterface: PHKEY,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Delete_Device_Interface_KeyA(
        pszDeviceInterface: LPCSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Delete_Device_Interface_KeyW(
        pszDeviceInterface: LPCWSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Delete_Device_Interface_Key_ExA(
        pszDeviceInterface: LPCSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Delete_Device_Interface_Key_ExW(
        pszDeviceInterface: LPCWSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_Arbitrator_Free_Data(
        pData: PVOID,
        DataLen: ULONG,
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Query_Arbitrator_Free_Data_Ex(
        pData: PVOID,
        DataLen: ULONG,
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_Arbitrator_Free_Size(
        pulSize: PULONG,
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Query_Arbitrator_Free_Size_Ex(
        pulSize: PULONG,
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_Remove_SubTree(
        dnAncestor: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Query_Remove_SubTree_Ex(
        dnAncestor: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_And_Remove_SubTreeA(
        dnAncestor: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Query_And_Remove_SubTree_ExA(
        dnAncestor: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_And_Remove_SubTreeW(
        dnAncestor: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPWSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Query_And_Remove_SubTree_ExW(
        dnAncestor: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPWSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Request_Device_EjectA(
        dnDevInst: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Request_Device_Eject_ExA(
        dnDevInst: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Request_Device_EjectW(
        dnDevInst: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPWSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Request_Device_Eject_ExW(
        dnDevInst: DEVINST,
        pVetoType: PPNP_VETO_TYPE,
        pszVetoName: LPWSTR,
        ulNameLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Reenumerate_DevNode(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Reenumerate_DevNode_Ex(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_InterfaceA(
        dnDevInst: DEVINST,
        InterfaceClassGuid: LPGUID,
        pszReference: LPCSTR,
        pszDeviceInterface: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_InterfaceW(
        dnDevInst: DEVINST,
        InterfaceClassGuid: LPGUID,
        pszReference: LPCWSTR,
        pszDeviceInterface: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_Interface_ExA(
        dnDevInst: DEVINST,
        InterfaceClassGuid: LPGUID,
        pszReference: LPCSTR,
        pszDeviceInterface: LPSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_Interface_ExW(
        dnDevInst: DEVINST,
        InterfaceClassGuid: LPGUID,
        pszReference: LPCWSTR,
        pszDeviceInterface: LPWSTR,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Problem_Ex(
        dnDevInst: DEVINST,
        ulProblem: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Problem(
        dnDevInst: DEVINST,
        ulProblem: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Unregister_Device_InterfaceA(
        pszDeviceInterface: LPCSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Unregister_Device_InterfaceW(
        pszDeviceInterface: LPCWSTR,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Unregister_Device_Interface_ExA(
        pszDeviceInterface: LPCSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Unregister_Device_Interface_ExW(
        pszDeviceInterface: LPCWSTR,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_Driver(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Register_Device_Driver_Ex(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Remove_SubTree(
        dnAncestor: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Remove_SubTree_Ex(
        dnAncestor: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Registry_PropertyA(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        Buffer: PCVOID,
        ulLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Registry_PropertyW(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        Buffer: PCVOID,
        ulLength: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Registry_Property_ExA(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        Buffer: PCVOID,
        ulLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_DevNode_Registry_Property_ExW(
        dnDevInst: DEVINST,
        ulProperty: ULONG,
        Buffer: PCVOID,
        ulLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Is_Dock_Station_Present(
        pbPresent: PBOOL,
    ) -> CONFIGRET;
    pub fn CM_Is_Dock_Station_Present_Ex(
        pbPresent: PBOOL,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Request_Eject_PC() -> CONFIGRET;
    pub fn CM_Request_Eject_PC_Ex(
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof_FlagsA(
        pDeviceID: DEVINSTID_A,
        ulConfig: ULONG,
        ulValue: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof_FlagsW(
        pDeviceID: DEVINSTID_W,
        ulConfig: ULONG,
        ulValue: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof_Flags_ExA(
        pDeviceID: DEVINSTID_A,
        ulConfig: ULONG,
        ulValue: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof_Flags_ExW(
        pDeviceID: DEVINSTID_A,
        ulConfig: ULONG,
        ulValue: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Setup_DevNode(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Setup_DevNode_Ex(
        dnDevInst: DEVINST,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Test_Range_Available(
        ullStartValue: DWORDLONG,
        ullEndValue: DWORDLONG,
        rlh: RANGE_LIST,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Uninstall_DevNode(
        dnDevInst: DEVNODE,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Uninstall_DevNode_Ex(
        dnDevInst: DEVNODE,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Run_Detection(
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Run_Detection_Ex(
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof(
        ulHardwareProfile: ULONG,
        ulFlags: ULONG,
    ) -> CONFIGRET;
    pub fn CM_Set_HW_Prof_Ex(
        ulHardwareProfile: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Query_Resource_Conflict_List(
        pclConflictList: PCONFLICT_LIST,
        dnDevInst: DEVINST,
        ResourceID: RESOURCEID,
        ResourceData: PCVOID,
        ResourceLen: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Free_Resource_Conflict_Handle(
        clConflictList: CONFLICT_LIST,
    ) -> CONFIGRET;
    pub fn CM_Get_Resource_Conflict_Count(
        clConflictList: CONFLICT_LIST,
        pulCount: PULONG,
    ) -> CONFIGRET;
    pub fn CM_Get_Resource_Conflict_DetailsA(
        clConflictList: CONFLICT_LIST,
        ulIndex: ULONG,
        pConflictDetails: PCONFLICT_DETAILS_A,
    ) -> CONFIGRET;
    pub fn CM_Get_Resource_Conflict_DetailsW(
        clConflictList: CONFLICT_LIST,
        ulIndex: ULONG,
        pConflictDetails: PCONFLICT_DETAILS_W,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Registry_PropertyW(
        ClassGuid: LPGUID,
        ulProperty: ULONG,
        pulRegDataType: PULONG,
        Buffer: PVOID,
        pulLength: PULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Set_Class_Registry_PropertyW(
        ClassGuid: LPGUID,
        ulProperty: ULONG,
        Buffer: PCVOID,
        ulLength: ULONG,
        ulFlags: ULONG,
        hMachine: HMACHINE,
    ) -> CONFIGRET;
    pub fn CM_Get_Class_Registry_PropertyA(
        ClassGuid: LPGUID,
--> --------------------

--> maximum size reached

--> --------------------

[ Dauer der Verarbeitung: 0.78 Sekunden  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge