Componentes.Terceros.jvcl/official/3.32/common/CfgMgr32.pas

5035 lines
250 KiB
ObjectPascal

{******************************************************************}
{ }
{ Borland Delphi Runtime Library }
{ Config Manager API interface unit }
{ }
{ Portions created by Microsoft are }
{ Copyright (c) Microsoft Corporation. All rights reserved. }
{ }
{ The original file is: cfgmgr32.h, released August 2001. }
{ The original Pascal code is: CfgMgr32.pas, released 5 Nov 2004. }
{ The initial developer of the Pascal code is Robert Marquardt }
{ (robert_marquardt att gmx dott de) }
{ }
{ Portions created by Robert Marquardt are }
{ Copyright (C) 2004 Robert Marquardt. }
{ }
{ Contributor(s): }
{ }
{ Obtained through: }
{ Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project }
{ JEDI home page, located at http://delphi-jedi.org }
{ }
{ The contents of this file are used with permission, subject to }
{ the Mozilla Public License Version 1.1 (the "License"); you may }
{ not use this file except in compliance with the License. You may }
{ obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an }
{ "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or }
{ implied. See the License for the specific language governing }
{ rights and limitations under the License. }
{ }
{******************************************************************}
unit CfgMgr32;
{$I windowsversion.inc}
interface
uses
Windows,
Cfg, WinConvTypes, SetupApi;
{$WEAKPACKAGEUNIT ON}
// (rom) this is the switch to change between static and dynamic linking.
// (rom) it is enabled by default here.
// (rom) To disable simply change the '$' to a '.'.
{$DEFINE CFGMGR32_LINKONREQUEST}
{$HPPEMIT '#include "cfgmgr32.h"'}
//--------------------------------------------------------------
// General size definitions
//--------------------------------------------------------------
const
MAX_DEVICE_ID_LEN = 200;
{$EXTERNALSYM MAX_DEVICE_ID_LEN}
MAX_DEVNODE_ID_LEN = MAX_DEVICE_ID_LEN;
{$EXTERNALSYM MAX_DEVNODE_ID_LEN}
MAX_GUID_STRING_LEN = 39; // 38 chars + terminator null
{$EXTERNALSYM MAX_GUID_STRING_LEN}
MAX_CLASS_NAME_LEN = 32;
{$EXTERNALSYM MAX_CLASS_NAME_LEN}
MAX_PROFILE_LEN = 80;
{$EXTERNALSYM MAX_PROFILE_LEN}
MAX_CONFIG_VALUE = 9999;
{$EXTERNALSYM MAX_CONFIG_VALUE}
MAX_INSTANCE_VALUE = 9999;
{$EXTERNALSYM MAX_INSTANCE_VALUE}
MAX_MEM_REGISTERS = 9; // Win95 compatibility--not applicable to 32-bit ConfigMgr
{$EXTERNALSYM MAX_MEM_REGISTERS}
MAX_IO_PORTS = 20; // Win95 compatibility--not applicable to 32-bit ConfigMgr
{$EXTERNALSYM MAX_IO_PORTS}
MAX_IRQS = 7; // Win95 compatibility--not applicable to 32-bit ConfigMgr
{$EXTERNALSYM MAX_IRQS}
MAX_DMA_CHANNELS = 7; // Win95 compatibility--not applicable to 32-bit ConfigMgr
{$EXTERNALSYM MAX_DMA_CHANNELS}
DWORD_MAX = $FFFFFFFF;
{$EXTERNALSYM DWORD_MAX}
DWORDLONG_MAX = $FFFFFFFFFFFFFFFF;
{$EXTERNALSYM DWORDLONG_MAX}
CONFIGMG_VERSION = $0400;
{$EXTERNALSYM CONFIGMG_VERSION}
type
PDWORDLONG = ^DWORDLONG;
{$EXTERNALSYM PDWORDLONG}
DWORDLONG = Int64; // (rom) no unsigned Int64 available in Delphi
{$EXTERNALSYM DWORDLONG}
//--------------------------------------------------------------
// Data types
//--------------------------------------------------------------
//
// Standardized Return Value data type
//
RETURN_TYPE = DWORD;
{$EXTERNALSYM RETURN_TYPE}
CONFIGRET = RETURN_TYPE;
{$EXTERNALSYM CONFIGRET}
//
// Device Instance Handle data type
//
PDEVNODE = ^DEVNODE;
{$EXTERNALSYM PDEVNODE}
DEVNODE = DWORD;
{$EXTERNALSYM DEVNODE}
PDEVINST = ^DEVINST;
{$EXTERNALSYM PDEVINST}
DEVINST = DWORD;
{$EXTERNALSYM DEVINST}
//
// Device Instance Identifier data type
// The device instance ID specifies the registry path, relative to the
// Enum key , for a device instance. For example: \Root\*PNP0500\0000.
//
DEVNODEID_A = PAnsiChar; // Device ID ANSI name.
{$EXTERNALSYM DEVNODEID_A}
DEVNODEID_W = PWideChar; // Device ID Unicode name.
{$EXTERNALSYM DEVNODEID_W}
DEVINSTID_A = PAnsiChar; // Device ID ANSI name.
{$EXTERNALSYM DEVINSTID_A}
DEVINSTID_W = PWideChar; // Device ID Unicode name.
{$EXTERNALSYM DEVINSTID_W}
{$IFDEF UNICODE}
DEVNODEID = DEVNODEID_W;
DEVINSTID = DEVINSTID_W;
{$ELSE}
DEVNODEID = DEVNODEID_A;
DEVINSTID = DEVINSTID_A;
{$ENDIF UNICODE}
{$EXTERNALSYM DEVNODEID}
{$EXTERNALSYM DEVINSTID}
//
// Logical Configuration Handle data type
//
LOG_CONF = DWORD_PTR;
{$EXTERNALSYM LOG_CONF}
PLOG_CONF = ^LOG_CONF;
{$EXTERNALSYM PLOG_CONF}
//
// Resource Descriptor Handle data type
//
RES_DES = DWORD_PTR;
{$EXTERNALSYM RES_DES}
PRES_DES = ^RES_DES;
{$EXTERNALSYM PRES_DES}
//
// Resource ID data type (may take any of the ResType_* values)
//
RESOURCEID = ULONG;
{$EXTERNALSYM RESOURCEID}
PRESOURCEID = ^RESOURCEID;
{$EXTERNALSYM PRESOURCEID}
//
// Priority data type (may take any of the LCPRI_* values)
//
PRIORITY = ULONG;
{$EXTERNALSYM PRIORITY}
PPRIORITY = ^PRIORITY;
{$EXTERNALSYM PPRIORITY}
//
// Range List Handle data type
//
RANGE_LIST = DWORD_PTR;
{$EXTERNALSYM RANGE_LIST}
PRANGE_LIST = ^RANGE_LIST;
{$EXTERNALSYM PRANGE_LIST}
//
// Range Element Handle data type
//
RANGE_ELEMENT = DWORD_PTR;
{$EXTERNALSYM RANGE_ELEMENT}
PRANGE_ELEMENT = ^RANGE_ELEMENT;
{$EXTERNALSYM PRANGE_ELEMENT}
//
// Machine Handle data type
//
HMACHINE = THandle;
{$EXTERNALSYM HMACHINE}
PHMACHINE = ^HMACHINE;
{$EXTERNALSYM PHMACHINE}
//
// Conflict List data types
//
CONFLICT_LIST = ULONG_PTR;
{$EXTERNALSYM CONFLICT_LIST}
PCONFLICT_LIST = ^CONFLICT_LIST;
{$EXTERNALSYM PCONFLICT_LIST}
PCONFLICT_DETAILS_A = ^CONFLICT_DETAILS_A;
{$EXTERNALSYM PCONFLICT_DETAILS_A}
CONFLICT_DETAILS_A = packed record
CD_ulSize: ULONG; // size of structure, ie: sizeof(CONFLICT_DETAILS)
CD_ulMask: ULONG; // indicates what information is required/valid
CD_dnDevInst: DEVINST; // filled with DevInst of conflicting device if CM_CDMASK_DEVINST set
CD_rdResDes: RES_DES; // filled with a ResDes of conflict if CM_CDMASK_RESDES set
CD_ulFlags: ULONG; // various flags regarding conflict
CD_szDescription: array [0..MAX_PATH-1] of Char; // description of conflicting device
end;
{$EXTERNALSYM CONFLICT_DETAILS_A}
PCONFLICT_DETAILS_W = ^CONFLICT_DETAILS_W;
{$EXTERNALSYM PCONFLICT_DETAILS_W}
CONFLICT_DETAILS_W = packed record
CD_ulSize: ULONG; // size of structure, ie: sizeof(CONFLICT_DETAILS)
CD_ulMask: ULONG; // indicates what information is required/valid
CD_dnDevInst: DEVINST; // filled with DevInst of conflicting device if CM_CDMASK_DEVINST set
CD_rdResDes: RES_DES; // filled with a ResDes of conflict if CM_CDMASK_RESDES set
CD_ulFlags: ULONG; // various flags regarding conflict
CD_szDescription: array [0..MAX_PATH-1] of WideChar; // description of conflicting device
end;
{$EXTERNALSYM CONFLICT_DETAILS_W}
{$IFDEF UNICODE}
CONFLICT_DETAILS = CONFLICT_DETAILS_W;
PCONFLICT_DETAILS = PCONFLICT_DETAILS_W;
{$ELSE}
CONFLICT_DETAILS = CONFLICT_DETAILS_A;
PCONFLICT_DETAILS = PCONFLICT_DETAILS_A;
{$ENDIF UNICODE}
{$EXTERNALSYM CONFLICT_DETAILS}
{$EXTERNALSYM PCONFLICT_DETAILS}
const
CM_CDMASK_DEVINST = $00000001; // mask to retrieve CD_dnDevInst attribute for conflict
{$EXTERNALSYM CM_CDMASK_DEVINST}
CM_CDMASK_RESDES = $00000002; // mask to retrieve CD_rdResDes attribute for conflict
{$EXTERNALSYM CM_CDMASK_RESDES}
CM_CDMASK_FLAGS = $00000004; // mask to retrieve CD_ulFlags attribute for conflict
{$EXTERNALSYM CM_CDMASK_FLAGS}
CM_CDMASK_DESCRIPTION = $00000008; // mask to retrieve CD_szDescription attribute for conflict
{$EXTERNALSYM CM_CDMASK_DESCRIPTION}
CM_CDMASK_VALID = $0000000F; // valid bits
{$EXTERNALSYM CM_CDMASK_VALID}
CM_CDFLAGS_DRIVER = $00000001; // CD_ulFlags: CD_szDescription reports back legacy driver name
{$EXTERNALSYM CM_CDFLAGS_DRIVER}
CM_CDFLAGS_ROOT_OWNED = $00000002; // CD_ulFlags: Root owned device
{$EXTERNALSYM CM_CDFLAGS_ROOT_OWNED}
CM_CDFLAGS_RESERVED = $00000004; // CD_ulFlags: Specified range is not available for use
{$EXTERNALSYM CM_CDFLAGS_RESERVED}
type
REGDISPOSITION = ^ULONG;
{$EXTERNALSYM REGDISPOSITION}
//--------------------------------------------------------------
// Memory resource
//--------------------------------------------------------------
const
//
// Define the attribute flags for memory ranges. Each bit flag is
// identified by a constant bitmask. Following the bitmask definition,
// are the two possible values.
//
mMD_MemoryType = $1; // Bitmask, whether memory is writable
{$EXTERNALSYM mMD_MemoryType}
fMD_MemoryType = mMD_MemoryType; // compatibility
{$EXTERNALSYM fMD_MemoryType}
fMD_ROM = $0; // Memory range is read-only
{$EXTERNALSYM fMD_ROM}
fMD_RAM = $1; // Memory range may be written to
{$EXTERNALSYM fMD_RAM}
mMD_32_24 = $2; // Bitmask, memory is 24 or 32-bit
{$EXTERNALSYM mMD_32_24}
fMD_32_24 = mMD_32_24; // compatibility
{$EXTERNALSYM fMD_32_24}
fMD_24 = $0; // Memory range is 24-bit
{$EXTERNALSYM fMD_24}
fMD_32 = $2; // Memory range is 32-bit
{$EXTERNALSYM fMD_32}
mMD_Prefetchable = $4; // Bitmask,whether memory prefetchable
{$EXTERNALSYM mMD_Prefetchable}
fMD_Prefetchable = mMD_Prefetchable; // compatibility
{$EXTERNALSYM fMD_Prefetchable}
fMD_Pref = mMD_Prefetchable; // compatibility
{$EXTERNALSYM fMD_Pref}
fMD_PrefetchDisallowed = $0; // Memory range is not prefetchable
{$EXTERNALSYM fMD_PrefetchDisallowed}
fMD_PrefetchAllowed = $4; // Memory range is prefetchable
{$EXTERNALSYM fMD_PrefetchAllowed}
mMD_Readable = $8; // Bitmask,whether memory is readable
{$EXTERNALSYM mMD_Readable}
fMD_Readable = mMD_Readable; // compatibility
{$EXTERNALSYM fMD_Readable}
fMD_ReadAllowed = $0; // Memory range is readable
{$EXTERNALSYM fMD_ReadAllowed}
fMD_ReadDisallowed = $8; // Memory range is write-only
{$EXTERNALSYM fMD_ReadDisallowed}
mMD_CombinedWrite = $10; // Bitmask,supports write-behind
{$EXTERNALSYM mMD_CombinedWrite}
fMD_CombinedWrite = mMD_CombinedWrite; // compatibility
{$EXTERNALSYM fMD_CombinedWrite}
fMD_CombinedWriteDisallowed = $0; // no combined-write caching
{$EXTERNALSYM fMD_CombinedWriteDisallowed}
fMD_CombinedWriteAllowed = $10; // supports combined-write caching
{$EXTERNALSYM fMD_CombinedWriteAllowed}
mMD_Cacheable = $20; // Bitmask,whether memory is cacheable
{$EXTERNALSYM mMD_Cacheable}
fMD_NonCacheable = $0; // Memory range is non-cacheable
{$EXTERNALSYM fMD_NonCacheable}
fMD_Cacheable = $20; // Memory range is cacheable
{$EXTERNALSYM fMD_Cacheable}
type
//
// MEM_RANGE Structure
//
PMEM_RANGE = ^MEM_RANGE;
{$EXTERNALSYM PMEM_RANGE}
MEM_RANGE = packed record
MR_Align: DWORDLONG; // specifies mask for base alignment
MR_nBytes: ULONG; // specifies number of bytes required
MR_Min: DWORDLONG; // specifies minimum address of the range
MR_Max: DWORDLONG; // specifies maximum address of the range
MR_Flags: DWORD; // specifies flags describing range (fMD flags)
MR_Reserved: DWORD;
end;
{$EXTERNALSYM MEM_RANGE}
//
// MEM_DES structure
//
PMEM_DES = ^MEM_DES;
{$EXTERNALSYM PMEM_DES}
MEM_DES = packed record
MD_Count: DWORD; // number of MEM_RANGE structs in MEM_RESOURCE
MD_Type: DWORD; // size (in bytes) of MEM_RANGE (MType_Range)
MD_Alloc_Base: DWORDLONG; // base memory address of range allocated
MD_Alloc_End: DWORDLONG; // end of allocated range
MD_Flags: DWORD; // flags describing allocated range (fMD flags)
MD_Reserved: DWORD;
end;
{$EXTERNALSYM MEM_DES}
//
// MEM_RESOURCE structure
//
PMEM_RESOURCE = ^MEM_RESOURCE;
{$EXTERNALSYM PMEM_RESOURCE}
MEM_RESOURCE = packed record
MEM_Header: MEM_DES; // info about memory range list
MEM_Data: array [0..0] of MEM_RANGE; // list of memory ranges
end;
{$EXTERNALSYM MEM_RESOURCE}
const
//
// Define the size of each range structure
//
MType_Range = SizeOf(MEM_RANGE);
{$EXTERNALSYM MType_Range}
//--------------------------------------------------------------
// I/O Port Resource
//--------------------------------------------------------------
const
//
// Define the attribute flags for port resources. Each bit flag is
// identified by a constant bitmask. Following the bitmask definition,
// are the two possible values.
//
fIOD_PortType = $1; // Bitmask,whether port is IO or memory
{$EXTERNALSYM fIOD_PortType}
fIOD_Memory = $0; // Port resource really uses memory
{$EXTERNALSYM fIOD_Memory}
fIOD_IO = $1; // Port resource uses IO ports
{$EXTERNALSYM fIOD_IO}
fIOD_DECODE = $00fc; // decode flags
{$EXTERNALSYM fIOD_DECODE}
fIOD_10_BIT_DECODE = $0004;
{$EXTERNALSYM fIOD_10_BIT_DECODE}
fIOD_12_BIT_DECODE = $0008;
{$EXTERNALSYM fIOD_12_BIT_DECODE}
fIOD_16_BIT_DECODE = $0010;
{$EXTERNALSYM fIOD_16_BIT_DECODE}
fIOD_POSITIVE_DECODE = $0020;
{$EXTERNALSYM fIOD_POSITIVE_DECODE}
fIOD_PASSIVE_DECODE = $0040;
{$EXTERNALSYM fIOD_PASSIVE_DECODE}
fIOD_WINDOW_DECODE = $0080;
{$EXTERNALSYM fIOD_WINDOW_DECODE}
//
// these are for compatiblity
//
IO_ALIAS_10_BIT_DECODE = $00000004;
{$EXTERNALSYM IO_ALIAS_10_BIT_DECODE}
IO_ALIAS_12_BIT_DECODE = $00000010;
{$EXTERNALSYM IO_ALIAS_12_BIT_DECODE}
IO_ALIAS_16_BIT_DECODE = $00000000;
{$EXTERNALSYM IO_ALIAS_16_BIT_DECODE}
IO_ALIAS_POSITIVE_DECODE = $000000FF;
{$EXTERNALSYM IO_ALIAS_POSITIVE_DECODE}
type
//
// IO_RANGE structure
//
PIO_RANGE = ^IO_RANGE;
{$EXTERNALSYM PIO_RANGE}
IO_RANGE = packed record
IOR_Align: DWORDLONG; // mask for base alignment
IOR_nPorts: DWORD; // number of ports
IOR_Min: DWORDLONG; // minimum port address
IOR_Max: DWORDLONG; // maximum port address
IOR_RangeFlags: DWORD; // flags for this port range
IOR_Alias: DWORDLONG; // multiplier that generates aliases for port(s)
end;
{$EXTERNALSYM IO_RANGE}
//
// IO_DES structure
//
PIO_DES = ^IO_DES;
{$EXTERNALSYM PIO_DES}
IO_DES = packed record
IOD_Count: DWORD; // number of IO_RANGE structs in IO_RESOURCE
IOD_Type: DWORD; // size (in bytes) of IO_RANGE (IOType_Range)
IOD_Alloc_Base: DWORDLONG; // base of allocated port range
IOD_Alloc_End: DWORDLONG; // end of allocated port range
IOD_DesFlags: DWORD; // flags relating to allocated port range
end;
{$EXTERNALSYM IO_DES}
//
// IO_RESOURCE
//
PIO_RESOURCE = ^IO_RESOURCE;
{$EXTERNALSYM PIO_RESOURCE}
IO_RESOURCE = packed record
IO_Header: IO_DES; // info about I/O port range list
IO_Data: array [0..0] of IO_RANGE; // list of I/O port ranges
end;
{$EXTERNALSYM IO_RESOURCE}
const
IOA_Local = $ff;
{$EXTERNALSYM IOA_Local}
//
// Define the size of each range structure
//
IOType_Range = SizeOf(IO_RANGE);
{$EXTERNALSYM IOType_Range}
//--------------------------------------------------------------
// DMA Resource
//--------------------------------------------------------------
const
//
// Define the attribute flags for a DMA resource range. Each bit flag is
// identified with a constant bitmask. Following the bitmask definition
// are the possible values.
//
mDD_Width = $3; // Bitmask, width of the DMA channel:
{$EXTERNALSYM mDD_Width}
fDD_BYTE = $0; // 8-bit DMA channel
{$EXTERNALSYM fDD_BYTE}
fDD_WORD = $1; // 16-bit DMA channel
{$EXTERNALSYM fDD_WORD}
fDD_DWORD = $2; // 32-bit DMA channel
{$EXTERNALSYM fDD_DWORD}
fDD_BYTE_AND_WORD = $3; // 8-bit and 16-bit DMA channel
{$EXTERNALSYM fDD_BYTE_AND_WORD}
mDD_BusMaster = $4; // Bitmask, whether bus mastering is supported
{$EXTERNALSYM mDD_BusMaster}
fDD_NoBusMaster = $0; // no bus mastering
{$EXTERNALSYM fDD_NoBusMaster}
fDD_BusMaster = $4; // bus mastering
{$EXTERNALSYM fDD_BusMaster}
mDD_Type = $18; // Bitmask, specifies type of DMA
{$EXTERNALSYM mDD_Type}
fDD_TypeStandard = $00; // standard DMA
{$EXTERNALSYM fDD_TypeStandard}
fDD_TypeA = $08; // Type-A DMA
{$EXTERNALSYM fDD_TypeA}
fDD_TypeB = $10; // Type-B DMA
{$EXTERNALSYM fDD_TypeB}
fDD_TypeF = $18; // Type-F DMA
{$EXTERNALSYM fDD_TypeF}
type
//
// DMA_RANGE structure
//
PDMA_RANGE = ^DMA_RANGE;
{$EXTERNALSYM PDMA_RANGE}
DMA_RANGE = packed record
DR_Min: ULONG; // minimum DMA port in the range
DR_Max: ULONG; // maximum DMA port in the range
DR_Flags: ULONG; // flags describing the range (fDD flags)
end;
{$EXTERNALSYM DMA_RANGE}
//
// DMA_DES structure
//
PDMA_DES = ^DMA_DES;
{$EXTERNALSYM PDMA_DES}
DMA_DES = packed record
DD_Count: DWORD; // number of DMA_RANGE structs in DMA_RESOURCE
DD_Type: DWORD; // size (in bytes) of DMA_RANGE struct (DType_Range)
DD_Flags: DWORD; // Flags describing DMA channel (fDD flags)
DD_Alloc_Chan: ULONG; // Specifies the DMA channel that was allocated
end;
{$EXTERNALSYM DMA_DES}
//
// DMA_RESOURCE
//
PDMA_RESOURCE = ^DMA_RESOURCE;
{$EXTERNALSYM PDMA_RESOURCE}
DMA_RESOURCE = packed record
DMA_Header: DMA_DES; // info about DMA channel range list
DMA_Data: array [0..0] of DMA_RANGE; // list of DMA ranges
end;
{$EXTERNALSYM DMA_RESOURCE}
const
//
// Define the size of each range structure
//
DType_Range = SizeOf(DMA_RANGE);
{$EXTERNALSYM DType_Range}
//--------------------------------------------------------------
// Interrupt Resource
//--------------------------------------------------------------
const
//
// Define the attribute flags for an interrupt resource range. Each bit flag
// is identified with a constant bitmask. Following the bitmask definition
// are the possible values.
//
mIRQD_Share = $1; // Bitmask,whether the IRQ may be shared:
{$EXTERNALSYM mIRQD_Share}
fIRQD_Exclusive = $0; // The IRQ may not be shared
{$EXTERNALSYM fIRQD_Exclusive}
fIRQD_Share = $1; // The IRQ may be shared
{$EXTERNALSYM fIRQD_Share}
fIRQD_Share_Bit = 0; // compatibility
{$EXTERNALSYM fIRQD_Share_Bit}
fIRQD_Level_Bit = 1; // compatibility
{$EXTERNALSYM fIRQD_Level_Bit}
//
// ** NOTE: 16-bit ConfigMgr uses fIRQD_Level_Bit being set to indicate that the
// ** interrupt is _level-sensitive_. For 32-bit ConfigMgr, if this bit is set,
// ** then the interrupt is _edge-sensitive_.
//
mIRQD_Edge_Level = $2; // Bitmask,whether edge or level triggered:
{$EXTERNALSYM mIRQD_Edge_Level}
fIRQD_Level = $0; // The IRQ is level-sensitive
{$EXTERNALSYM fIRQD_Level}
fIRQD_Edge = $2; // The IRQ is edge-sensitive
{$EXTERNALSYM fIRQD_Edge}
type
//
// IRQ_RANGE
//
PIRQ_RANGE = ^IRQ_RANGE;
{$EXTERNALSYM PIRQ_RANGE}
IRQ_RANGE = packed record
IRQR_Min: ULONG; // minimum IRQ in the range
IRQR_Max: ULONG; // maximum IRQ in the range
IRQR_Flags: ULONG; // flags describing the range (fIRQD flags)
end;
{$EXTERNALSYM IRQ_RANGE}
//
// IRQ_DES structure
//
PIRQ_DES_32 = ^IRQ_DES_32;
{$EXTERNALSYM PIRQ_DES_32}
IRQ_DES_32 = packed record
IRQD_Count: DWORD; // number of IRQ_RANGE structs in IRQ_RESOURCE
IRQD_Type: DWORD; // size (in bytes) of IRQ_RANGE (IRQType_Range)
IRQD_Flags: DWORD; // flags describing the IRQ (fIRQD flags)
IRQD_Alloc_Num: ULONG; // specifies the IRQ that was allocated
IRQD_Affinity: ULONG32;
end;
{$EXTERNALSYM IRQ_DES_32}
PIRQ_DES_64 = ^IRQ_DES_64;
{$EXTERNALSYM PIRQ_DES_64}
IRQ_DES_64 = packed record
IRQD_Count: DWORD; // number of IRQ_RANGE structs in IRQ_RESOURCE
IRQD_Type: DWORD; // size (in bytes) of IRQ_RANGE (IRQType_Range)
IRQD_Flags: DWORD; // flags describing the IRQ (fIRQD flags)
IRQD_Alloc_Num: ULONG; // specifies the IRQ that was allocated
IRQD_Affinity: ULONG64;
end;
{$EXTERNALSYM IRQ_DES_64}
{$IFDEF _WIN64}
IRQ_DES = IRQ_DES_64;
PIRQ_DES = PIRQ_DES_64;
{$ELSE}
IRQ_DES = IRQ_DES_32;
PIRQ_DES = PIRQ_DES_32;
{$ENDIF UNICODE}
{$EXTERNALSYM IRQ_DES}
{$EXTERNALSYM PIRQ_DES}
//
// IRQ_RESOURCE structure
//
PIRQ_RESOURCE_32 = ^IRQ_RESOURCE_32;
{$EXTERNALSYM PIRQ_RESOURCE_32}
IRQ_RESOURCE_32 = packed record
IRQ_Header: IRQ_DES_32; // info about IRQ range list
IRQ_Data: array [0..0] of IRQ_RANGE; // list of IRQ ranges
end;
{$EXTERNALSYM IRQ_RESOURCE_32}
PIRQ_RESOURCE_64 = ^IRQ_RESOURCE_64;
{$EXTERNALSYM PIRQ_RESOURCE_64}
IRQ_RESOURCE_64 = packed record
IRQ_Header: IRQ_DES_64; // info about IRQ range list
IRQ_Data: array [0..0] of IRQ_RANGE; // list of IRQ ranges
end;
{$EXTERNALSYM IRQ_RESOURCE_64}
{$IFDEF _WIN64}
IRQ_RESOURCE = IRQ_RESOURCE_64;
PIRQ_RESOURCE = PIRQ_RESOURCE_64;
{$ELSE}
IRQ_RESOURCE = IRQ_RESOURCE_32;
PIRQ_RESOURCE = PIRQ_RESOURCE_32;
{$ENDIF _WIN64}
{$EXTERNALSYM IRQ_RESOURCE}
{$EXTERNALSYM PIRQ_RESOURCE}
const
//
// Define the size of each range structure
//
IRQType_Range = SizeOf(IRQ_RANGE);
{$EXTERNALSYM IRQType_Range}
//
// Flags for resource descriptor APIs indicating the width of certain
// variable-size resource descriptor structure fields, where applicable.
//
CM_RESDES_WIDTH_DEFAULT = $00000000; // 32 or 64-bit IRQ_RESOURCE / IRQ_DES, based on client
{$EXTERNALSYM CM_RESDES_WIDTH_DEFAULT}
CM_RESDES_WIDTH_32 = $00000001; // 32-bit IRQ_RESOURCE / IRQ_DES
{$EXTERNALSYM CM_RESDES_WIDTH_32}
CM_RESDES_WIDTH_64 = $00000002; // 64-bit IRQ_RESOURCE / IRQ_DES
{$EXTERNALSYM CM_RESDES_WIDTH_64}
CM_RESDES_WIDTH_BITS = $00000003;
{$EXTERNALSYM CM_RESDES_WIDTH_BITS}
//--------------------------------------------------------------
// Device Private Resource
//--------------------------------------------------------------
type
//
// DEVICEPRIVATE_RANGE structure
//
PDEVPRIVATE_RANGE = ^DEVPRIVATE_RANGE;
{$EXTERNALSYM PDEVPRIVATE_RANGE}
DEVPRIVATE_RANGE = packed record
PR_Data1: DWORD; // mask for base alignment
PR_Data2: DWORD; // number of bytes
PR_Data3: DWORD; // minimum address
end;
{$EXTERNALSYM DEVPRIVATE_RANGE}
//
// DEVPRIVATE_DES structure
//
PDEVPRIVATE_DES = ^DEVPRIVATE_DES;
{$EXTERNALSYM PDEVPRIVATE_DES}
DEVPRIVATE_DES = packed record
PD_Count: DWORD;
PD_Type: DWORD;
PD_Data1: DWORD;
PD_Data2: DWORD;
PD_Data3: DWORD;
PD_Flags: DWORD;
end;
{$EXTERNALSYM DEVPRIVATE_DES}
//
// DEVPRIVATE_RESOURCE
//
PDEVPRIVATE_RESOURCE = ^DEVPRIVATE_RESOURCE;
{$EXTERNALSYM PDEVPRIVATE_RESOURCE}
DEVPRIVATE_RESOURCE = packed record
PRV_Header: DEVPRIVATE_DES;
PRV_Data: array [0..0] of DEVPRIVATE_RANGE;
end;
{$EXTERNALSYM DEVPRIVATE_RESOURCE}
const
//
// Define the size of each range structure
//
PType_Range = SizeOf(DEVPRIVATE_RANGE);
{$EXTERNALSYM PType_Range}
//--------------------------------------------------------------
// Class-Specific Resource
//--------------------------------------------------------------
type
PCS_DES = ^CS_DES;
{$EXTERNALSYM PCS_DES}
CS_DES = packed record
CSD_SignatureLength: DWORD;
CSD_LegacyDataOffset: DWORD;
CSD_LegacyDataSize: DWORD;
CSD_Flags: DWORD;
CSD_ClassGuid: TGUID;
CSD_Signature: array [0..0] of Byte;
end;
{$EXTERNALSYM CS_DES}
PCS_RESOURCE = ^CS_RESOURCE;
{$EXTERNALSYM PCS_RESOURCE}
CS_RESOURCE = packed record
CS_Header: CS_DES;
end;
{$EXTERNALSYM CS_RESOURCE}
//--------------------------------------------------------------
// PC Card Configuration Resource
//--------------------------------------------------------------
const
//
// Define the attribute flags for a PC Card configuration resource descriptor.
// Each bit flag is identified with a constant bitmask. Following the bitmask
// definition are the possible values.
//
mPCD_IO_8_16 = $1; // Bitmask, whether I/O is 8 or 16 bits
{$EXTERNALSYM mPCD_IO_8_16}
fPCD_IO_8 = $0; // I/O is 8-bit
{$EXTERNALSYM fPCD_IO_8}
fPCD_IO_16 = $1; // I/O is 16-bit
{$EXTERNALSYM fPCD_IO_16}
mPCD_MEM_8_16 = $2; // Bitmask, whether MEM is 8 or 16 bits
{$EXTERNALSYM mPCD_MEM_8_16}
fPCD_MEM_8 = $0; // MEM is 8-bit
{$EXTERNALSYM fPCD_MEM_8}
fPCD_MEM_16 = $2; // MEM is 16-bit
{$EXTERNALSYM fPCD_MEM_16}
mPCD_MEM_A_C = $C; // Bitmask, whether MEMx is Attribute or Common
{$EXTERNALSYM mPCD_MEM_A_C}
fPCD_MEM1_A = $4; // MEM1 is Attribute
{$EXTERNALSYM fPCD_MEM1_A}
fPCD_MEM2_A = $8; // MEM2 is Attribute
{$EXTERNALSYM fPCD_MEM2_A}
fPCD_IO_ZW_8 = $10; // zero wait on 8 bit I/O
{$EXTERNALSYM fPCD_IO_ZW_8}
fPCD_IO_SRC_16 = $20; // iosrc 16
{$EXTERNALSYM fPCD_IO_SRC_16}
fPCD_IO_WS_16 = $40; // wait states on 16 bit io
{$EXTERNALSYM fPCD_IO_WS_16}
mPCD_MEM_WS = $300; // Bitmask, for additional wait states on memory windows
{$EXTERNALSYM mPCD_MEM_WS}
fPCD_MEM_WS_ONE = $100; // 1 wait state
{$EXTERNALSYM fPCD_MEM_WS_ONE}
fPCD_MEM_WS_TWO = $200; // 2 wait states
{$EXTERNALSYM fPCD_MEM_WS_TWO}
fPCD_MEM_WS_THREE = $300; // 3 wait states
{$EXTERNALSYM fPCD_MEM_WS_THREE}
fPCD_MEM_A = $4; // MEM is Attribute
{$EXTERNALSYM fPCD_MEM_A}
fPCD_ATTRIBUTES_PER_WINDOW = $8000;
{$EXTERNALSYM fPCD_ATTRIBUTES_PER_WINDOW}
fPCD_IO1_16 = $00010000; // I/O window 1 is 16-bit
{$EXTERNALSYM fPCD_IO1_16}
fPCD_IO1_ZW_8 = $00020000; // I/O window 1 zero wait on 8 bit I/O
{$EXTERNALSYM fPCD_IO1_ZW_8}
fPCD_IO1_SRC_16 = $00040000; // I/O window 1 iosrc 16
{$EXTERNALSYM fPCD_IO1_SRC_16}
fPCD_IO1_WS_16 = $00080000; // I/O window 1 wait states on 16 bit io
{$EXTERNALSYM fPCD_IO1_WS_16}
fPCD_IO2_16 = $00100000; // I/O window 2 is 16-bit
{$EXTERNALSYM fPCD_IO2_16}
fPCD_IO2_ZW_8 = $00200000; // I/O window 2 zero wait on 8 bit I/O
{$EXTERNALSYM fPCD_IO2_ZW_8}
fPCD_IO2_SRC_16 = $00400000; // I/O window 2 iosrc 16
{$EXTERNALSYM fPCD_IO2_SRC_16}
fPCD_IO2_WS_16 = $00800000; // I/O window 2 wait states on 16 bit io
{$EXTERNALSYM fPCD_IO2_WS_16}
mPCD_MEM1_WS = $03000000; // MEM window 1 Bitmask, for additional wait states on memory windows
{$EXTERNALSYM mPCD_MEM1_WS}
fPCD_MEM1_WS_ONE = $01000000; // MEM window 1, 1 wait state
{$EXTERNALSYM fPCD_MEM1_WS_ONE}
fPCD_MEM1_WS_TWO = $02000000; // MEM window 1, 2 wait states
{$EXTERNALSYM fPCD_MEM1_WS_TWO}
fPCD_MEM1_WS_THREE = $03000000; // MEM window 1, 3 wait states
{$EXTERNALSYM fPCD_MEM1_WS_THREE}
fPCD_MEM1_16 = $04000000; // MEM window 1 is 16-bit
{$EXTERNALSYM fPCD_MEM1_16}
mPCD_MEM2_WS = $30000000; // MEM window 2 Bitmask, for additional wait states on memory windows
{$EXTERNALSYM mPCD_MEM2_WS}
fPCD_MEM2_WS_ONE = $10000000; // MEM window 2, 1 wait state
{$EXTERNALSYM fPCD_MEM2_WS_ONE}
fPCD_MEM2_WS_TWO = $20000000; // MEM window 2, 2 wait states
{$EXTERNALSYM fPCD_MEM2_WS_TWO}
fPCD_MEM2_WS_THREE = $30000000; // MEM window 2, 3 wait states
{$EXTERNALSYM fPCD_MEM2_WS_THREE}
fPCD_MEM2_16 = $40000000; // MEM window 2 is 16-bit
{$EXTERNALSYM fPCD_MEM2_16}
PCD_MAX_MEMORY = 2;
{$EXTERNALSYM PCD_MAX_MEMORY}
PCD_MAX_IO = 2;
{$EXTERNALSYM PCD_MAX_IO}
type
PPCCARD_DES = ^PCCARD_DES;
{$EXTERNALSYM PPCCARD_DES}
PCCARD_DES = packed record
PCD_Count: DWORD;
PCD_Type: DWORD;
PCD_Flags: DWORD;
PCD_ConfigIndex: Byte;
PCD_Reserved: array [0..2] of Byte;
PCD_MemoryCardBase1: DWORD;
PCD_MemoryCardBase2: DWORD;
PCD_MemoryCardBase: array [0..PCD_MAX_MEMORY-1] of DWORD; // will soon be removed
PCD_MemoryFlags: array [0..PCD_MAX_MEMORY-1] of WORD; // will soon be removed
PCD_IoFlags: array [0..PCD_MAX_IO-1] of Byte; // will soon be removed
end;
{$EXTERNALSYM PCCARD_DES}
PPCCARD_RESOURCE = ^PCCARD_RESOURCE;
{$EXTERNALSYM PPCCARD_RESOURCE}
PCCARD_RESOURCE = packed record
PcCard_Header: PCCARD_DES;
end;
{$EXTERNALSYM PCCARD_RESOURCE}
//--------------------------------------------------------------
// MF (multifunction) PCCard Configuration Resource
//--------------------------------------------------------------
const
mPMF_AUDIO_ENABLE = $8; // Bitmask, whether audio is enabled or not
{$EXTERNALSYM mPMF_AUDIO_ENABLE}
fPMF_AUDIO_ENABLE = $8; // Audio is enabled
{$EXTERNALSYM fPMF_AUDIO_ENABLE}
type
PMFCARD_DES = ^MFCARD_DES;
{$EXTERNALSYM PMFCARD_DES}
MFCARD_DES = packed record
PMF_Count: DWORD;
PMF_Type: DWORD;
PMF_Flags: DWORD;
PMF_ConfigOptions: Byte;
PMF_IoResourceIndex: Byte;
PMF_Reserved: array [0..1] of Byte;
PMF_ConfigRegisterBase: DWORD;
end;
{$EXTERNALSYM MFCARD_DES}
PMFCARD_RESOURCE = ^MFCARD_RESOURCE;
{$EXTERNALSYM PMFCARD_RESOURCE}
MFCARD_RESOURCE = packed record
MfCard_Header: MFCARD_DES;
end;
{$EXTERNALSYM MFCARD_RESOURCE}
//--------------------------------------------------------------
// Bus Number Resource
//--------------------------------------------------------------
//
// Define the attribute flags for a Bus Number resource descriptor.
// Each bit flag is identified with a constant bitmask. Following the bitmask
// definition are the possible values.
//
// Currently unused.
//
//
// BUSNUMBER_RANGE
//
PBUSNUMBER_RANGE = ^BUSNUMBER_RANGE;
{$EXTERNALSYM PBUSNUMBER_RANGE}
BUSNUMBER_RANGE = packed record
BUSR_Min: ULONG; // minimum Bus Number in the range
BUSR_Max: ULONG; // maximum Bus Number in the range
BUSR_nBusNumbers: ULONG; // specifies number of buses required
BUSR_Flags: ULONG; // flags describing the range (currently unused)
end;
{$EXTERNALSYM BUSNUMBER_RANGE}
//
// BUSNUMBER_DES structure
//
PBUSNUMBER_DES = ^BUSNUMBER_DES;
{$EXTERNALSYM PBUSNUMBER_DES}
BUSNUMBER_DES = packed record
BUSD_Count: DWORD; // number of BUSNUMBER_RANGE structs in BUSNUMBER_RESOURCE
BUSD_Type: DWORD; // size (in bytes) of BUSNUMBER_RANGE (BusNumberType_Range)
BUSD_Flags: DWORD; // flags describing the range (currently unused)
BUSD_Alloc_Base: ULONG; // specifies the first Bus that was allocated
BUSD_Alloc_End: ULONG; // specifies the last Bus number that was allocated
end;
{$EXTERNALSYM BUSNUMBER_DES}
//
// BUSNUMBER_RESOURCE structure
//
PBUSNUMBER_RESOURCE = ^BUSNUMBER_RESOURCE;
{$EXTERNALSYM PBUSNUMBER_RESOURCE}
BUSNUMBER_RESOURCE = packed record
BusNumber_Header: BUSNUMBER_DES; // info about Bus Number range list
BusNumber_Data: array [0..0] of BUSNUMBER_RANGE; // list of Bus Number ranges
end;
{$EXTERNALSYM BUSNUMBER_RESOURCE}
const
//
// Define the size of each range structure
//
BusNumberType_Range = SizeOf(BUSNUMBER_RANGE);
{$EXTERNALSYM BusNumberType_Range}
//--------------------------------------------------------------
// Hardware Profile Information
//--------------------------------------------------------------
const
//
// Define flags relating to hardware profiles
//
CM_HWPI_NOT_DOCKABLE = $00000000; // machine is not dockable
{$EXTERNALSYM CM_HWPI_NOT_DOCKABLE}
CM_HWPI_UNDOCKED = $00000001; // hw profile for docked config
{$EXTERNALSYM CM_HWPI_UNDOCKED}
CM_HWPI_DOCKED = $00000002; // hw profile for undocked config
{$EXTERNALSYM CM_HWPI_DOCKED}
type
//
// HWPROFILEINFO structure
//
PHWPROFILEINFO_A = ^HWPROFILEINFO_A;
{$EXTERNALSYM PHWPROFILEINFO_A}
HWPROFILEINFO_A = packed record
HWPI_ulHWProfile: ULONG; // handle of hw profile
HWPI_szFriendlyName: array [0..MAX_PROFILE_LEN-1] of Char; // friendly name of hw profile
HWPI_dwFlags: DWORD; // profile flags (CM_HWPI_*)
end;
{$EXTERNALSYM HWPROFILEINFO_A}
PHWPROFILEINFO_W = ^HWPROFILEINFO_W;
{$EXTERNALSYM PHWPROFILEINFO_W}
HWPROFILEINFO_W = packed record
HWPI_ulHWProfile: ULONG; // handle of hw profile
HWPI_szFriendlyName: array [0..MAX_PROFILE_LEN-1] of Char; // friendly name of hw profile
HWPI_dwFlags: DWORD; // profile flags (CM_HWPI_*)
end;
{$EXTERNALSYM HWPROFILEINFO_W}
{$IFDEF UNICODE}
HWPROFILEINFO = HWPROFILEINFO_W;
PHWPROFILEINFO = PHWPROFILEINFO_W;
{$ELSE}
HWPROFILEINFO = HWPROFILEINFO_A;
PHWPROFILEINFO = PHWPROFILEINFO_A;
{$ENDIF UNICODE}
{$EXTERNALSYM HWPROFILEINFO}
{$EXTERNALSYM PHWPROFILEINFO}
//--------------------------------------------------------------
// Miscellaneous
//--------------------------------------------------------------
const
//
// Resource types
//
ResType_All = $00000000; // Return all resource types
{$EXTERNALSYM ResType_All}
ResType_None = $00000000; // Arbitration always succeeded
{$EXTERNALSYM ResType_None}
ResType_Mem = $00000001; // Physical address resource
{$EXTERNALSYM ResType_Mem}
ResType_IO = $00000002; // Physical I/O address resource
{$EXTERNALSYM ResType_IO}
ResType_DMA = $00000003; // DMA channels resource
{$EXTERNALSYM ResType_DMA}
ResType_IRQ = $00000004; // IRQ resource
{$EXTERNALSYM ResType_IRQ}
ResType_DoNotUse = $00000005; // Used as spacer to sync subsequent ResTypes w/NT
{$EXTERNALSYM ResType_DoNotUse}
ResType_BusNumber = $00000006; // bus number resource
{$EXTERNALSYM ResType_BusNumber}
ResType_MAX = $00000006; // Maximum known (arbitrated) ResType
{$EXTERNALSYM ResType_MAX}
ResType_Ignored_Bit = $00008000; // Ignore this resource
{$EXTERNALSYM ResType_Ignored_Bit}
ResType_ClassSpecific = $0000FFFF; // class-specific resource
{$EXTERNALSYM ResType_ClassSpecific}
ResType_Reserved = $00008000; // reserved for internal use
{$EXTERNALSYM ResType_Reserved}
ResType_DevicePrivate = $00008001; // device private data
{$EXTERNALSYM ResType_DevicePrivate}
ResType_PcCardConfig = $00008002; // PC Card configuration data
{$EXTERNALSYM ResType_PcCardConfig}
ResType_MfCardConfig = $00008003; // MF Card configuration data
{$EXTERNALSYM ResType_MfCardConfig}
//
// Flags specifying options for ranges that conflict with ranges already in
// the range list (CM_Add_Range)
//
CM_ADD_RANGE_ADDIFCONFLICT = $00000000; // merg with conflicting range
{$EXTERNALSYM CM_ADD_RANGE_ADDIFCONFLICT}
CM_ADD_RANGE_DONOTADDIFCONFLICT = $00000001; // error if range conflicts
{$EXTERNALSYM CM_ADD_RANGE_DONOTADDIFCONFLICT}
CM_ADD_RANGE_BITS = $00000001;
{$EXTERNALSYM CM_ADD_RANGE_BITS}
//
// Logical Config Flags (specified in call to CM_Get_First_Log_Conf
//
BASIC_LOG_CONF = $00000000; // Specifies the req list.
{$EXTERNALSYM BASIC_LOG_CONF}
FILTERED_LOG_CONF = $00000001; // Specifies the filtered req list.
{$EXTERNALSYM FILTERED_LOG_CONF}
ALLOC_LOG_CONF = $00000002; // Specifies the Alloc Element.
{$EXTERNALSYM ALLOC_LOG_CONF}
BOOT_LOG_CONF = $00000003; // Specifies the RM Alloc Element.
{$EXTERNALSYM BOOT_LOG_CONF}
FORCED_LOG_CONF = $00000004; // Specifies the Forced Log Conf
{$EXTERNALSYM FORCED_LOG_CONF}
OVERRIDE_LOG_CONF = $00000005; // Specifies the Override req list.
{$EXTERNALSYM OVERRIDE_LOG_CONF}
NUM_LOG_CONF = $00000006; // Number of Log Conf type
{$EXTERNALSYM NUM_LOG_CONF}
LOG_CONF_BITS = $00000007; // The bits of the log conf type.
{$EXTERNALSYM LOG_CONF_BITS}
PRIORITY_EQUAL_FIRST = $00000008; // Same priority, new one first
{$EXTERNALSYM PRIORITY_EQUAL_FIRST}
PRIORITY_EQUAL_LAST = $00000000; // Same priority, new one last
{$EXTERNALSYM PRIORITY_EQUAL_LAST}
PRIORITY_BIT = $00000008;
{$EXTERNALSYM PRIORITY_BIT}
//
// Registry disposition values
// (specified in call to CM_Open_DevNode_Key and CM_Open_Class_Key)
//
RegDisposition_OpenAlways = $00000000; // open if exists else create
{$EXTERNALSYM RegDisposition_OpenAlways}
RegDisposition_OpenExisting = $00000001; // open key only if exists
{$EXTERNALSYM RegDisposition_OpenExisting}
RegDisposition_Bits = $00000001;
{$EXTERNALSYM RegDisposition_Bits}
//
// ulFlags values for CM API routines
//
//
// Flags for CM_Add_ID
//
CM_ADD_ID_HARDWARE = $00000000;
{$EXTERNALSYM CM_ADD_ID_HARDWARE}
CM_ADD_ID_COMPATIBLE = $00000001;
{$EXTERNALSYM CM_ADD_ID_COMPATIBLE}
CM_ADD_ID_BITS = $00000001;
{$EXTERNALSYM CM_ADD_ID_BITS}
//
// Device Node creation flags
//
CM_CREATE_DEVNODE_NORMAL = $00000000; // install later
{$EXTERNALSYM CM_CREATE_DEVNODE_NORMAL}
CM_CREATE_DEVNODE_NO_WAIT_INSTALL = $00000001; // NOT SUPPORTED ON NT
{$EXTERNALSYM CM_CREATE_DEVNODE_NO_WAIT_INSTALL}
CM_CREATE_DEVNODE_PHANTOM = $00000002;
{$EXTERNALSYM CM_CREATE_DEVNODE_PHANTOM}
CM_CREATE_DEVNODE_GENERATE_ID = $00000004;
{$EXTERNALSYM CM_CREATE_DEVNODE_GENERATE_ID}
CM_CREATE_DEVNODE_DO_NOT_INSTALL = $00000008;
{$EXTERNALSYM CM_CREATE_DEVNODE_DO_NOT_INSTALL}
CM_CREATE_DEVNODE_BITS = $0000000F;
{$EXTERNALSYM CM_CREATE_DEVNODE_BITS}
CM_CREATE_DEVINST_NORMAL = CM_CREATE_DEVNODE_NORMAL;
{$EXTERNALSYM CM_CREATE_DEVINST_NORMAL}
CM_CREATE_DEVINST_NO_WAIT_INSTALL = CM_CREATE_DEVNODE_NO_WAIT_INSTALL;
{$EXTERNALSYM CM_CREATE_DEVINST_NO_WAIT_INSTALL}
CM_CREATE_DEVINST_PHANTOM = CM_CREATE_DEVNODE_PHANTOM;
{$EXTERNALSYM CM_CREATE_DEVINST_PHANTOM}
CM_CREATE_DEVINST_GENERATE_ID = CM_CREATE_DEVNODE_GENERATE_ID;
{$EXTERNALSYM CM_CREATE_DEVINST_GENERATE_ID}
CM_CREATE_DEVINST_DO_NOT_INSTALL = CM_CREATE_DEVNODE_DO_NOT_INSTALL;
{$EXTERNALSYM CM_CREATE_DEVINST_DO_NOT_INSTALL}
CM_CREATE_DEVINST_BITS = CM_CREATE_DEVNODE_BITS;
{$EXTERNALSYM CM_CREATE_DEVINST_BITS}
//
// Flags for CM_Delete_Class_Key
//
CM_DELETE_CLASS_ONLY = $00000000;
{$EXTERNALSYM CM_DELETE_CLASS_ONLY}
CM_DELETE_CLASS_SUBKEYS = $00000001;
{$EXTERNALSYM CM_DELETE_CLASS_SUBKEYS}
CM_DELETE_CLASS_BITS = $00000001;
{$EXTERNALSYM CM_DELETE_CLASS_BITS}
//
// Detection reason flags (specified in call to CM_Run_Detection)
//
CM_DETECT_NEW_PROFILE = $00000001; // detection for new hw profile
{$EXTERNALSYM CM_DETECT_NEW_PROFILE}
CM_DETECT_CRASHED = $00000002; // Previous detection crashed
{$EXTERNALSYM CM_DETECT_CRASHED}
CM_DETECT_HWPROF_FIRST_BOOT = $00000004;
{$EXTERNALSYM CM_DETECT_HWPROF_FIRST_BOOT}
CM_DETECT_RUN = $80000000;
{$EXTERNALSYM CM_DETECT_RUN}
CM_DETECT_BITS = $80000007;
{$EXTERNALSYM CM_DETECT_BITS}
CM_DISABLE_POLITE = $00000000; // Ask the driver
{$EXTERNALSYM CM_DISABLE_POLITE}
CM_DISABLE_ABSOLUTE = $00000001; // Don't ask the driver
{$EXTERNALSYM CM_DISABLE_ABSOLUTE}
CM_DISABLE_HARDWARE = $00000002; // Don't ask the driver, and won't be restarteable
{$EXTERNALSYM CM_DISABLE_HARDWARE}
CM_DISABLE_UI_NOT_OK = $00000004; // Don't popup any veto API
{$EXTERNALSYM CM_DISABLE_UI_NOT_OK}
CM_DISABLE_BITS = $00000007; // The bits for the disable function
{$EXTERNALSYM CM_DISABLE_BITS}
//
// Flags for CM_Get_Device_ID_List, CM_Get_Device_ID_List_Size
//
CM_GETIDLIST_FILTER_NONE = $00000000;
{$EXTERNALSYM CM_GETIDLIST_FILTER_NONE}
CM_GETIDLIST_FILTER_ENUMERATOR = $00000001;
{$EXTERNALSYM CM_GETIDLIST_FILTER_ENUMERATOR}
CM_GETIDLIST_FILTER_SERVICE = $00000002;
{$EXTERNALSYM CM_GETIDLIST_FILTER_SERVICE}
CM_GETIDLIST_FILTER_EJECTRELATIONS = $00000004;
{$EXTERNALSYM CM_GETIDLIST_FILTER_EJECTRELATIONS}
CM_GETIDLIST_FILTER_REMOVALRELATIONS = $00000008;
{$EXTERNALSYM CM_GETIDLIST_FILTER_REMOVALRELATIONS}
CM_GETIDLIST_FILTER_POWERRELATIONS = $00000010;
{$EXTERNALSYM CM_GETIDLIST_FILTER_POWERRELATIONS}
CM_GETIDLIST_FILTER_BUSRELATIONS = $00000020;
{$EXTERNALSYM CM_GETIDLIST_FILTER_BUSRELATIONS}
CM_GETIDLIST_DONOTGENERATE = $10000040;
{$EXTERNALSYM CM_GETIDLIST_DONOTGENERATE}
CM_GETIDLIST_FILTER_BITS = $1000007F;
{$EXTERNALSYM CM_GETIDLIST_FILTER_BITS}
//
// Flags for CM_Get_Device_Interface_List, CM_Get_Device_Interface_List_Size
//
CM_GET_DEVICE_INTERFACE_LIST_PRESENT = $00000000; // only currently 'live' device interfaces
{$EXTERNALSYM CM_GET_DEVICE_INTERFACE_LIST_PRESENT}
CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES = $00000001; // all registered device interfaces, live or not
{$EXTERNALSYM CM_GET_DEVICE_INTERFACE_LIST_ALL_DEVICES}
CM_GET_DEVICE_INTERFACE_LIST_BITS = $00000001;
{$EXTERNALSYM CM_GET_DEVICE_INTERFACE_LIST_BITS}
//
// Registry properties (specified in call to CM_Get_DevInst_Registry_Property or CM_Get_Class_Registry_Property,
// some are allowed in calls to CM_Set_DevInst_Registry_Property and CM_Set_Class_Registry_Property)
// CM_DRP_xxxx values should be used for CM_Get_DevInst_Registry_Property / CM_Set_DevInst_Registry_Property
// CM_CRP_xxxx values should be used for CM_Get_Class_Registry_Property / CM_Set_Class_Registry_Property
// DRP/CRP values that overlap must have a 1:1 correspondence with each other
//
CM_DRP_DEVICEDESC = $00000001; // DeviceDesc REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_DEVICEDESC}
CM_DRP_HARDWAREID = $00000002; // HardwareID REG_MULTI_SZ property (RW)
{$EXTERNALSYM CM_DRP_HARDWAREID}
CM_DRP_COMPATIBLEIDS = $00000003; // CompatibleIDs REG_MULTI_SZ property (RW)
{$EXTERNALSYM CM_DRP_COMPATIBLEIDS}
CM_DRP_UNUSED0 = $00000004; // unused
{$EXTERNALSYM CM_DRP_UNUSED0}
CM_DRP_SERVICE = $00000005; // Service REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_SERVICE}
CM_DRP_UNUSED1 = $00000006; // unused
{$EXTERNALSYM CM_DRP_UNUSED1}
CM_DRP_UNUSED2 = $00000007; // unused
{$EXTERNALSYM CM_DRP_UNUSED2}
CM_DRP_CLASS = $00000008; // Class REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_CLASS}
CM_DRP_CLASSGUID = $00000009; // ClassGUID REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_CLASSGUID}
CM_DRP_DRIVER = $0000000A; // Driver REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_DRIVER}
CM_DRP_CONFIGFLAGS = $0000000B; // ConfigFlags REG_DWORD property (RW)
{$EXTERNALSYM CM_DRP_CONFIGFLAGS}
CM_DRP_MFG = $0000000C; // Mfg REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_MFG}
CM_DRP_FRIENDLYNAME = $0000000D; // FriendlyName REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_FRIENDLYNAME}
CM_DRP_LOCATION_INFORMATION = $0000000E; // LocationInformation REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_LOCATION_INFORMATION}
CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME = $0000000F; // PhysicalDeviceObjectName REG_SZ property (R)
{$EXTERNALSYM CM_DRP_PHYSICAL_DEVICE_OBJECT_NAME}
CM_DRP_CAPABILITIES = $00000010; // Capabilities REG_DWORD property (R)
{$EXTERNALSYM CM_DRP_CAPABILITIES}
CM_DRP_UI_NUMBER = $00000011; // UiNumber REG_DWORD property (R)
{$EXTERNALSYM CM_DRP_UI_NUMBER}
CM_DRP_UPPERFILTERS = $00000012; // UpperFilters REG_MULTI_SZ property (RW)
{$EXTERNALSYM CM_DRP_UPPERFILTERS}
CM_DRP_LOWERFILTERS = $00000013; // LowerFilters REG_MULTI_SZ property (RW)
{$EXTERNALSYM CM_DRP_LOWERFILTERS}
CM_DRP_BUSTYPEGUID = $00000014; // Bus Type Guid, GUID, (R)
{$EXTERNALSYM CM_DRP_BUSTYPEGUID}
CM_DRP_LEGACYBUSTYPE = $00000015; // Legacy bus type, INTERFACE_TYPE, (R)
{$EXTERNALSYM CM_DRP_LEGACYBUSTYPE}
CM_DRP_BUSNUMBER = $00000016; // Bus Number, DWORD, (R)
{$EXTERNALSYM CM_DRP_BUSNUMBER}
CM_DRP_ENUMERATOR_NAME = $00000017; // Enumerator Name REG_SZ property (R)
{$EXTERNALSYM CM_DRP_ENUMERATOR_NAME}
CM_DRP_SECURITY = $00000018; // Security - Device override (RW)
{$EXTERNALSYM CM_DRP_SECURITY}
CM_CRP_SECURITY = CM_DRP_SECURITY; // Class default security (RW)
{$EXTERNALSYM CM_CRP_SECURITY}
CM_DRP_SECURITY_SDS = $00000019; // Security - Device override (RW)
{$EXTERNALSYM CM_DRP_SECURITY_SDS}
CM_CRP_SECURITY_SDS = CM_DRP_SECURITY_SDS; // Class default security (RW)
{$EXTERNALSYM CM_CRP_SECURITY_SDS}
CM_DRP_DEVTYPE = $0000001A; // Device Type - Device override (RW)
{$EXTERNALSYM CM_DRP_DEVTYPE}
CM_CRP_DEVTYPE = CM_DRP_DEVTYPE; // Class default Device-type (RW)
{$EXTERNALSYM CM_CRP_DEVTYPE}
CM_DRP_EXCLUSIVE = $0000001B; // Exclusivity - Device override (RW)
{$EXTERNALSYM CM_DRP_EXCLUSIVE}
CM_CRP_EXCLUSIVE = CM_DRP_EXCLUSIVE; // Class default (RW)
{$EXTERNALSYM CM_CRP_EXCLUSIVE}
CM_DRP_CHARACTERISTICS = $0000001C; // Characteristics - Device Override (RW)
{$EXTERNALSYM CM_DRP_CHARACTERISTICS}
CM_CRP_CHARACTERISTICS = CM_DRP_CHARACTERISTICS; // Class default (RW)
{$EXTERNALSYM CM_CRP_CHARACTERISTICS}
CM_DRP_ADDRESS = $0000001D; // Device Address (R)
{$EXTERNALSYM CM_DRP_ADDRESS}
CM_DRP_UI_NUMBER_DESC_FORMAT = $0000001E; // UINumberDescFormat REG_SZ property (RW)
{$EXTERNALSYM CM_DRP_UI_NUMBER_DESC_FORMAT}
CM_DRP_DEVICE_POWER_DATA = $0000001F; // CM_POWER_DATA REG_BINARY property (R)
{$EXTERNALSYM CM_DRP_DEVICE_POWER_DATA}
CM_DRP_REMOVAL_POLICY = $00000020; // CM_DEVICE_REMOVAL_POLICY REG_DWORD (R)
{$EXTERNALSYM CM_DRP_REMOVAL_POLICY}
CM_DRP_REMOVAL_POLICY_HW_DEFAULT = $00000021; // CM_DRP_REMOVAL_POLICY_HW_DEFAULT REG_DWORD (R)
{$EXTERNALSYM CM_DRP_REMOVAL_POLICY_HW_DEFAULT}
CM_DRP_REMOVAL_POLICY_OVERRIDE = $00000022; // CM_DRP_REMOVAL_POLICY_OVERRIDE REG_DWORD (RW)
{$EXTERNALSYM CM_DRP_REMOVAL_POLICY_OVERRIDE}
CM_DRP_INSTALL_STATE = $00000023; // CM_DRP_INSTALL_STATE REG_DWORD (R)
{$EXTERNALSYM CM_DRP_INSTALL_STATE}
CM_DRP_MIN = $00000001; // First device register
{$EXTERNALSYM CM_DRP_MIN}
CM_CRP_MIN = CM_DRP_MIN; // First class register
{$EXTERNALSYM CM_CRP_MIN}
CM_DRP_MAX = $00000023; // Last device register
{$EXTERNALSYM CM_DRP_MAX}
CM_CRP_MAX = CM_DRP_MAX; // Last class register
{$EXTERNALSYM CM_CRP_MAX}
//
// Capabilities bits (the capability value is returned from calling
// CM_Get_DevInst_Registry_Property with CM_DRP_CAPABILITIES property)
//
CM_DEVCAP_LOCKSUPPORTED = $00000001;
{$EXTERNALSYM CM_DEVCAP_LOCKSUPPORTED}
CM_DEVCAP_EJECTSUPPORTED = $00000002;
{$EXTERNALSYM CM_DEVCAP_EJECTSUPPORTED}
CM_DEVCAP_REMOVABLE = $00000004;
{$EXTERNALSYM CM_DEVCAP_REMOVABLE}
CM_DEVCAP_DOCKDEVICE = $00000008;
{$EXTERNALSYM CM_DEVCAP_DOCKDEVICE}
CM_DEVCAP_UNIQUEID = $00000010;
{$EXTERNALSYM CM_DEVCAP_UNIQUEID}
CM_DEVCAP_SILENTINSTALL = $00000020;
{$EXTERNALSYM CM_DEVCAP_SILENTINSTALL}
CM_DEVCAP_RAWDEVICEOK = $00000040;
{$EXTERNALSYM CM_DEVCAP_RAWDEVICEOK}
CM_DEVCAP_SURPRISEREMOVALOK = $00000080;
{$EXTERNALSYM CM_DEVCAP_SURPRISEREMOVALOK}
CM_DEVCAP_HARDWAREDISABLED = $00000100;
{$EXTERNALSYM CM_DEVCAP_HARDWAREDISABLED}
CM_DEVCAP_NONDYNAMIC = $00000200;
{$EXTERNALSYM CM_DEVCAP_NONDYNAMIC}
//
// Removal policies (retrievable via CM_Get_DevInst_Registry_Property with
// the CM_DRP_REMOVAL_POLICY, CM_DRP_REMOVAL_POLICY_OVERRIDE, or
// CM_DRP_REMOVAL_POLICY_HW_DEFAULT properties)
//
CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL = 1;
{$EXTERNALSYM CM_REMOVAL_POLICY_EXPECT_NO_REMOVAL}
CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL = 2;
{$EXTERNALSYM CM_REMOVAL_POLICY_EXPECT_ORDERLY_REMOVAL}
CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL = 3;
{$EXTERNALSYM CM_REMOVAL_POLICY_EXPECT_SURPRISE_REMOVAL}
//
// Device install states (retrievable via CM_Get_DevInst_Registry_Property with
// the CM_DRP_INSTALL_STATE properties)
//
CM_INSTALL_STATE_INSTALLED = 0;
{$EXTERNALSYM CM_INSTALL_STATE_INSTALLED}
CM_INSTALL_STATE_NEEDS_REINSTALL = 1;
{$EXTERNALSYM CM_INSTALL_STATE_NEEDS_REINSTALL}
CM_INSTALL_STATE_FAILED_INSTALL = 2;
{$EXTERNALSYM CM_INSTALL_STATE_FAILED_INSTALL}
CM_INSTALL_STATE_FINISH_INSTALL = 3;
{$EXTERNALSYM CM_INSTALL_STATE_FINISH_INSTALL}
//
// Flags for CM_Locate_DevNode
//
CM_LOCATE_DEVNODE_NORMAL = $00000000;
{$EXTERNALSYM CM_LOCATE_DEVNODE_NORMAL}
CM_LOCATE_DEVNODE_PHANTOM = $00000001;
{$EXTERNALSYM CM_LOCATE_DEVNODE_PHANTOM}
CM_LOCATE_DEVNODE_CANCELREMOVE = $00000002;
{$EXTERNALSYM CM_LOCATE_DEVNODE_CANCELREMOVE}
CM_LOCATE_DEVNODE_NOVALIDATION = $00000004;
{$EXTERNALSYM CM_LOCATE_DEVNODE_NOVALIDATION}
CM_LOCATE_DEVNODE_BITS = $00000007;
{$EXTERNALSYM CM_LOCATE_DEVNODE_BITS}
CM_LOCATE_DEVINST_NORMAL = CM_LOCATE_DEVNODE_NORMAL;
{$EXTERNALSYM CM_LOCATE_DEVINST_NORMAL}
CM_LOCATE_DEVINST_PHANTOM = CM_LOCATE_DEVNODE_PHANTOM;
{$EXTERNALSYM CM_LOCATE_DEVINST_PHANTOM}
CM_LOCATE_DEVINST_CANCELREMOVE = CM_LOCATE_DEVNODE_CANCELREMOVE;
{$EXTERNALSYM CM_LOCATE_DEVINST_CANCELREMOVE}
CM_LOCATE_DEVINST_NOVALIDATION = CM_LOCATE_DEVNODE_NOVALIDATION;
{$EXTERNALSYM CM_LOCATE_DEVINST_NOVALIDATION}
CM_LOCATE_DEVINST_BITS = CM_LOCATE_DEVNODE_BITS;
{$EXTERNALSYM CM_LOCATE_DEVINST_BITS}
//
// Flags for CM_Open_Class_Key
//
CM_OPEN_CLASS_KEY_INSTALLER = $00000000;
{$EXTERNALSYM CM_OPEN_CLASS_KEY_INSTALLER}
CM_OPEN_CLASS_KEY_INTERFACE = $00000001;
{$EXTERNALSYM CM_OPEN_CLASS_KEY_INTERFACE}
CM_OPEN_CLASS_KEY_BITS = $00000001;
{$EXTERNALSYM CM_OPEN_CLASS_KEY_BITS}
//
// Flags for CM_Query_And_Remove_SubTree
//
CM_REMOVE_UI_OK = $00000000;
{$EXTERNALSYM CM_REMOVE_UI_OK}
CM_REMOVE_UI_NOT_OK = $00000001;
{$EXTERNALSYM CM_REMOVE_UI_NOT_OK}
CM_REMOVE_NO_RESTART = $00000002;
{$EXTERNALSYM CM_REMOVE_NO_RESTART}
CM_REMOVE_BITS = $00000003;
{$EXTERNALSYM CM_REMOVE_BITS}
//
// Backward compatibility--do not use
// (use above CM_REMOVE_* flags instead)
//
CM_QUERY_REMOVE_UI_OK = CM_REMOVE_UI_OK;
{$EXTERNALSYM CM_QUERY_REMOVE_UI_OK}
CM_QUERY_REMOVE_UI_NOT_OK = CM_REMOVE_UI_NOT_OK;
{$EXTERNALSYM CM_QUERY_REMOVE_UI_NOT_OK}
CM_QUERY_REMOVE_BITS = CM_QUERY_REMOVE_UI_OK or CM_QUERY_REMOVE_UI_NOT_OK;
{$EXTERNALSYM CM_QUERY_REMOVE_BITS}
//
// Flags for CM_Reenumerate_DevNode
//
CM_REENUMERATE_NORMAL = $00000000;
{$EXTERNALSYM CM_REENUMERATE_NORMAL}
CM_REENUMERATE_SYNCHRONOUS = $00000001;
{$EXTERNALSYM CM_REENUMERATE_SYNCHRONOUS}
CM_REENUMERATE_RETRY_INSTALLATION = $00000002;
{$EXTERNALSYM CM_REENUMERATE_RETRY_INSTALLATION}
CM_REENUMERATE_ASYNCHRONOUS = $00000004;
{$EXTERNALSYM CM_REENUMERATE_ASYNCHRONOUS}
CM_REENUMERATE_BITS = $00000007;
{$EXTERNALSYM CM_REENUMERATE_BITS}
//
// Flags for CM_Register_Device_Driver
//
CM_REGISTER_DEVICE_DRIVER_STATIC = $00000000;
{$EXTERNALSYM CM_REGISTER_DEVICE_DRIVER_STATIC}
CM_REGISTER_DEVICE_DRIVER_DISABLEABLE = $00000001;
{$EXTERNALSYM CM_REGISTER_DEVICE_DRIVER_DISABLEABLE}
CM_REGISTER_DEVICE_DRIVER_REMOVABLE = $00000002;
{$EXTERNALSYM CM_REGISTER_DEVICE_DRIVER_REMOVABLE}
CM_REGISTER_DEVICE_DRIVER_BITS = $00000003;
{$EXTERNALSYM CM_REGISTER_DEVICE_DRIVER_BITS}
//
// Registry Branch Locations (for CM_Open_DevNode_Key)
//
CM_REGISTRY_HARDWARE = $00000000;
{$EXTERNALSYM CM_REGISTRY_HARDWARE}
CM_REGISTRY_SOFTWARE = $00000001;
{$EXTERNALSYM CM_REGISTRY_SOFTWARE}
CM_REGISTRY_USER = $00000100;
{$EXTERNALSYM CM_REGISTRY_USER}
CM_REGISTRY_CONFIG = $00000200;
{$EXTERNALSYM CM_REGISTRY_CONFIG}
CM_REGISTRY_BITS = $00000301;
{$EXTERNALSYM CM_REGISTRY_BITS}
//
// Flags for CM_Set_DevNode_Problem
//
CM_SET_DEVNODE_PROBLEM_NORMAL = $00000000; // only set problem if currently no problem
{$EXTERNALSYM CM_SET_DEVNODE_PROBLEM_NORMAL}
CM_SET_DEVNODE_PROBLEM_OVERRIDE = $00000001; // override current problem with new problem
{$EXTERNALSYM CM_SET_DEVNODE_PROBLEM_OVERRIDE}
CM_SET_DEVNODE_PROBLEM_BITS = $00000001;
{$EXTERNALSYM CM_SET_DEVNODE_PROBLEM_BITS}
CM_SET_DEVINST_PROBLEM_NORMAL = CM_SET_DEVNODE_PROBLEM_NORMAL;
{$EXTERNALSYM CM_SET_DEVINST_PROBLEM_NORMAL}
CM_SET_DEVINST_PROBLEM_OVERRIDE = CM_SET_DEVNODE_PROBLEM_OVERRIDE;
{$EXTERNALSYM CM_SET_DEVINST_PROBLEM_OVERRIDE}
CM_SET_DEVINST_PROBLEM_BITS = CM_SET_DEVNODE_PROBLEM_BITS;
{$EXTERNALSYM CM_SET_DEVINST_PROBLEM_BITS}
//
// Flags for CM_Set_HW_Prof_Flags
//
CM_SET_HW_PROF_FLAGS_UI_NOT_OK = $00000001; // Don't popup any veto UI
{$EXTERNALSYM CM_SET_HW_PROF_FLAGS_UI_NOT_OK}
CM_SET_HW_PROF_FLAGS_BITS = $00000001;
{$EXTERNALSYM CM_SET_HW_PROF_FLAGS_BITS}
//
// Re-enable and configuration actions (specified in call to CM_Setup_DevInst)
//
CM_SETUP_DEVNODE_READY = $00000000; // Reenable problem devinst
{$EXTERNALSYM CM_SETUP_DEVNODE_READY}
CM_SETUP_DEVINST_READY = CM_SETUP_DEVNODE_READY;
{$EXTERNALSYM CM_SETUP_DEVINST_READY}
CM_SETUP_DOWNLOAD = $00000001; // Get info about devinst
{$EXTERNALSYM CM_SETUP_DOWNLOAD}
CM_SETUP_WRITE_LOG_CONFS = $00000002;
{$EXTERNALSYM CM_SETUP_WRITE_LOG_CONFS}
CM_SETUP_PROP_CHANGE = $00000003;
{$EXTERNALSYM CM_SETUP_PROP_CHANGE}
CM_SETUP_DEVNODE_RESET = $00000004; // Reset problem devinst without starting
{$EXTERNALSYM CM_SETUP_DEVNODE_RESET}
CM_SETUP_DEVINST_RESET = CM_SETUP_DEVNODE_RESET;
{$EXTERNALSYM CM_SETUP_DEVINST_RESET}
CM_SETUP_BITS = $00000007;
{$EXTERNALSYM CM_SETUP_BITS}
//
// Flags for CM_Query_Arbitrator_Free_Data and
// CM_Query_Arbitrator_Free_Data_Size.
//
CM_QUERY_ARBITRATOR_RAW = $00000000;
{$EXTERNALSYM CM_QUERY_ARBITRATOR_RAW}
CM_QUERY_ARBITRATOR_TRANSLATED = $00000001;
{$EXTERNALSYM CM_QUERY_ARBITRATOR_TRANSLATED}
CM_QUERY_ARBITRATOR_BITS = $00000001;
{$EXTERNALSYM CM_QUERY_ARBITRATOR_BITS}
//
// Flags for CM_Get_DevNode_Custom_Property
//
CM_CUSTOMDEVPROP_MERGE_MULTISZ = $00000001;
{$EXTERNALSYM CM_CUSTOMDEVPROP_MERGE_MULTISZ}
CM_CUSTOMDEVPROP_BITS = $00000001;
{$EXTERNALSYM CM_CUSTOMDEVPROP_BITS}
//--------------------------------------------------------------
// Function prototypes
//--------------------------------------------------------------
{$IFNDEF CFGMGR32_LINKONREQUEST}
function CM_Add_Empty_Log_Conf(var lcLogConf: LOG_CONF;
dnDevInst: DEVINST; Priority: PRIORITY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_Empty_Log_Conf_Ex(var lcLogConf: LOG_CONF;
dnDevInst: DEVINST; Priority: PRIORITY; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Add_IDA(dnDevInst: DEVINST; pszID: PAnsiChar;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_IDW(dnDevInst: DEVINST; pszID: PWideChar;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_ID(dnDevInst: DEVINST; pszID: PTSTR;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_ID_ExA(dnDevInst: DEVINST; pszID: PAnsiChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Add_ID_ExW(dnDevInst: DEVINST; pszID: PWideChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Add_ID_Ex(dnDevInst: DEVINST; pszID: PTSTR;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Add_Range(ullStartValue: DWORDLONG;
ullEndValue: DWORDLONG; rlh: RANGE_LIST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_Res_Des(var rdResDes: RES_DES; lcLogConf: LOG_CONF;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Add_Res_Des_Ex(var rdResDes: RES_DES;
lcLogConf: LOG_CONF; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Connect_MachineA(const UNCServerName: PAnsiChar;
var hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Connect_MachineW(const UNCServerName: PWideChar;
var hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Connect_Machine(const UNCServerName: PTSTR;
var hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevNodeA(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevNodeW(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevNode(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevNode_ExA(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevNode_ExW(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevNode_Ex(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevInstA(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevInstW(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevInst(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Create_DevInst_ExA(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevInst_ExW(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_DevInst_Ex(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Create_Range_List(var rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Delete_Class_Key(ClassGuid: PGUID; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Delete_Class_Key_Ex(ClassGuid: PGUID; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Delete_DevNode_Key(dnDevNode: DEVNODE;
ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Delete_DevNode_Key_Ex(dnDevNode: DEVNODE;
ulHardwareProfile: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Delete_DevInst_Key(dnDevNode: DEVINST;
ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Delete_DevInst_Key_Ex(dnDevNode: DEVINST; ulHardwareProfile: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Delete_Range(ullStartValue: DWORDLONG; ullEndValue: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Detect_Resource_Conflict(dnDevInst: DEVINST;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
var bConflictDetected: BOOL; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Detect_Resource_Conflict_Ex(dnDevInst: DEVINST;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
var bConflictDetected: BOOL; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Disable_DevNode(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Disable_DevNode_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Disable_DevInst(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Disable_DevInst_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Disconnect_Machine(hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Dup_Range_List(rlhOld: RANGE_LIST; rlhNew: RANGE_LIST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enable_DevNode(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enable_DevNode_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Enable_DevInst(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enable_DevInst_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Enumerate_Classes(ulClassIndex: ULONG;
var ClassGuid: TGUID; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enumerate_Classes_Ex(ulClassIndex: ULONG; var ClassGuid: TGUID;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Enumerate_EnumeratorsA(ulEnumIndex: ULONG; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enumerate_EnumeratorsW(ulEnumIndex: ULONG; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enumerate_Enumerators(ulEnumIndex: ULONG; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Enumerate_Enumerators_ExA(ulEnumIndex: ULONG; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Enumerate_Enumerators_ExW(ulEnumIndex: ULONG; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Enumerate_Enumerators_Ex(ulEnumIndex: ULONG; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Find_Range(var pullStart: DWORDLONG; ullStart: DWORDLONG;
ulLength: ULONG; ullAlignment: DWORDLONG; ullEnd: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_First_Range(rlh: RANGE_LIST; var ullStart: DWORDLONG;
var ullEnd: DWORDLONG; preElement: PRANGE_ELEMENT;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Free_Log_Conf(lcLogConfToBeFreed: LOG_CONF;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Free_Log_Conf_Ex(lcLogConfToBeFreed: LOG_CONF;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Free_Log_Conf_Handle(lcLogConf: LOG_CONF): CONFIGRET; stdcall;
function CM_Free_Range_List(rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Free_Res_Des(prdResDes: PRES_DES;
rdResDes: RES_DES; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Free_Res_Des_Ex(prdResDes: PRES_DES; rdResDes: RES_DES;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Free_Res_Des_Handle(rdResDes: RES_DES): CONFIGRET; stdcall;
function CM_Get_Child(var dnDevInstChild: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Child_Ex(var dnDevInstChild: DEVINST; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_NameA(ClassGuid: PGUID; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_NameW(ClassGuid: PGUID; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_Name(ClassGuid: PGUID; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_Name_ExA(ClassGuid: PGUID; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Name_ExW(ClassGuid: PGUID; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Name_Ex(ClassGuid: PGUID; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Key_NameA(ClassGuid: PGUID; pszKeyName: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_Key_NameW(ClassGuid: PGUID; pszKeyName: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_Key_Name(ClassGuid: PGUID; pszKeyName: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Class_Key_Name_ExA(ClassGuid: PGUID; pszKeyName: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Key_Name_ExW(ClassGuid: PGUID; pszKeyName: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Key_Name_Ex(ClassGuid: PGUID; pszKeyName: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Depth(var ulDepth: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Depth_Ex(var ulDepth: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_IDA(dnDevInst: DEVINST; Buffer: PAnsiChar;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_IDW(dnDevInst: DEVINST; Buffer: PWideChar;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID(dnDevInst: DEVINST; Buffer: PTSTR;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_ExA(dnDevInst: DEVINST; Buffer: PAnsiChar;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_ExW(dnDevInst: DEVINST; Buffer: PWideChar;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_Ex(dnDevInst: DEVINST; Buffer: PTSTR;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_ListA(const pszFilter: PAnsiChar; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_ListW(const pszFilter: PWideChar; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_List(const pszFilter: PTSTR; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_ExA(const pszFilter: PAnsiChar; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_ExW(const pszFilter: PWideChar; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_Ex(const pszFilter: PTSTR; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_SizeA(var ulLen: ULONG;
const pszFilter: PAnsiChar; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_SizeW(var ulLen: ULONG;
const pszFilter: PWideChar; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_Size(var pulLen: ULONG;
const pszFilter: PTSTR; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_Size_ExA(var ulLen: ULONG;
const pszFilter: PAnsiChar; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_Size_ExW(var ulLen: ULONG;
const pszFilter: PWideChar; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_List_Size_Ex(var ulLen: ULONG;
const pszFilter: PTSTR; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_ID_Size(var ulLen: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_ID_Size_Ex(var ulLen: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_PropertyA(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_PropertyW(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_Property(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_Property_ExA(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_Property_ExW(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevNode_Registry_Property_Ex(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_PropertyA(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_PropertyW(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_Property(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_Property_ExA(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_Property_ExW(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Registry_Property_Ex(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WINXP_UP}
function CM_Get_DevNode_Custom_PropertyA(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Custom_PropertyW(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Custom_Property(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Custom_Property_ExA(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevNode_Custom_Property_ExW(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevNode_Custom_Property_Ex(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_PropertyA(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_PropertyW(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_Property(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_Property_ExA(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_Property_ExW(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Custom_Property_Ex(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WINXP_UP}
function CM_Get_DevNode_Status(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevInst_Status(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_DevNode_Status_Ex(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_DevInst_Status_Ex(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_First_Log_Conf(plcLogConf: PLOG_CONF; // OPTIONAL
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_First_Log_Conf_Ex(plcLogConf: PLOG_CONF; // OPTIONAL
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Global_State(var ulState: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Global_State_Ex(var ulState: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_InfoA(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_A; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_InfoW(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_W; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_Info(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_Info_ExA(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_A; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_Info_ExW(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_W; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Hardware_Profile_Info_Ex(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_HW_Prof_FlagsA(szDevInstName: DEVINSTID_A;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_HW_Prof_FlagsW(szDevInstName: DEVINSTID_W;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_HW_Prof_Flags(szDevInstName: DEVINSTID;
ulHardwareProfile: ULONG; var ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_HW_Prof_Flags_ExA(szDevInstName: DEVINSTID_A;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_HW_Prof_Flags_ExW(szDevInstName: DEVINSTID_W;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_HW_Prof_Flags_Ex(szDevInstName: DEVINSTID;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
function CM_Get_Device_Interface_AliasA(const pszDeviceInterface: PAnsiChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_AliasW(const pszDeviceInterface: PWideChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_Alias(const pszDeviceInterface: PTSTR;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_Alias_ExA(const pszDeviceInterface: PAnsiChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_Alias_ExW(const pszDeviceInterface: PWideChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_Alias_Ex(const pszDeviceInterface: PTSTR;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_ListA(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_A; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_ListW(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_W; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_ExA(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_A; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_ExW(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_W; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_Ex(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_SizeA(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_SizeW(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_Size(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_Size_ExA(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_Size_ExW(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Device_Interface_List_Size_Ex(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Log_Conf_Priority(lcLogConf: LOG_CONF;
var Priority: PRIORITY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Log_Conf_Priority_Ex(lcLogConf: LOG_CONF;
var Priority: PRIORITY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
function CM_Get_Next_Log_Conf(plcLogConf: PLOG_CONF; // OPTIONAL
lcLogConf: LOG_CONF; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Next_Log_Conf_Ex(plcLogConf: PLOG_CONF; // OPTIONAL
lcLogConf: LOG_CONF; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Parent(var dnDevInstParent: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Parent_Ex(var dnDevInstParent: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Res_Des_Data(rdResDes: RES_DES; Buffer: Pointer;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Res_Des_Data_Ex(rdResDes: RES_DES; Buffer: Pointer;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Res_Des_Data_Size(var ulSize: ULONG; rdResDes: RES_DES;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Res_Des_Data_Size_Ex(var ulSize: ULONG; rdResDes: RES_DES;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Sibling(var dnDevInstSibling: DEVINST;
DevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Sibling_Ex(var dnDevInstSibling: DEVINST;
DevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Version: WORD; stdcall;
function CM_Get_Version_Ex(hMachine: HMACHINE): WORD; stdcall;
{$IFDEF WINXP_UP}
function CM_Is_Version_Available(wVersion: WORD): BOOL; stdcall;
function CM_Is_Version_Available_Ex(wVersion: WORD;
hMachine: HMACHINE): BOOL; stdcall;
{$ENDIF WINXP_UP}
function CM_Intersect_Range_List(rlhOld1: RANGE_LIST;rlhOld2: RANGE_LIST;
rlhNew: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Invert_Range_List(rlhOld: RANGE_LIST; rlhNew: RANGE_LIST;
ullMaxValue: DWORDLONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevNodeA(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevNodeW(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevNode(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevNode_ExA(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Locate_DevNode_ExW(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Locate_DevNode_Ex(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Locate_DevInstA(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevInstW(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevInst(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Locate_DevInst_ExA(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Locate_DevInst_ExW(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Locate_DevInst_Ex(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Merge_Range_List(rlhOld1: RANGE_LIST; rlhOld2: RANGE_LIST;
rlhNew: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Modify_Res_Des(var rdResDesModified: RES_DES;
rdResDes: RES_DES; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Modify_Res_Des_Ex(var rdResDesModified: RES_DES;
rdResDes: RES_DES; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Move_DevNode(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Move_DevInst(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Move_DevNode_Ex(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Move_DevInst_Ex(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Next_Range(var reElement: RANGE_ELEMENT;
var ullStart: DWORDLONG; var ullEnd: DWORDLONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Next_Res_Des(var rdResDesNext: RES_DES;
rdResDes: RES_DES; ForResource: RESOURCEID; var ResourceID: RESOURCEID;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Get_Next_Res_Des_Ex(var rdResDesNext: RES_DES;
rdResDes: RES_DES; ForResource: RESOURCEID; var ResourceID: RESOURCEID;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Open_Class_KeyA(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PAnsiChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Open_Class_KeyW(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PWideChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Open_Class_Key(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PTSTR; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Open_Class_Key_ExA(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PAnsiChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Open_Class_Key_ExW(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PWideChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Open_Class_Key_Ex(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PTSTR; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Open_DevNode_Key(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION;
var hkDevice: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Open_DevInst_Key(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION;
var hkDevice: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Open_DevNode_Key_Ex(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION; var hkDevice: HKEY;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Open_DevInst_Key_Ex(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION; var hkDevice: HKEY;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Query_Arbitrator_Free_Data(pData: Pointer; DataLen: ULONG;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_Arbitrator_Free_Data_Ex(pData: Pointer; DataLen: ULONG;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Query_Arbitrator_Free_Size(var ulSize: ULONG; dnDevInst: DEVINST;
ResourceID: RESOURCEID; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_Arbitrator_Free_Size_Ex(var ulSize: ULONG; dnDevInst: DEVINST;
ResourceID: RESOURCEID; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Query_Remove_SubTree(dnAncestor: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_Remove_SubTree_Ex(dnAncestor: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WIN2000_UP}
function CM_Query_And_Remove_SubTreeA(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_And_Remove_SubTreeW(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_And_Remove_SubTree(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Query_And_Remove_SubTree_ExA(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Query_And_Remove_SubTree_ExW(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Query_And_Remove_SubTree_Ex(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Request_Device_EjectA(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Request_Device_EjectW(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Request_Device_Eject(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Request_Device_Eject_ExA(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Request_Device_Eject_ExW(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Request_Device_Eject_Ex(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
function CM_Reenumerate_DevNode(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Reenumerate_DevInst(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Reenumerate_DevNode_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Reenumerate_DevInst_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
function CM_Register_Device_InterfaceA(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PAnsiChar; // OPTIONAL
pszDeviceInterface: PAnsiChar; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Register_Device_InterfaceW(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PWideChar; // OPTIONAL
pszDeviceInterface: PWideChar; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Register_Device_Interface(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PTSTR; // OPTIONAL
pszDeviceInterface: PTSTR; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Register_Device_Interface_ExA(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PAnsiChar; // OPTIONAL
pszDeviceInterface: PAnsiChar; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Register_Device_Interface_ExW(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PWideChar; // OPTIONAL
pszDeviceInterface: PWideChar; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Register_Device_Interface_Ex(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PTSTR; // OPTIONAL
pszDeviceInterface: PTSTR; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevNode_Problem_Ex(dnDevInst: DEVINST;
ulProblem: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevInst_Problem_Ex(dnDevInst: DEVINST;
ulProblem: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevNode_Problem(dnDevInst: DEVINST; ulProblem: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevInst_Problem(dnDevInst: DEVINST; ulProblem: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Unregister_Device_InterfaceA(const pszDeviceInterface: PAnsiChar;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Unregister_Device_InterfaceW(const pszDeviceInterface: PWideChar;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Unregister_Device_Interface(const pszDeviceInterface: PTSTR;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Unregister_Device_Interface_ExA(const pszDeviceInterface: PAnsiChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Unregister_Device_Interface_ExW(const pszDeviceInterface: PWideChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Unregister_Device_Interface_Ex(const pszDeviceInterface: PTSTR;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Register_Device_Driver(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Register_Device_Driver_Ex(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
function CM_Remove_SubTree(dnAncestor: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Remove_SubTree_Ex(dnAncestor: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_PropertyA(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_PropertyW(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_Property(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_Property_ExA(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_Property_ExW(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevNode_Registry_Property_Ex(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_PropertyA(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_PropertyW(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_Property(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_Property_ExA(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_Property_ExW(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_DevInst_Registry_Property_Ex(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
function CM_Is_Dock_Station_Present(var bPresent: BOOL): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
function CM_Is_Dock_Station_Present_Ex(var bPresent: BOOL;
hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
function CM_Request_Eject_PC: CONFIGRET; stdcall;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
function CM_Request_Eject_PC_Ex(hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
function CM_Set_HW_Prof_FlagsA(szDevInstName: DEVINSTID_A;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_HW_Prof_FlagsW(szDevInstName: DEVINSTID_W;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_HW_Prof_Flags(szDevInstName: DEVINSTID;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_HW_Prof_Flags_ExA(szDevInstName: DEVINSTID_A;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_HW_Prof_Flags_ExW(szDevInstName: DEVINSTID_W;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_HW_Prof_Flags_Ex(szDevInstName: DEVINSTID;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Setup_DevNode(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Setup_DevInst(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Setup_DevNode_Ex(dnDevInst: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Setup_DevInst_Ex(dnDevInst: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Test_Range_Available(ullStartValue: DWORDLONG; ullEndValue: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Uninstall_DevNode(dnPhantom: DEVNODE; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Uninstall_DevInst(dnPhantom: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Uninstall_DevNode_Ex(dnPhantom: DEVNODE; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Uninstall_DevInst_Ex(dnPhantom: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Run_Detection(ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Run_Detection_Ex(ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_HW_Prof(ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
function CM_Set_HW_Prof_Ex(ulHardwareProfile: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WIN2000_UP}
function CM_Query_Resource_Conflict_List(var clConflictList: CONFLICT_LIST;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Free_Resource_Conflict_Handle(clConflictList: CONFLICT_LIST): CONFIGRET; stdcall;
function CM_Get_Resource_Conflict_Count(clConflictList: CONFLICT_LIST;
var ulCount: ULONG): CONFIGRET; stdcall;
function CM_Get_Resource_Conflict_DetailsA(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS_A): CONFIGRET; stdcall;
function CM_Get_Resource_Conflict_DetailsW(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS_W): CONFIGRET; stdcall;
function CM_Get_Resource_Conflict_Details(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS): CONFIGRET; stdcall;
function CM_Get_Class_Registry_PropertyA(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Registry_PropertyW(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Get_Class_Registry_Property(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_Class_Registry_PropertyA(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_Class_Registry_PropertyW(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_Set_Class_Registry_Property(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
function CM_WaitNoPendingInstallEvents(dwTimeout: DWORD): DWORD; stdcall;
function CMP_WaitNoPendingInstallEvents(dwTimeout: DWORD): DWORD; stdcall;
{$ENDIF WIN2000_UP}
{$ELSE}
type
TCM_Add_Empty_Log_Conf = function(var lcLogConf: LOG_CONF;
dnDevInst: DEVINST; Priority: PRIORITY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_Empty_Log_Conf_Ex = function(var lcLogConf: LOG_CONF;
dnDevInst: DEVINST; Priority: PRIORITY; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Add_IDA = function(dnDevInst: DEVINST; pszID: PAnsiChar;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_IDW = function(dnDevInst: DEVINST; pszID: PWideChar;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_ID = function(dnDevInst: DEVINST; pszID: PTSTR;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_ID_ExA = function(dnDevInst: DEVINST; pszID: PAnsiChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Add_ID_ExW = function(dnDevInst: DEVINST; pszID: PWideChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Add_ID_Ex = function(dnDevInst: DEVINST; pszID: PTSTR;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Add_Range = function(ullStartValue: DWORDLONG;
ullEndValue: DWORDLONG; rlh: RANGE_LIST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_Res_Des = function(var rdResDes: RES_DES; lcLogConf: LOG_CONF;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Add_Res_Des_Ex = function(var rdResDes: RES_DES;
lcLogConf: LOG_CONF; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Connect_MachineA = function(const UNCServerName: PAnsiChar;
var hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Connect_MachineW = function(const UNCServerName: PWideChar;
var hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Connect_Machine = function(const UNCServerName: PTSTR;
var hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevNodeA = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevNodeW = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevNode = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevNode_ExA = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevNode_ExW = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevNode_Ex = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevInstA = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevInstW = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevInst = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Create_DevInst_ExA = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_A;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevInst_ExW = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID_W;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_DevInst_Ex = function(var dnDevInst: DEVINST; pDeviceID: DEVINSTID;
dnParent: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Create_Range_List = function(var rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Delete_Class_Key = function(ClassGuid: PGUID; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Delete_Class_Key_Ex = function(ClassGuid: PGUID; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Delete_DevNode_Key = function(dnDevNode: DEVNODE;
ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Delete_DevNode_Key_Ex = function(dnDevNode: DEVNODE;
ulHardwareProfile: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Delete_DevInst_Key = function(dnDevNode: DEVINST;
ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Delete_DevInst_Key_Ex = function(dnDevNode: DEVINST; ulHardwareProfile: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Delete_Range = function(ullStartValue: DWORDLONG; ullEndValue: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Detect_Resource_Conflict = function(dnDevInst: DEVINST;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
var bConflictDetected: BOOL; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Detect_Resource_Conflict_Ex = function(dnDevInst: DEVINST;
ResourceID: RESOURCEID; ResourceData: Pointer; ResourceLen: ULONG;
var bConflictDetected: BOOL; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Disable_DevNode = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Disable_DevNode_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Disable_DevInst = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Disable_DevInst_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Disconnect_Machine = function(hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Dup_Range_List = function(rlhOld: RANGE_LIST; rlhNew: RANGE_LIST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enable_DevNode = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enable_DevNode_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Enable_DevInst = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enable_DevInst_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Enumerate_Classes = function(ulClassIndex: ULONG;
var ClassGuid: TGUID; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enumerate_Classes_Ex = function(ulClassIndex: ULONG; var ClassGuid: TGUID;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Enumerate_EnumeratorsA = function(ulEnumIndex: ULONG; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enumerate_EnumeratorsW = function(ulEnumIndex: ULONG; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enumerate_Enumerators = function(ulEnumIndex: ULONG; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Enumerate_Enumerators_ExA = function(ulEnumIndex: ULONG; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Enumerate_Enumerators_ExW = function(ulEnumIndex: ULONG; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Enumerate_Enumerators_Ex = function(ulEnumIndex: ULONG; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Find_Range = function(var pullStart: DWORDLONG; ullStart: DWORDLONG;
ulLength: ULONG; ullAlignment: DWORDLONG; ullEnd: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_First_Range = function(rlh: RANGE_LIST; var ullStart: DWORDLONG;
var ullEnd: DWORDLONG; preElement: PRANGE_ELEMENT;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Free_Log_Conf = function(lcLogConfToBeFreed: LOG_CONF;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Free_Log_Conf_Ex = function(lcLogConfToBeFreed: LOG_CONF;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Free_Log_Conf_Handle = function(lcLogConf: LOG_CONF): CONFIGRET; stdcall;
TCM_Free_Range_List = function(rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Free_Res_Des = function(prdResDes: PRES_DES;
rdResDes: RES_DES; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Free_Res_Des_Ex = function(prdResDes: PRES_DES; rdResDes: RES_DES;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Free_Res_Des_Handle = function(rdResDes: RES_DES): CONFIGRET; stdcall;
TCM_Get_Child = function(var dnDevInstChild: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Child_Ex = function(var dnDevInstChild: DEVINST; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_NameA = function(ClassGuid: PGUID; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_NameW = function(ClassGuid: PGUID; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_Name = function(ClassGuid: PGUID; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_Name_ExA = function(ClassGuid: PGUID; Buffer: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Name_ExW = function(ClassGuid: PGUID; Buffer: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Name_Ex = function(ClassGuid: PGUID; Buffer: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Key_NameA = function(ClassGuid: PGUID; pszKeyName: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_Key_NameW = function(ClassGuid: PGUID; pszKeyName: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_Key_Name = function(ClassGuid: PGUID; pszKeyName: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Class_Key_Name_ExA = function(ClassGuid: PGUID; pszKeyName: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Key_Name_ExW = function(ClassGuid: PGUID; pszKeyName: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Key_Name_Ex = function(ClassGuid: PGUID; pszKeyName: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Depth = function(var ulDepth: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Depth_Ex = function(var ulDepth: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_IDA = function(dnDevInst: DEVINST; Buffer: PAnsiChar;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_IDW = function(dnDevInst: DEVINST; Buffer: PWideChar;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID = function(dnDevInst: DEVINST; Buffer: PTSTR;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_ExA = function(dnDevInst: DEVINST; Buffer: PAnsiChar;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_ExW = function(dnDevInst: DEVINST; Buffer: PWideChar;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_Ex = function(dnDevInst: DEVINST; Buffer: PTSTR;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_ListA = function(const pszFilter: PAnsiChar; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_ListW = function(const pszFilter: PWideChar; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_List = function(const pszFilter: PTSTR; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_ExA = function(const pszFilter: PAnsiChar; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_ExW = function(const pszFilter: PWideChar; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_Ex = function(const pszFilter: PTSTR; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_SizeA = function(var ulLen: ULONG;
const pszFilter: PAnsiChar; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_SizeW = function(var ulLen: ULONG;
const pszFilter: PWideChar; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_Size = function(var pulLen: ULONG;
const pszFilter: PTSTR; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_Size_ExA = function(var ulLen: ULONG;
const pszFilter: PAnsiChar; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_Size_ExW = function(var ulLen: ULONG;
const pszFilter: PWideChar; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_List_Size_Ex = function(var ulLen: ULONG;
const pszFilter: PTSTR; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_ID_Size = function(var ulLen: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_ID_Size_Ex = function(var ulLen: ULONG; dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_PropertyA = function(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_PropertyW = function(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_Property = function(dnDevInst: DEVINST;
ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_Property_ExA = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_Property_ExW = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevNode_Registry_Property_Ex = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_PropertyA = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_PropertyW = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_Property = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_Property_ExA = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_Property_ExW = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Registry_Property_Ex = function(dnDevInst: DEVINST; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WINXP_UP}
TCM_Get_DevNode_Custom_PropertyA = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Custom_PropertyW = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Custom_Property = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Custom_Property_ExA = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevNode_Custom_Property_ExW = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevNode_Custom_Property_Ex = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_PropertyA = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_PropertyW = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_Property = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_Property_ExA = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PAnsiChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_Property_ExW = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PWideChar;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Custom_Property_Ex = function(dnDevInst: DEVINST;
const pszCustomPropertyName: PTSTR;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WINXP_UP}
TCM_Get_DevNode_Status = function(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevInst_Status = function(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_DevNode_Status_Ex = function(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_DevInst_Status_Ex = function(var ulStatus: ULONG; var ulProblemNumber: ULONG;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_First_Log_Conf = function(plcLogConf: PLOG_CONF; // OPTIONAL
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_First_Log_Conf_Ex = function(plcLogConf: PLOG_CONF; // OPTIONAL
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Global_State = function(var ulState: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Global_State_Ex = function(var ulState: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_InfoA = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_A; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_InfoW = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_W; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_Info = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_Info_ExA = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_A; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_Info_ExW = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO_W; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Hardware_Profile_Info_Ex = function(ulIndex: ULONG;
var HWProfileInfo: HWPROFILEINFO; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_HW_Prof_FlagsA = function(szDevInstName: DEVINSTID_A;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_HW_Prof_FlagsW = function(szDevInstName: DEVINSTID_W;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_HW_Prof_Flags = function(szDevInstName: DEVINSTID;
ulHardwareProfile: ULONG; var ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_HW_Prof_Flags_ExA = function(szDevInstName: DEVINSTID_A;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_HW_Prof_Flags_ExW = function(szDevInstName: DEVINSTID_W;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_HW_Prof_Flags_Ex = function(szDevInstName: DEVINSTID;
ulHardwareProfile: ULONG; var ulValue: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
TCM_Get_Device_Interface_AliasA = function(const pszDeviceInterface: PAnsiChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_AliasW = function(const pszDeviceInterface: PWideChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PWideChar;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_Alias = function(const pszDeviceInterface: PTSTR;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PTSTR;
var ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_Alias_ExA = function(const pszDeviceInterface: PAnsiChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PAnsiChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_Alias_ExW = function(const pszDeviceInterface: PWideChar;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PWideChar;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_Alias_Ex = function(const pszDeviceInterface: PTSTR;
AliasInterfaceGuid: PGUID; pszAliasDeviceInterface: PTSTR;
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_ListA = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_A; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_ListW = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_W; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_ExA = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_A; // OPTIONAL
Buffer: PAnsiChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_ExW = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID_W; // OPTIONAL
Buffer: PWideChar; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_Ex = function(InterfaceClassGuid: PGUID;
pDeviceID: DEVINSTID; // OPTIONAL
Buffer: PTSTR; BufferLen: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_SizeA = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_SizeW = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_Size = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_Size_ExA = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_Size_ExW = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Device_Interface_List_Size_Ex = function(var ulLen: ULONG;
InterfaceClassGuid: PGUID; pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Log_Conf_Priority = function(lcLogConf: LOG_CONF;
var Priority: PRIORITY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Log_Conf_Priority_Ex = function(lcLogConf: LOG_CONF;
var Priority: PRIORITY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
TCM_Get_Next_Log_Conf = function(plcLogConf: PLOG_CONF; // OPTIONAL
lcLogConf: LOG_CONF; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Next_Log_Conf_Ex = function(plcLogConf: PLOG_CONF; // OPTIONAL
lcLogConf: LOG_CONF; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Parent = function(var dnDevInstParent: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Parent_Ex = function(var dnDevInstParent: DEVINST;
dnDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Res_Des_Data = function(rdResDes: RES_DES; Buffer: Pointer;
BufferLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Res_Des_Data_Ex = function(rdResDes: RES_DES; Buffer: Pointer;
BufferLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Res_Des_Data_Size = function(var ulSize: ULONG; rdResDes: RES_DES;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Res_Des_Data_Size_Ex = function(var ulSize: ULONG; rdResDes: RES_DES;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Sibling = function(var dnDevInstSibling: DEVINST;
DevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Sibling_Ex = function(var dnDevInstSibling: DEVINST;
DevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Version = function: WORD; stdcall;
TCM_Get_Version_Ex = function(hMachine: HMACHINE): WORD; stdcall;
{$IFDEF WINXP_UP}
TCM_Is_Version_Available = function(wVersion: WORD): BOOL; stdcall;
TCM_Is_Version_Available_Ex = function(wVersion: WORD;
hMachine: HMACHINE): BOOL; stdcall;
{$ENDIF WINXP_UP}
TCM_Intersect_Range_List = function(rlhOld1: RANGE_LIST;rlhOld2: RANGE_LIST;
rlhNew: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Invert_Range_List = function(rlhOld: RANGE_LIST; rlhNew: RANGE_LIST;
ullMaxValue: DWORDLONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevNodeA = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevNodeW = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevNode = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevNode_ExA = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Locate_DevNode_ExW = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Locate_DevNode_Ex = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Locate_DevInstA = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevInstW = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevInst = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Locate_DevInst_ExA = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_A; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Locate_DevInst_ExW = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID_W; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Locate_DevInst_Ex = function(var dnDevInst: DEVINST;
pDeviceID: DEVINSTID; // OPTIONAL
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Merge_Range_List = function(rlhOld1: RANGE_LIST; rlhOld2: RANGE_LIST;
rlhNew: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Modify_Res_Des = function(var rdResDesModified: RES_DES;
rdResDes: RES_DES; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Modify_Res_Des_Ex = function(var rdResDesModified: RES_DES;
rdResDes: RES_DES; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Move_DevNode = function(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Move_DevInst = function(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Move_DevNode_Ex = function(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Move_DevInst_Ex = function(dnFromDevInst: DEVINST;
dnToDevInst: DEVINST; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Next_Range = function(var reElement: RANGE_ELEMENT;
var ullStart: DWORDLONG; var ullEnd: DWORDLONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Next_Res_Des = function(var rdResDesNext: RES_DES;
rdResDes: RES_DES; ForResource: RESOURCEID; var ResourceID: RESOURCEID;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Get_Next_Res_Des_Ex = function(var rdResDesNext: RES_DES;
rdResDes: RES_DES; ForResource: RESOURCEID; var ResourceID: RESOURCEID;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Open_Class_KeyA = function(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PAnsiChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Open_Class_KeyW = function(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PWideChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Open_Class_Key = function(ClassGuid: PGUID; // OPTIONAL
const pszClassName: PTSTR; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Open_Class_Key_ExA = function(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PAnsiChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Open_Class_Key_ExW = function(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PWideChar; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Open_Class_Key_Ex = function(pszClassGuid: PGUID; // OPTIONAL
const pszClassName: PTSTR; // OPTIONAL
samDesired: REGSAM; Disposition: REGDISPOSITION;
var hkClass: HKEY; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Open_DevNode_Key = function(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION;
var hkDevice: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Open_DevInst_Key = function(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION;
var hkDevice: HKEY; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Open_DevNode_Key_Ex = function(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION; var hkDevice: HKEY;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Open_DevInst_Key_Ex = function(dnDevNode: DEVINST; samDesired: REGSAM;
ulHardwareProfile: ULONG; Disposition: REGDISPOSITION; var hkDevice: HKEY;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Query_Arbitrator_Free_Data = function(pData: Pointer; DataLen: ULONG;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_Arbitrator_Free_Data_Ex = function(pData: Pointer; DataLen: ULONG;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Query_Arbitrator_Free_Size = function(var ulSize: ULONG; dnDevInst: DEVINST;
ResourceID: RESOURCEID; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_Arbitrator_Free_Size_Ex = function(var ulSize: ULONG; dnDevInst: DEVINST;
ResourceID: RESOURCEID; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Query_Remove_SubTree = function(dnAncestor: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_Remove_SubTree_Ex = function(dnAncestor: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WIN2000_UP}
TCM_Query_And_Remove_SubTreeA = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_And_Remove_SubTreeW = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_And_Remove_SubTree = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Query_And_Remove_SubTree_ExA = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Query_And_Remove_SubTree_ExW = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Query_And_Remove_SubTree_Ex = function(dnAncestor: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Request_Device_EjectA = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Request_Device_EjectW = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Request_Device_Eject = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Request_Device_Eject_ExA = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PAnsiChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Request_Device_Eject_ExW = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PWideChar; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Request_Device_Eject_Ex = function(dnDevInst: DEVINST;
pVetoType: PPNP_VETO_TYPE; // OPTIONAL
pszVetoName: PTSTR; // OPTIONAL
ulNameLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
TCM_Reenumerate_DevNode = function(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Reenumerate_DevInst = function(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Reenumerate_DevNode_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Reenumerate_DevInst_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
TCM_Register_Device_InterfaceA = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PAnsiChar; // OPTIONAL
pszDeviceInterface: PAnsiChar; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Register_Device_InterfaceW = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PWideChar; // OPTIONAL
pszDeviceInterface: PWideChar; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Register_Device_Interface = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PTSTR; // OPTIONAL
pszDeviceInterface: PTSTR; var ulLength: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Register_Device_Interface_ExA = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PAnsiChar; // OPTIONAL
pszDeviceInterface: PAnsiChar; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Register_Device_Interface_ExW = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PWideChar; // OPTIONAL
pszDeviceInterface: PWideChar; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Register_Device_Interface_Ex = function(dnDevInst: DEVINST;
InterfaceClassGuid: PGUID;
const pszReference: PTSTR; // OPTIONAL
pszDeviceInterface: PTSTR; var ulLength: ULONG;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevNode_Problem_Ex = function(dnDevInst: DEVINST;
ulProblem: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevInst_Problem_Ex = function(dnDevInst: DEVINST;
ulProblem: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevNode_Problem = function(dnDevInst: DEVINST; ulProblem: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevInst_Problem = function(dnDevInst: DEVINST; ulProblem: ULONG;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Unregister_Device_InterfaceA = function(const pszDeviceInterface: PAnsiChar;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Unregister_Device_InterfaceW = function(const pszDeviceInterface: PWideChar;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Unregister_Device_Interface = function(const pszDeviceInterface: PTSTR;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Unregister_Device_Interface_ExA = function(const pszDeviceInterface: PAnsiChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Unregister_Device_Interface_ExW = function(const pszDeviceInterface: PWideChar;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Unregister_Device_Interface_Ex = function(const pszDeviceInterface: PTSTR;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Register_Device_Driver = function(dnDevInst: DEVINST;
ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Register_Device_Driver_Ex = function(dnDevInst: DEVINST;
ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
TCM_Remove_SubTree = function(dnAncestor: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Remove_SubTree_Ex = function(dnAncestor: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_PropertyA = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_PropertyW = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_Property = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_Property_ExA = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_Property_ExW = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevNode_Registry_Property_Ex = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_PropertyA = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_PropertyW = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_Property = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_Property_ExA = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_Property_ExW = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_DevInst_Registry_Property_Ex = function(dnDevInst: DEVINST;
ulProperty: ULONG; Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFNDEF WINNT4}
TCM_Is_Dock_Station_Present = function(var bPresent: BOOL): CONFIGRET; stdcall;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
TCM_Is_Dock_Station_Present_Ex = function(var bPresent: BOOL;
hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
TCM_Request_Eject_PC = function: CONFIGRET; stdcall;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
TCM_Request_Eject_PC_Ex = function(hMachine: HMACHINE): CONFIGRET; stdcall;
{$ENDIF WIN2000_UP}
TCM_Set_HW_Prof_FlagsA = function(szDevInstName: DEVINSTID_A;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_HW_Prof_FlagsW = function(szDevInstName: DEVINSTID_W;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_HW_Prof_Flags = function(szDevInstName: DEVINSTID;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_HW_Prof_Flags_ExA = function(szDevInstName: DEVINSTID_A;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_HW_Prof_Flags_ExW = function(szDevInstName: DEVINSTID_W;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_HW_Prof_Flags_Ex = function(szDevInstName: DEVINSTID;
ulConfig: ULONG; ulValue: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Setup_DevNode = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Setup_DevInst = function(dnDevInst: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Setup_DevNode_Ex = function(dnDevInst: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Setup_DevInst_Ex = function(dnDevInst: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Test_Range_Available = function(ullStartValue: DWORDLONG; ullEndValue: DWORDLONG;
rlh: RANGE_LIST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Uninstall_DevNode = function(dnPhantom: DEVNODE; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Uninstall_DevInst = function(dnPhantom: DEVINST; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Uninstall_DevNode_Ex = function(dnPhantom: DEVNODE; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Uninstall_DevInst_Ex = function(dnPhantom: DEVINST; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Run_Detection = function(ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Run_Detection_Ex = function(ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_HW_Prof = function(ulHardwareProfile: ULONG; ulFlags: ULONG): CONFIGRET; stdcall;
TCM_Set_HW_Prof_Ex = function(ulHardwareProfile: ULONG; ulFlags: ULONG;
hMachine: HMACHINE): CONFIGRET; stdcall;
{$IFDEF WIN2000_UP}
TCM_Query_Resource_Conflict_List = function(var clConflictList: CONFLICT_LIST;
dnDevInst: DEVINST; ResourceID: RESOURCEID; ResourceData: Pointer;
ResourceLen: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Free_Resource_Conflict_Handle = function(clConflictList: CONFLICT_LIST): CONFIGRET; stdcall;
TCM_Get_Resource_Conflict_Count = function(clConflictList: CONFLICT_LIST;
var ulCount: ULONG): CONFIGRET; stdcall;
TCM_Get_Resource_Conflict_DetailsA = function(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS_A): CONFIGRET; stdcall;
TCM_Get_Resource_Conflict_DetailsW = function(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS_W): CONFIGRET; stdcall;
TCM_Get_Resource_Conflict_Details = function(clConflictList: CONFLICT_LIST;
ulIndex: ULONG; var ConflictDetails: CONFLICT_DETAILS): CONFIGRET; stdcall;
TCM_Get_Class_Registry_PropertyA = function(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Registry_PropertyW = function(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Get_Class_Registry_Property = function(ClassGUID: PGUID; ulProperty: ULONG;
pulRegDataType: PULONG; // OPTIONAL
Buffer: Pointer; // OPTIONAL
var ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_Class_Registry_PropertyA = function(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_Class_Registry_PropertyW = function(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_Set_Class_Registry_Property = function(ClassGUID: PGUID; ulProperty: ULONG;
Buffer: Pointer; // OPTIONAL
ulLength: ULONG; ulFlags: ULONG; hMachine: HMACHINE): CONFIGRET; stdcall;
TCM_WaitNoPendingInstallEvents = function(dwTimeout: DWORD): DWORD; stdcall;
TCMP_WaitNoPendingInstallEvents = function(dwTimeout: DWORD): DWORD; stdcall;
{$ENDIF WIN2000_UP}
var
CM_Add_Empty_Log_Conf: TCM_Add_Empty_Log_Conf;
CM_Add_Empty_Log_Conf_Ex: TCM_Add_Empty_Log_Conf_Ex;
CM_Add_IDA: TCM_Add_IDA;
CM_Add_IDW: TCM_Add_IDW;
CM_Add_ID: TCM_Add_ID;
CM_Add_ID_ExA: TCM_Add_ID_ExA;
CM_Add_ID_ExW: TCM_Add_ID_ExW;
CM_Add_ID_Ex: TCM_Add_ID_Ex;
CM_Add_Range: TCM_Add_Range;
CM_Add_Res_Des: TCM_Add_Res_Des;
CM_Add_Res_Des_Ex: TCM_Add_Res_Des_Ex;
CM_Connect_MachineA: TCM_Connect_MachineA;
CM_Connect_MachineW: TCM_Connect_MachineW;
CM_Connect_Machine: TCM_Connect_Machine;
CM_Create_DevNodeA: TCM_Create_DevNodeA;
CM_Create_DevNodeW: TCM_Create_DevNodeW;
CM_Create_DevNode: TCM_Create_DevNode;
CM_Create_DevNode_ExA: TCM_Create_DevNode_ExA;
CM_Create_DevNode_ExW: TCM_Create_DevNode_ExW;
CM_Create_DevNode_Ex: TCM_Create_DevNode_Ex;
CM_Create_DevInstA: TCM_Create_DevInstA;
CM_Create_DevInstW: TCM_Create_DevInstW;
CM_Create_DevInst: TCM_Create_DevInst;
CM_Create_DevInst_ExA: TCM_Create_DevInst_ExA;
CM_Create_DevInst_ExW: TCM_Create_DevInst_ExW;
CM_Create_DevInst_Ex: TCM_Create_DevInst_Ex;
CM_Create_Range_List: TCM_Create_Range_List;
CM_Delete_Class_Key: TCM_Delete_Class_Key;
CM_Delete_Class_Key_Ex: TCM_Delete_Class_Key_Ex;
CM_Delete_DevNode_Key: TCM_Delete_DevNode_Key;
CM_Delete_DevNode_Key_Ex: TCM_Delete_DevNode_Key_Ex;
CM_Delete_DevInst_Key: TCM_Delete_DevInst_Key;
CM_Delete_DevInst_Key_Ex: TCM_Delete_DevInst_Key_Ex;
CM_Delete_Range: TCM_Delete_Range;
CM_Detect_Resource_Conflict: TCM_Detect_Resource_Conflict;
CM_Detect_Resource_Conflict_Ex: TCM_Detect_Resource_Conflict_Ex;
CM_Disable_DevNode: TCM_Disable_DevNode;
CM_Disable_DevNode_Ex: TCM_Disable_DevNode_Ex;
CM_Disable_DevInst: TCM_Disable_DevInst;
CM_Disable_DevInst_Ex: TCM_Disable_DevInst_Ex;
CM_Disconnect_Machine: TCM_Disconnect_Machine;
CM_Dup_Range_List: TCM_Dup_Range_List;
CM_Enable_DevNode: TCM_Enable_DevNode;
CM_Enable_DevNode_Ex: TCM_Enable_DevNode_Ex;
CM_Enable_DevInst: TCM_Enable_DevInst;
CM_Enable_DevInst_Ex: TCM_Enable_DevInst_Ex;
CM_Enumerate_Classes: TCM_Enumerate_Classes;
CM_Enumerate_Classes_Ex: TCM_Enumerate_Classes_Ex;
CM_Enumerate_EnumeratorsA: TCM_Enumerate_EnumeratorsA;
CM_Enumerate_EnumeratorsW: TCM_Enumerate_EnumeratorsW;
CM_Enumerate_Enumerators: TCM_Enumerate_Enumerators;
CM_Enumerate_Enumerators_ExA: TCM_Enumerate_Enumerators_ExA;
CM_Enumerate_Enumerators_ExW: TCM_Enumerate_Enumerators_ExW;
CM_Enumerate_Enumerators_Ex: TCM_Enumerate_Enumerators_Ex;
CM_Find_Range: TCM_Find_Range;
CM_First_Range: TCM_First_Range;
CM_Free_Log_Conf: TCM_Free_Log_Conf;
CM_Free_Log_Conf_Ex: TCM_Free_Log_Conf_Ex;
CM_Free_Log_Conf_Handle: TCM_Free_Log_Conf_Handle;
CM_Free_Range_List: TCM_Free_Range_List;
CM_Free_Res_Des: TCM_Free_Res_Des;
CM_Free_Res_Des_Ex: TCM_Free_Res_Des_Ex;
CM_Free_Res_Des_Handle: TCM_Free_Res_Des_Handle;
CM_Get_Child: TCM_Get_Child;
CM_Get_Child_Ex: TCM_Get_Child_Ex;
CM_Get_Class_NameA: TCM_Get_Class_NameA;
CM_Get_Class_NameW: TCM_Get_Class_NameW;
CM_Get_Class_Name: TCM_Get_Class_Name;
CM_Get_Class_Name_ExA: TCM_Get_Class_Name_ExA;
CM_Get_Class_Name_ExW: TCM_Get_Class_Name_ExW;
CM_Get_Class_Name_Ex: TCM_Get_Class_Name_Ex;
CM_Get_Class_Key_NameA: TCM_Get_Class_Key_NameA;
CM_Get_Class_Key_NameW: TCM_Get_Class_Key_NameW;
CM_Get_Class_Key_Name: TCM_Get_Class_Key_Name;
CM_Get_Class_Key_Name_ExA: TCM_Get_Class_Key_Name_ExA;
CM_Get_Class_Key_Name_ExW: TCM_Get_Class_Key_Name_ExW;
CM_Get_Class_Key_Name_Ex: TCM_Get_Class_Key_Name_Ex;
CM_Get_Depth: TCM_Get_Depth;
CM_Get_Depth_Ex: TCM_Get_Depth_Ex;
CM_Get_Device_IDA: TCM_Get_Device_IDA;
CM_Get_Device_IDW: TCM_Get_Device_IDW;
CM_Get_Device_ID: TCM_Get_Device_ID;
CM_Get_Device_ID_ExA: TCM_Get_Device_ID_ExA;
CM_Get_Device_ID_ExW: TCM_Get_Device_ID_ExW;
CM_Get_Device_ID_Ex: TCM_Get_Device_ID_Ex;
CM_Get_Device_ID_ListA: TCM_Get_Device_ID_ListA;
CM_Get_Device_ID_ListW: TCM_Get_Device_ID_ListW;
CM_Get_Device_ID_List: TCM_Get_Device_ID_List;
CM_Get_Device_ID_List_ExA: TCM_Get_Device_ID_List_ExA;
CM_Get_Device_ID_List_ExW: TCM_Get_Device_ID_List_ExW;
CM_Get_Device_ID_List_Ex: TCM_Get_Device_ID_List_Ex;
CM_Get_Device_ID_List_SizeA: TCM_Get_Device_ID_List_SizeA;
CM_Get_Device_ID_List_SizeW: TCM_Get_Device_ID_List_SizeW;
CM_Get_Device_ID_List_Size: TCM_Get_Device_ID_List_Size;
CM_Get_Device_ID_List_Size_ExA: TCM_Get_Device_ID_List_Size_ExA;
CM_Get_Device_ID_List_Size_ExW: TCM_Get_Device_ID_List_Size_ExW;
CM_Get_Device_ID_List_Size_Ex: TCM_Get_Device_ID_List_Size_Ex;
CM_Get_Device_ID_Size: TCM_Get_Device_ID_Size;
CM_Get_Device_ID_Size_Ex: TCM_Get_Device_ID_Size_Ex;
CM_Get_DevNode_Registry_PropertyA: TCM_Get_DevNode_Registry_PropertyA;
CM_Get_DevNode_Registry_PropertyW: TCM_Get_DevNode_Registry_PropertyW;
CM_Get_DevNode_Registry_Property: TCM_Get_DevNode_Registry_Property;
CM_Get_DevNode_Registry_Property_ExA: TCM_Get_DevNode_Registry_Property_ExA;
CM_Get_DevNode_Registry_Property_ExW: TCM_Get_DevNode_Registry_Property_ExW;
CM_Get_DevNode_Registry_Property_Ex: TCM_Get_DevNode_Registry_Property_Ex;
CM_Get_DevInst_Registry_PropertyA: TCM_Get_DevInst_Registry_PropertyA;
CM_Get_DevInst_Registry_PropertyW: TCM_Get_DevInst_Registry_PropertyW;
CM_Get_DevInst_Registry_Property: TCM_Get_DevInst_Registry_Property;
CM_Get_DevInst_Registry_Property_ExA: TCM_Get_DevInst_Registry_Property_ExA;
CM_Get_DevInst_Registry_Property_ExW: TCM_Get_DevInst_Registry_Property_ExW;
CM_Get_DevInst_Registry_Property_Ex: TCM_Get_DevInst_Registry_Property_Ex;
{$IFDEF WINXP_UP}
CM_Get_DevNode_Custom_PropertyA: TCM_Get_DevNode_Custom_PropertyA;
CM_Get_DevNode_Custom_PropertyW: TCM_Get_DevNode_Custom_PropertyW;
CM_Get_DevNode_Custom_Property: TCM_Get_DevNode_Custom_Property;
CM_Get_DevNode_Custom_Property_ExA: TCM_Get_DevNode_Custom_Property_ExA;
CM_Get_DevNode_Custom_Property_ExW: TCM_Get_DevNode_Custom_Property_ExW;
CM_Get_DevNode_Custom_Property_Ex: TCM_Get_DevNode_Custom_Property_Ex;
CM_Get_DevInst_Custom_PropertyA: TCM_Get_DevInst_Custom_PropertyA;
CM_Get_DevInst_Custom_PropertyW: TCM_Get_DevInst_Custom_PropertyW;
CM_Get_DevInst_Custom_Property: TCM_Get_DevInst_Custom_Property;
CM_Get_DevInst_Custom_Property_ExA: TCM_Get_DevInst_Custom_Property_ExA;
CM_Get_DevInst_Custom_Property_ExW: TCM_Get_DevInst_Custom_Property_ExW;
CM_Get_DevInst_Custom_Property_Ex: TCM_Get_DevInst_Custom_Property_Ex;
{$ENDIF WINXP_UP}
CM_Get_DevNode_Status: TCM_Get_DevNode_Status;
CM_Get_DevInst_Status: TCM_Get_DevInst_Status;
CM_Get_DevNode_Status_Ex: TCM_Get_DevNode_Status_Ex;
CM_Get_DevInst_Status_Ex: TCM_Get_DevInst_Status_Ex;
CM_Get_First_Log_Conf: TCM_Get_First_Log_Conf;
CM_Get_First_Log_Conf_Ex: TCM_Get_First_Log_Conf_Ex;
CM_Get_Global_State: TCM_Get_Global_State;
CM_Get_Global_State_Ex: TCM_Get_Global_State_Ex;
CM_Get_Hardware_Profile_InfoA: TCM_Get_Hardware_Profile_InfoA;
CM_Get_Hardware_Profile_InfoW: TCM_Get_Hardware_Profile_InfoW;
CM_Get_Hardware_Profile_Info: TCM_Get_Hardware_Profile_Info;
CM_Get_Hardware_Profile_Info_ExA: TCM_Get_Hardware_Profile_Info_ExA;
CM_Get_Hardware_Profile_Info_ExW: TCM_Get_Hardware_Profile_Info_ExW;
CM_Get_Hardware_Profile_Info_Ex: TCM_Get_Hardware_Profile_Info_Ex;
CM_Get_HW_Prof_FlagsA: TCM_Get_HW_Prof_FlagsA;
CM_Get_HW_Prof_FlagsW: TCM_Get_HW_Prof_FlagsW;
CM_Get_HW_Prof_Flags: TCM_Get_HW_Prof_Flags;
CM_Get_HW_Prof_Flags_ExA: TCM_Get_HW_Prof_Flags_ExA;
CM_Get_HW_Prof_Flags_ExW: TCM_Get_HW_Prof_Flags_ExW;
CM_Get_HW_Prof_Flags_Ex: TCM_Get_HW_Prof_Flags_Ex;
{$IFNDEF WINNT4}
CM_Get_Device_Interface_AliasA: TCM_Get_Device_Interface_AliasA;
CM_Get_Device_Interface_AliasW: TCM_Get_Device_Interface_AliasW;
CM_Get_Device_Interface_Alias: TCM_Get_Device_Interface_Alias;
CM_Get_Device_Interface_Alias_ExA: TCM_Get_Device_Interface_Alias_ExA;
CM_Get_Device_Interface_Alias_ExW: TCM_Get_Device_Interface_Alias_ExW;
CM_Get_Device_Interface_Alias_Ex: TCM_Get_Device_Interface_Alias_Ex;
CM_Get_Device_Interface_ListA: TCM_Get_Device_Interface_ListA;
CM_Get_Device_Interface_ListW: TCM_Get_Device_Interface_ListW;
CM_Get_Device_Interface_List: TCM_Get_Device_Interface_List;
CM_Get_Device_Interface_List_ExA: TCM_Get_Device_Interface_List_ExA;
CM_Get_Device_Interface_List_ExW: TCM_Get_Device_Interface_List_ExW;
CM_Get_Device_Interface_List_Ex: TCM_Get_Device_Interface_List_Ex;
CM_Get_Device_Interface_List_SizeA: TCM_Get_Device_Interface_List_SizeA;
CM_Get_Device_Interface_List_SizeW: TCM_Get_Device_Interface_List_SizeW;
CM_Get_Device_Interface_List_Size: TCM_Get_Device_Interface_List_Size;
CM_Get_Device_Interface_List_Size_ExA: TCM_Get_Device_Interface_List_Size_ExA;
CM_Get_Device_Interface_List_Size_ExW: TCM_Get_Device_Interface_List_Size_ExW;
CM_Get_Device_Interface_List_Size_Ex: TCM_Get_Device_Interface_List_Size_Ex;
CM_Get_Log_Conf_Priority: TCM_Get_Log_Conf_Priority;
CM_Get_Log_Conf_Priority_Ex: TCM_Get_Log_Conf_Priority_Ex;
{$ENDIF !WINNT4}
CM_Get_Next_Log_Conf: TCM_Get_Next_Log_Conf;
CM_Get_Next_Log_Conf_Ex: TCM_Get_Next_Log_Conf_Ex;
CM_Get_Parent: TCM_Get_Parent;
CM_Get_Parent_Ex: TCM_Get_Parent_Ex;
CM_Get_Res_Des_Data: TCM_Get_Res_Des_Data;
CM_Get_Res_Des_Data_Ex: TCM_Get_Res_Des_Data_Ex;
CM_Get_Res_Des_Data_Size: TCM_Get_Res_Des_Data_Size;
CM_Get_Res_Des_Data_Size_Ex: TCM_Get_Res_Des_Data_Size_Ex;
CM_Get_Sibling: TCM_Get_Sibling;
CM_Get_Sibling_Ex: TCM_Get_Sibling_Ex;
CM_Get_Version: TCM_Get_Version;
CM_Get_Version_Ex: TCM_Get_Version_Ex;
{$IFDEF WINXP_UP}
CM_Is_Version_Available: TCM_Is_Version_Available;
CM_Is_Version_Available_Ex: TCM_Is_Version_Available_Ex;
{$ENDIF WINXP_UP}
CM_Intersect_Range_List: TCM_Intersect_Range_List;
CM_Invert_Range_List: TCM_Invert_Range_List;
CM_Locate_DevNodeA: TCM_Locate_DevNodeA;
CM_Locate_DevNodeW: TCM_Locate_DevNodeW;
CM_Locate_DevNode: TCM_Locate_DevNode;
CM_Locate_DevNode_ExA: TCM_Locate_DevNode_ExA;
CM_Locate_DevNode_ExW: TCM_Locate_DevNode_ExW;
CM_Locate_DevNode_Ex: TCM_Locate_DevNode_Ex;
CM_Locate_DevInstA: TCM_Locate_DevInstA;
CM_Locate_DevInstW: TCM_Locate_DevInstW;
CM_Locate_DevInst: TCM_Locate_DevInst;
CM_Locate_DevInst_ExA: TCM_Locate_DevInst_ExA;
CM_Locate_DevInst_ExW: TCM_Locate_DevInst_ExW;
CM_Locate_DevInst_Ex: TCM_Locate_DevInst_Ex;
CM_Merge_Range_List: TCM_Merge_Range_List;
CM_Modify_Res_Des: TCM_Modify_Res_Des;
CM_Modify_Res_Des_Ex: TCM_Modify_Res_Des_Ex;
CM_Move_DevNode: TCM_Move_DevNode;
CM_Move_DevInst: TCM_Move_DevInst;
CM_Move_DevNode_Ex: TCM_Move_DevNode_Ex;
CM_Move_DevInst_Ex: TCM_Move_DevInst_Ex;
CM_Next_Range: TCM_Next_Range;
CM_Get_Next_Res_Des: TCM_Get_Next_Res_Des;
CM_Get_Next_Res_Des_Ex: TCM_Get_Next_Res_Des_Ex;
CM_Open_Class_KeyA: TCM_Open_Class_KeyA;
CM_Open_Class_KeyW: TCM_Open_Class_KeyW;
CM_Open_Class_Key: TCM_Open_Class_Key;
CM_Open_Class_Key_ExA: TCM_Open_Class_Key_ExA;
CM_Open_Class_Key_ExW: TCM_Open_Class_Key_ExW;
CM_Open_Class_Key_Ex: TCM_Open_Class_Key_Ex;
CM_Open_DevNode_Key: TCM_Open_DevNode_Key;
CM_Open_DevInst_Key: TCM_Open_DevInst_Key;
CM_Open_DevNode_Key_Ex: TCM_Open_DevNode_Key_Ex;
CM_Open_DevInst_Key_Ex: TCM_Open_DevInst_Key_Ex;
CM_Query_Arbitrator_Free_Data: TCM_Query_Arbitrator_Free_Data;
CM_Query_Arbitrator_Free_Data_Ex: TCM_Query_Arbitrator_Free_Data_Ex;
CM_Query_Arbitrator_Free_Size: TCM_Query_Arbitrator_Free_Size;
CM_Query_Arbitrator_Free_Size_Ex: TCM_Query_Arbitrator_Free_Size_Ex;
CM_Query_Remove_SubTree: TCM_Query_Remove_SubTree;
CM_Query_Remove_SubTree_Ex: TCM_Query_Remove_SubTree_Ex;
{$IFDEF WIN2000_UP}
CM_Query_And_Remove_SubTreeA: TCM_Query_And_Remove_SubTreeA;
CM_Query_And_Remove_SubTreeW: TCM_Query_And_Remove_SubTreeW;
CM_Query_And_Remove_SubTree: TCM_Query_And_Remove_SubTree;
CM_Query_And_Remove_SubTree_ExA: TCM_Query_And_Remove_SubTree_ExA;
CM_Query_And_Remove_SubTree_ExW: TCM_Query_And_Remove_SubTree_ExW;
CM_Query_And_Remove_SubTree_Ex: TCM_Query_And_Remove_SubTree_Ex;
CM_Request_Device_EjectA: TCM_Request_Device_EjectA;
CM_Request_Device_EjectW: TCM_Request_Device_EjectW;
CM_Request_Device_Eject: TCM_Request_Device_Eject;
CM_Request_Device_Eject_ExA: TCM_Request_Device_Eject_ExA;
CM_Request_Device_Eject_ExW: TCM_Request_Device_Eject_ExW;
CM_Request_Device_Eject_Ex: TCM_Request_Device_Eject_Ex;
{$ENDIF WIN2000_UP}
CM_Reenumerate_DevNode: TCM_Reenumerate_DevNode;
CM_Reenumerate_DevInst: TCM_Reenumerate_DevInst;
CM_Reenumerate_DevNode_Ex: TCM_Reenumerate_DevNode_Ex;
CM_Reenumerate_DevInst_Ex: TCM_Reenumerate_DevInst_Ex;
{$IFNDEF WINNT4}
CM_Register_Device_InterfaceA: TCM_Register_Device_InterfaceA;
CM_Register_Device_InterfaceW: TCM_Register_Device_InterfaceW;
CM_Register_Device_Interface: TCM_Register_Device_Interface;
CM_Register_Device_Interface_ExA: TCM_Register_Device_Interface_ExA;
CM_Register_Device_Interface_ExW: TCM_Register_Device_Interface_ExW;
CM_Register_Device_Interface_Ex: TCM_Register_Device_Interface_Ex;
CM_Set_DevNode_Problem_Ex: TCM_Set_DevNode_Problem_Ex;
CM_Set_DevInst_Problem_Ex: TCM_Set_DevInst_Problem_Ex;
CM_Set_DevNode_Problem: TCM_Set_DevNode_Problem;
CM_Set_DevInst_Problem: TCM_Set_DevInst_Problem;
CM_Unregister_Device_InterfaceA: TCM_Unregister_Device_InterfaceA;
CM_Unregister_Device_InterfaceW: TCM_Unregister_Device_InterfaceW;
CM_Unregister_Device_Interface: TCM_Unregister_Device_Interface;
CM_Unregister_Device_Interface_ExA: TCM_Unregister_Device_Interface_ExA;
CM_Unregister_Device_Interface_ExW: TCM_Unregister_Device_Interface_ExW;
CM_Unregister_Device_Interface_Ex: TCM_Unregister_Device_Interface_Ex;
CM_Register_Device_Driver: TCM_Register_Device_Driver;
CM_Register_Device_Driver_Ex: TCM_Register_Device_Driver_Ex;
{$ENDIF !WINNT4}
CM_Remove_SubTree: TCM_Remove_SubTree;
CM_Remove_SubTree_Ex: TCM_Remove_SubTree_Ex;
CM_Set_DevNode_Registry_PropertyA: TCM_Set_DevNode_Registry_PropertyA;
CM_Set_DevNode_Registry_PropertyW: TCM_Set_DevNode_Registry_PropertyW;
CM_Set_DevNode_Registry_Property: TCM_Set_DevNode_Registry_Property;
CM_Set_DevNode_Registry_Property_ExA: TCM_Set_DevNode_Registry_Property_ExA;
CM_Set_DevNode_Registry_Property_ExW: TCM_Set_DevNode_Registry_Property_ExW;
CM_Set_DevNode_Registry_Property_Ex: TCM_Set_DevNode_Registry_Property_Ex;
CM_Set_DevInst_Registry_PropertyA: TCM_Set_DevInst_Registry_PropertyA;
CM_Set_DevInst_Registry_PropertyW: TCM_Set_DevInst_Registry_PropertyW;
CM_Set_DevInst_Registry_Property: TCM_Set_DevInst_Registry_Property;
CM_Set_DevInst_Registry_Property_ExA: TCM_Set_DevInst_Registry_Property_ExA;
CM_Set_DevInst_Registry_Property_ExW: TCM_Set_DevInst_Registry_Property_ExW;
CM_Set_DevInst_Registry_Property_Ex: TCM_Set_DevInst_Registry_Property_Ex;
{$IFNDEF WINNT4}
CM_Is_Dock_Station_Present: TCM_Is_Dock_Station_Present;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
CM_Is_Dock_Station_Present_Ex: TCM_Is_Dock_Station_Present_Ex;
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
CM_Request_Eject_PC: TCM_Request_Eject_PC;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
CM_Request_Eject_PC_Ex: TCM_Request_Eject_PC_Ex;
{$ENDIF WIN2000_UP}
CM_Set_HW_Prof_FlagsA: TCM_Set_HW_Prof_FlagsA;
CM_Set_HW_Prof_FlagsW: TCM_Set_HW_Prof_FlagsW;
CM_Set_HW_Prof_Flags: TCM_Set_HW_Prof_Flags;
CM_Set_HW_Prof_Flags_ExA: TCM_Set_HW_Prof_Flags_ExA;
CM_Set_HW_Prof_Flags_ExW: TCM_Set_HW_Prof_Flags_ExW;
CM_Set_HW_Prof_Flags_Ex: TCM_Set_HW_Prof_Flags_Ex;
CM_Setup_DevNode: TCM_Setup_DevNode;
CM_Setup_DevInst: TCM_Setup_DevInst;
CM_Setup_DevNode_Ex: TCM_Setup_DevNode_Ex;
CM_Setup_DevInst_Ex: TCM_Setup_DevInst_Ex;
CM_Test_Range_Available: TCM_Test_Range_Available;
CM_Uninstall_DevNode: TCM_Uninstall_DevNode;
CM_Uninstall_DevInst: TCM_Uninstall_DevInst;
CM_Uninstall_DevNode_Ex: TCM_Uninstall_DevNode_Ex;
CM_Uninstall_DevInst_Ex: TCM_Uninstall_DevInst_Ex;
CM_Run_Detection: TCM_Run_Detection;
CM_Run_Detection_Ex: TCM_Run_Detection_Ex;
CM_Set_HW_Prof: TCM_Set_HW_Prof;
CM_Set_HW_Prof_Ex: TCM_Set_HW_Prof_Ex;
{$IFDEF WIN2000_UP}
CM_Query_Resource_Conflict_List: TCM_Query_Resource_Conflict_List;
CM_Free_Resource_Conflict_Handle: TCM_Free_Resource_Conflict_Handle;
CM_Get_Resource_Conflict_Count: TCM_Get_Resource_Conflict_Count;
CM_Get_Resource_Conflict_DetailsA: TCM_Get_Resource_Conflict_DetailsA;
CM_Get_Resource_Conflict_DetailsW: TCM_Get_Resource_Conflict_DetailsW;
CM_Get_Resource_Conflict_Details: TCM_Get_Resource_Conflict_Details;
CM_Get_Class_Registry_PropertyA: TCM_Get_Class_Registry_PropertyA;
CM_Get_Class_Registry_PropertyW: TCM_Get_Class_Registry_PropertyW;
CM_Get_Class_Registry_Property: TCM_Get_Class_Registry_Property;
CM_Set_Class_Registry_PropertyA: TCM_Set_Class_Registry_PropertyA;
CM_Set_Class_Registry_PropertyW: TCM_Set_Class_Registry_PropertyW;
CM_Set_Class_Registry_Property: TCM_Set_Class_Registry_Property;
CM_WaitNoPendingInstallEvents: TCM_WaitNoPendingInstallEvents;
CMP_WaitNoPendingInstallEvents: TCMP_WaitNoPendingInstallEvents;
{$ENDIF WIN2000_UP}
{$ENDIF !CFGMGR32_LINKONREQUEST}
//--------------------------------------------------------------
// Configuration Manager return status codes
//--------------------------------------------------------------
const
CR_SUCCESS = $00000000;
{$EXTERNALSYM CR_SUCCESS}
CR_DEFAULT = $00000001;
{$EXTERNALSYM CR_DEFAULT}
CR_OUT_OF_MEMORY = $00000002;
{$EXTERNALSYM CR_OUT_OF_MEMORY}
CR_INVALID_POINTER = $00000003;
{$EXTERNALSYM CR_INVALID_POINTER}
CR_INVALID_FLAG = $00000004;
{$EXTERNALSYM CR_INVALID_FLAG}
CR_INVALID_DEVNODE = $00000005;
{$EXTERNALSYM CR_INVALID_DEVNODE}
CR_INVALID_DEVINST = CR_INVALID_DEVNODE;
{$EXTERNALSYM CR_INVALID_DEVINST}
CR_INVALID_RES_DES = $00000006;
{$EXTERNALSYM CR_INVALID_RES_DES}
CR_INVALID_LOG_CONF = $00000007;
{$EXTERNALSYM CR_INVALID_LOG_CONF}
CR_INVALID_ARBITRATOR = $00000008;
{$EXTERNALSYM CR_INVALID_ARBITRATOR}
CR_INVALID_NODELIST = $00000009;
{$EXTERNALSYM CR_INVALID_NODELIST}
CR_DEVNODE_HAS_REQS = $0000000A;
{$EXTERNALSYM CR_DEVNODE_HAS_REQS}
CR_DEVINST_HAS_REQS = CR_DEVNODE_HAS_REQS;
{$EXTERNALSYM CR_DEVINST_HAS_REQS}
CR_INVALID_RESOURCEID = $0000000B;
{$EXTERNALSYM CR_INVALID_RESOURCEID}
CR_DLVXD_NOT_FOUND = $0000000C; // WIN 95 ONLY
{$EXTERNALSYM CR_DLVXD_NOT_FOUND}
CR_NO_SUCH_DEVNODE = $0000000D;
{$EXTERNALSYM CR_NO_SUCH_DEVNODE}
CR_NO_SUCH_DEVINST = CR_NO_SUCH_DEVNODE;
{$EXTERNALSYM CR_NO_SUCH_DEVINST}
CR_NO_MORE_LOG_CONF = $0000000E;
{$EXTERNALSYM CR_NO_MORE_LOG_CONF}
CR_NO_MORE_RES_DES = $0000000F;
{$EXTERNALSYM CR_NO_MORE_RES_DES}
CR_ALREADY_SUCH_DEVNODE = $00000010;
{$EXTERNALSYM CR_ALREADY_SUCH_DEVNODE}
CR_ALREADY_SUCH_DEVINST = CR_ALREADY_SUCH_DEVNODE;
{$EXTERNALSYM CR_ALREADY_SUCH_DEVINST}
CR_INVALID_RANGE_LIST = $00000011;
{$EXTERNALSYM CR_INVALID_RANGE_LIST}
CR_INVALID_RANGE = $00000012;
{$EXTERNALSYM CR_INVALID_RANGE}
CR_FAILURE = $00000013;
{$EXTERNALSYM CR_FAILURE}
CR_NO_SUCH_LOGICAL_DEV = $00000014;
{$EXTERNALSYM CR_NO_SUCH_LOGICAL_DEV}
CR_CREATE_BLOCKED = $00000015;
{$EXTERNALSYM CR_CREATE_BLOCKED}
CR_NOT_SYSTEM_VM = $00000016; // WIN 95 ONLY
{$EXTERNALSYM CR_NOT_SYSTEM_VM}
CR_REMOVE_VETOED = $00000017;
{$EXTERNALSYM CR_REMOVE_VETOED}
CR_APM_VETOED = $00000018;
{$EXTERNALSYM CR_APM_VETOED}
CR_INVALID_LOAD_TYPE = $00000019;
{$EXTERNALSYM CR_INVALID_LOAD_TYPE}
CR_BUFFER_SMALL = $0000001A;
{$EXTERNALSYM CR_BUFFER_SMALL}
CR_NO_ARBITRATOR = $0000001B;
{$EXTERNALSYM CR_NO_ARBITRATOR}
CR_NO_REGISTRY_HANDLE = $0000001C;
{$EXTERNALSYM CR_NO_REGISTRY_HANDLE}
CR_REGISTRY_ERROR = $0000001D;
{$EXTERNALSYM CR_REGISTRY_ERROR}
CR_INVALID_DEVICE_ID = $0000001E;
{$EXTERNALSYM CR_INVALID_DEVICE_ID}
CR_INVALID_DATA = $0000001F;
{$EXTERNALSYM CR_INVALID_DATA}
CR_INVALID_API = $00000020;
{$EXTERNALSYM CR_INVALID_API}
CR_DEVLOADER_NOT_READY = $00000021;
{$EXTERNALSYM CR_DEVLOADER_NOT_READY}
CR_NEED_RESTART = $00000022;
{$EXTERNALSYM CR_NEED_RESTART}
CR_NO_MORE_HW_PROFILES = $00000023;
{$EXTERNALSYM CR_NO_MORE_HW_PROFILES}
CR_DEVICE_NOT_THERE = $00000024;
{$EXTERNALSYM CR_DEVICE_NOT_THERE}
CR_NO_SUCH_VALUE = $00000025;
{$EXTERNALSYM CR_NO_SUCH_VALUE}
CR_WRONG_TYPE = $00000026;
{$EXTERNALSYM CR_WRONG_TYPE}
CR_INVALID_PRIORITY = $00000027;
{$EXTERNALSYM CR_INVALID_PRIORITY}
CR_NOT_DISABLEABLE = $00000028;
{$EXTERNALSYM CR_NOT_DISABLEABLE}
CR_FREE_RESOURCES = $00000029;
{$EXTERNALSYM CR_FREE_RESOURCES}
CR_QUERY_VETOED = $0000002A;
{$EXTERNALSYM CR_QUERY_VETOED}
CR_CANT_SHARE_IRQ = $0000002B;
{$EXTERNALSYM CR_CANT_SHARE_IRQ}
CR_NO_DEPENDENT = $0000002C;
{$EXTERNALSYM CR_NO_DEPENDENT}
CR_SAME_RESOURCES = $0000002D;
{$EXTERNALSYM CR_SAME_RESOURCES}
CR_NO_SUCH_REGISTRY_KEY = $0000002E;
{$EXTERNALSYM CR_NO_SUCH_REGISTRY_KEY}
CR_INVALID_MACHINENAME = $0000002F; // NT ONLY
{$EXTERNALSYM CR_INVALID_MACHINENAME}
CR_REMOTE_COMM_FAILURE = $00000030; // NT ONLY
{$EXTERNALSYM CR_REMOTE_COMM_FAILURE}
CR_MACHINE_UNAVAILABLE = $00000031; // NT ONLY
{$EXTERNALSYM CR_MACHINE_UNAVAILABLE}
CR_NO_CM_SERVICES = $00000032; // NT ONLY
{$EXTERNALSYM CR_NO_CM_SERVICES}
CR_ACCESS_DENIED = $00000033; // NT ONLY
{$EXTERNALSYM CR_ACCESS_DENIED}
CR_CALL_NOT_IMPLEMENTED = $00000034;
{$EXTERNALSYM CR_CALL_NOT_IMPLEMENTED}
CR_INVALID_PROPERTY = $00000035;
{$EXTERNALSYM CR_INVALID_PROPERTY}
CR_DEVICE_INTERFACE_ACTIVE = $00000036;
{$EXTERNALSYM CR_DEVICE_INTERFACE_ACTIVE}
CR_NO_SUCH_DEVICE_INTERFACE = $00000037;
{$EXTERNALSYM CR_NO_SUCH_DEVICE_INTERFACE}
CR_INVALID_REFERENCE_STRING = $00000038;
{$EXTERNALSYM CR_INVALID_REFERENCE_STRING}
CR_INVALID_CONFLICT_LIST = $00000039;
{$EXTERNALSYM CR_INVALID_CONFLICT_LIST}
CR_INVALID_INDEX = $0000003A;
{$EXTERNALSYM CR_INVALID_INDEX}
CR_INVALID_STRUCTURE_SIZE = $0000003B;
{$EXTERNALSYM CR_INVALID_STRUCTURE_SIZE}
NUM_CR_RESULTS = $0000003C;
{$EXTERNALSYM NUM_CR_RESULTS}
function IsConfigManagerApiLoaded: Boolean;
function LoadConfigManagerApi: Boolean;
procedure UnloadConfigManagerApi;
implementation
{$IFDEF CFGMGR32_LINKONREQUEST}
uses
ModuleLoader;
{$ENDIF CFGMGR32_LINKONREQUEST}
const
CfgMgrDllName = 'cfgmgr32.dll';
SetupApiDllName = 'SETUPAPI.DLL';
{$IFDEF UNICODE}
NameSuffix = 'W';
{$ELSE}
NameSuffix = 'A';
{$ENDIF UNICODE}
{$IFDEF CFGMGR32_LINKONREQUEST}
var
CfgMgrApiLib: TModuleHandle = INVALID_MODULEHANDLE_VALUE;
CfgMgrApiLoadCount: Integer = 0;
{$ENDIF CFGMGR32_LINKONREQUEST}
function IsConfigManagerApiLoaded: Boolean;
begin
{$IFDEF CFGMGR32_LINKONREQUEST}
Result := CfgMgrApiLib <> INVALID_MODULEHANDLE_VALUE;
{$ELSE}
Result := True;
{$ENDIF CFGMGR32_LINKONREQUEST}
end;
function LoadConfigManagerApi: Boolean;
begin
Result := LoadSetupApi;
if not Result then
Exit;
{$IFDEF CFGMGR32_LINKONREQUEST}
Inc(CfgMgrApiLoadCount);
if CfgMgrApiLoadCount > 1 then
Exit;
Result := LoadModule(CfgMgrApiLib, CfgMgrDllName);
if Result then
begin
@CM_Add_Empty_Log_Conf := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_Empty_Log_Conf', Result);
@CM_Add_Empty_Log_Conf_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_Empty_Log_Conf_Ex', Result);
@CM_Add_IDA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_IDA', Result);
@CM_Add_IDW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_IDW', Result);
@CM_Add_ID := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_ID' + NameSuffix, Result);
@CM_Add_ID_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_ID_ExA', Result);
@CM_Add_ID_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_ID_ExW', Result);
@CM_Add_ID_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_ID_Ex' + NameSuffix, Result);
@CM_Add_Range := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_Range', Result);
@CM_Add_Res_Des := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_Res_Des', Result);
@CM_Add_Res_Des_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Add_Res_Des_Ex', Result);
@CM_Connect_MachineA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Connect_MachineA', Result);
@CM_Connect_MachineW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Connect_MachineW', Result);
@CM_Connect_Machine := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Connect_Machine' + NameSuffix, Result);
@CM_Create_DevNodeA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNodeA', Result);
@CM_Create_DevNodeW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNodeW', Result);
@CM_Create_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode' + NameSuffix, Result);
@CM_Create_DevNode_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_ExA', Result);
@CM_Create_DevNode_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_ExW', Result);
@CM_Create_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_Ex' + NameSuffix, Result);
@CM_Create_DevInstA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNodeA', Result);
@CM_Create_DevInstW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNodeW', Result);
@CM_Create_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode' + NameSuffix, Result);
@CM_Create_DevInst_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_ExA', Result);
@CM_Create_DevInst_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_ExW', Result);
@CM_Create_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_DevNode_Ex' + NameSuffix, Result);
@CM_Create_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Create_Range_List', Result);
@CM_Delete_Class_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_Class_Key', Result);
@CM_Delete_Class_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_Class_Key_Ex', Result);
@CM_Delete_DevNode_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_DevNode_Key', Result);
@CM_Delete_DevNode_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_DevNode_Key_Ex', Result);
@CM_Delete_DevInst_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_DevNode_Key', Result);
@CM_Delete_DevInst_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_DevNode_Key_Ex', Result);
@CM_Delete_Range := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Delete_Range', Result);
@CM_Detect_Resource_Conflict := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Detect_Resource_Conflict', Result);
@CM_Detect_Resource_Conflict_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Detect_Resource_Conflict_Ex', Result);
@CM_Disable_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Disable_DevNode', Result);
@CM_Disable_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Disable_DevNode_Ex', Result);
@CM_Disable_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Disable_DevNode', Result);
@CM_Disable_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Disable_DevNode_Ex', Result);
@CM_Disconnect_Machine := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Disconnect_Machine', Result);
@CM_Dup_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Dup_Range_List', Result);
@CM_Enable_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enable_DevNode', Result);
@CM_Enable_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enable_DevNode_Ex', Result);
@CM_Enable_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enable_DevNode', Result);
@CM_Enable_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enable_DevNode_Ex', Result);
@CM_Enumerate_Classes := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Classes', Result);
@CM_Enumerate_Classes_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Classes_Ex', Result);
@CM_Enumerate_EnumeratorsA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_EnumeratorsA', Result);
@CM_Enumerate_EnumeratorsW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_EnumeratorsW', Result);
@CM_Enumerate_Enumerators := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Enumerators' + NameSuffix, Result);
@CM_Enumerate_Enumerators_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Enumerators_ExA', Result);
@CM_Enumerate_Enumerators_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Enumerators_ExW', Result);
@CM_Enumerate_Enumerators_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Enumerate_Enumerators_Ex' + NameSuffix, Result);
@CM_Find_Range := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Find_Range', Result);
@CM_First_Range := GetModuleSymbolEx(CfgMgrApiLib, 'CM_First_Range', Result);
@CM_Free_Log_Conf := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Log_Conf', Result);
@CM_Free_Log_Conf_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Log_Conf_Ex', Result);
@CM_Free_Log_Conf_Handle := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Log_Conf_Handle', Result);
@CM_Free_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Range_List', Result);
@CM_Free_Res_Des := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Res_Des', Result);
@CM_Free_Res_Des_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Res_Des_Ex', Result);
@CM_Free_Res_Des_Handle := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Res_Des_Handle', Result);
@CM_Get_Child := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Child', Result);
@CM_Get_Child_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Child_Ex', Result);
@CM_Get_Class_NameA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_NameA', Result);
@CM_Get_Class_NameW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_NameW', Result);
@CM_Get_Class_Name := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Name' + NameSuffix, Result);
@CM_Get_Class_Name_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Name_ExA', Result);
@CM_Get_Class_Name_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Name_ExW', Result);
@CM_Get_Class_Name_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Name_Ex' + NameSuffix, Result);
@CM_Get_Class_Key_NameA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_NameA', Result);
@CM_Get_Class_Key_NameW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_NameW', Result);
@CM_Get_Class_Key_Name := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_Name' + NameSuffix, Result);
@CM_Get_Class_Key_Name_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_Name_ExA', Result);
@CM_Get_Class_Key_Name_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_Name_ExW', Result);
@CM_Get_Class_Key_Name_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Key_Name_Ex' + NameSuffix, Result);
@CM_Get_Depth := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Depth', Result);
@CM_Get_Depth_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Depth_Ex', Result);
@CM_Get_Device_IDA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_IDA', Result);
@CM_Get_Device_IDW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_IDW', Result);
@CM_Get_Device_ID := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID' + NameSuffix, Result);
@CM_Get_Device_ID_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_ExA', Result);
@CM_Get_Device_ID_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_ExW', Result);
@CM_Get_Device_ID_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_Ex' + NameSuffix, Result);
@CM_Get_Device_ID_ListA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_ListA', Result);
@CM_Get_Device_ID_ListW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_ListW', Result);
@CM_Get_Device_ID_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List' + NameSuffix, Result);
@CM_Get_Device_ID_List_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_ExA', Result);
@CM_Get_Device_ID_List_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_ExW', Result);
@CM_Get_Device_ID_List_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_Ex' + NameSuffix, Result);
@CM_Get_Device_ID_List_SizeA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_SizeA', Result);
@CM_Get_Device_ID_List_SizeW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_SizeW', Result);
@CM_Get_Device_ID_List_Size := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_Size' + NameSuffix, Result);
@CM_Get_Device_ID_List_Size_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_Size_ExA', Result);
@CM_Get_Device_ID_List_Size_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_Size_ExW', Result);
@CM_Get_Device_ID_List_Size_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_List_Size_Ex' + NameSuffix, Result);
@CM_Get_Device_ID_Size := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_Size', Result);
@CM_Get_Device_ID_Size_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_ID_Size_Ex', Result);
@CM_Get_DevNode_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_PropertyA', Result);
@CM_Get_DevNode_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_PropertyW', Result);
@CM_Get_DevNode_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property' + NameSuffix, Result);
@CM_Get_DevNode_Registry_Property_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_ExA', Result);
@CM_Get_DevNode_Registry_Property_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_ExW', Result);
@CM_Get_DevNode_Registry_Property_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_Ex' + NameSuffix, Result);
@CM_Get_DevInst_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_PropertyA', Result);
@CM_Get_DevInst_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_PropertyW', Result);
@CM_Get_DevInst_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property' + NameSuffix, Result);
@CM_Get_DevInst_Registry_Property_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_ExA', Result);
@CM_Get_DevInst_Registry_Property_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_ExW', Result);
@CM_Get_DevInst_Registry_Property_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Registry_Property_Ex' + NameSuffix, Result);
{$IFDEF WINXP_UP}
@CM_Get_DevNode_Custom_PropertyA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_PropertyA', Result);
@CM_Get_DevNode_Custom_PropertyW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_PropertyW', Result);
@CM_Get_DevNode_Custom_Property := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property' + NameSuffix, Result);
@CM_Get_DevNode_Custom_Property_ExA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_ExA', Result);
@CM_Get_DevNode_Custom_Property_ExW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_ExW', Result);
@CM_Get_DevNode_Custom_Property_Ex := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_Ex' + NameSuffix, Result);
@CM_Get_DevInst_Custom_PropertyA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_PropertyA', Result);
@CM_Get_DevInst_Custom_PropertyW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_PropertyW', Result);
@CM_Get_DevInst_Custom_Property := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property' + NameSuffix, Result);
@CM_Get_DevInst_Custom_Property_ExA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_ExA', Result);
@CM_Get_DevInst_Custom_Property_ExW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_ExW', Result);
@CM_Get_DevInst_Custom_Property_Ex := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Get_DevNode_Custom_Property_Ex' + NameSuffix, Result);
{$ENDIF WINXP_UP}
@CM_Get_DevNode_Status := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Status', Result);
@CM_Get_DevInst_Status := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Status', Result);
@CM_Get_DevNode_Status_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Status_Ex', Result);
@CM_Get_DevInst_Status_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_DevNode_Status_Ex', Result);
@CM_Get_First_Log_Conf := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_First_Log_Conf', Result);
@CM_Get_First_Log_Conf_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_First_Log_Conf_Ex', Result);
@CM_Get_Global_State := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Global_State', Result);
@CM_Get_Global_State_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Global_State_Ex', Result);
@CM_Get_Hardware_Profile_InfoA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_InfoA', Result);
@CM_Get_Hardware_Profile_InfoW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_InfoW', Result);
@CM_Get_Hardware_Profile_Info := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_Info' + NameSuffix, Result);
@CM_Get_Hardware_Profile_Info_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_Info_ExA', Result);
@CM_Get_Hardware_Profile_Info_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_Info_ExW', Result);
@CM_Get_Hardware_Profile_Info_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Hardware_Profile_Info_Ex' + NameSuffix, Result);
@CM_Get_HW_Prof_FlagsA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_FlagsA', Result);
@CM_Get_HW_Prof_FlagsW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_FlagsW', Result);
@CM_Get_HW_Prof_Flags := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_Flags' + NameSuffix, Result);
@CM_Get_HW_Prof_Flags_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_Flags_ExA', Result);
@CM_Get_HW_Prof_Flags_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_Flags_ExW', Result);
@CM_Get_HW_Prof_Flags_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_HW_Prof_Flags_Ex' + NameSuffix, Result);
{$IFNDEF WINNT4}
@CM_Get_Device_Interface_AliasA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_AliasA', Result);
@CM_Get_Device_Interface_AliasW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_AliasW', Result);
@CM_Get_Device_Interface_Alias := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_Alias' + NameSuffix, Result);
@CM_Get_Device_Interface_Alias_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_Alias_ExA', Result);
@CM_Get_Device_Interface_Alias_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_Alias_ExW', Result);
@CM_Get_Device_Interface_Alias_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_Alias_Ex' + NameSuffix, Result);
@CM_Get_Device_Interface_ListA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_ListA', Result);
@CM_Get_Device_Interface_ListW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_ListW', Result);
@CM_Get_Device_Interface_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List' + NameSuffix, Result);
@CM_Get_Device_Interface_List_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_ExA', Result);
@CM_Get_Device_Interface_List_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_ExW', Result);
@CM_Get_Device_Interface_List_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_Ex' + NameSuffix, Result);
@CM_Get_Device_Interface_List_SizeA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_SizeA', Result);
@CM_Get_Device_Interface_List_SizeW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_SizeW', Result);
@CM_Get_Device_Interface_List_Size := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_Size' + NameSuffix, Result);
@CM_Get_Device_Interface_List_Size_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_Size_ExA', Result);
@CM_Get_Device_Interface_List_Size_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_Size_ExW', Result);
@CM_Get_Device_Interface_List_Size_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Device_Interface_List_Size_Ex' + NameSuffix, Result);
@CM_Get_Log_Conf_Priority := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Log_Conf_Priority', Result);
@CM_Get_Log_Conf_Priority_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Log_Conf_Priority_Ex', Result);
{$ENDIF !WINNT4}
@CM_Get_Next_Log_Conf := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Next_Log_Conf', Result);
@CM_Get_Next_Log_Conf_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Next_Log_Conf_Ex', Result);
@CM_Get_Parent := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Parent', Result);
@CM_Get_Parent_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Parent_Ex', Result);
@CM_Get_Res_Des_Data := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Res_Des_Data', Result);
@CM_Get_Res_Des_Data_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Res_Des_Data_Ex', Result);
@CM_Get_Res_Des_Data_Size := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Res_Des_Data_Size', Result);
@CM_Get_Res_Des_Data_Size_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Res_Des_Data_Size_Ex', Result);
@CM_Get_Sibling := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Sibling', Result);
@CM_Get_Sibling_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Sibling_Ex', Result);
@CM_Get_Version := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Version', Result);
@CM_Get_Version_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Version_Ex', Result);
{$IFDEF WINXP_UP}
@CM_Is_Version_Available := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Is_Version_Available', Result);
@CM_Is_Version_Available_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Is_Version_Available_Ex', Result);
{$ENDIF WINXP_UP}
@CM_Intersect_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Intersect_Range_List', Result);
@CM_Invert_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Invert_Range_List', Result);
@CM_Locate_DevNodeA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNodeA', Result);
@CM_Locate_DevNodeW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNodeW', Result);
@CM_Locate_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode' + NameSuffix, Result);
@CM_Locate_DevNode_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_ExA', Result);
@CM_Locate_DevNode_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_ExW', Result);
@CM_Locate_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_Ex' + NameSuffix, Result);
@CM_Locate_DevInstA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNodeA', Result);
@CM_Locate_DevInstW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNodeW', Result);
@CM_Locate_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode' + NameSuffix, Result);
@CM_Locate_DevInst_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_ExA', Result);
@CM_Locate_DevInst_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_ExW', Result);
@CM_Locate_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Locate_DevNode_Ex' + NameSuffix, Result);
@CM_Merge_Range_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Merge_Range_List', Result);
@CM_Modify_Res_Des := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Modify_Res_Des', Result);
@CM_Modify_Res_Des_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Modify_Res_Des_Ex', Result);
@CM_Move_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Move_DevNode', Result);
@CM_Move_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Move_DevNode', Result);
@CM_Move_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Move_DevNode_Ex', Result);
@CM_Move_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Move_DevNode_Ex', Result);
@CM_Next_Range := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Next_Range', Result);
@CM_Get_Next_Res_Des := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Next_Res_Des', Result);
@CM_Get_Next_Res_Des_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Next_Res_Des_Ex', Result);
@CM_Open_Class_KeyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_KeyA', Result);
@CM_Open_Class_KeyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_KeyW', Result);
@CM_Open_Class_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_Key' + NameSuffix, Result);
@CM_Open_Class_Key_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_Key_ExA', Result);
@CM_Open_Class_Key_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_Key_ExW', Result);
@CM_Open_Class_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_Class_Key_Ex' + NameSuffix, Result);
@CM_Open_DevNode_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_DevNode_Key', Result);
@CM_Open_DevInst_Key := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_DevNode_Key', Result);
@CM_Open_DevNode_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_DevNode_Key_Ex', Result);
@CM_Open_DevInst_Key_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Open_DevNode_Key_Ex', Result);
@CM_Query_Arbitrator_Free_Data := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Arbitrator_Free_Data', Result);
@CM_Query_Arbitrator_Free_Data_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Arbitrator_Free_Data_Ex', Result);
@CM_Query_Arbitrator_Free_Size := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Arbitrator_Free_Size', Result);
@CM_Query_Arbitrator_Free_Size_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Arbitrator_Free_Size_Ex', Result);
@CM_Query_Remove_SubTree := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Remove_SubTree', Result);
@CM_Query_Remove_SubTree_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Remove_SubTree_Ex', Result);
{$IFDEF WIN2000_UP}
@CM_Query_And_Remove_SubTreeA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTreeA', Result);
@CM_Query_And_Remove_SubTreeW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTreeW', Result);
@CM_Query_And_Remove_SubTree := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTree' + NameSuffix, Result);
@CM_Query_And_Remove_SubTree_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTree_ExA', Result);
@CM_Query_And_Remove_SubTree_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTree_ExW', Result);
@CM_Query_And_Remove_SubTree_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_And_Remove_SubTree_Ex' + NameSuffix, Result);
@CM_Request_Device_EjectA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_EjectA', Result);
@CM_Request_Device_EjectW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_EjectW', Result);
@CM_Request_Device_Eject := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_Eject' + NameSuffix, Result);
@CM_Request_Device_Eject_ExA := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_Eject_ExA', Result);
@CM_Request_Device_Eject_ExW := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_Eject_ExW', Result);
@CM_Request_Device_Eject_Ex := GetModuleSymbolEx(GetSetupApiModuleHandle, 'CM_Request_Device_Eject_Ex' + NameSuffix, Result);
{$ENDIF WIN2000_UP}
@CM_Reenumerate_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Reenumerate_DevNode', Result);
@CM_Reenumerate_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Reenumerate_DevNode', Result);
@CM_Reenumerate_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Reenumerate_DevNode_Ex', Result);
@CM_Reenumerate_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Reenumerate_DevNode_Ex', Result);
{$IFNDEF WINNT4}
@CM_Register_Device_InterfaceA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_InterfaceA', Result);
@CM_Register_Device_InterfaceW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_InterfaceW', Result);
@CM_Register_Device_Interface := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Interface' + NameSuffix, Result);
@CM_Register_Device_Interface_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Interface_ExA', Result);
@CM_Register_Device_Interface_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Interface_ExW', Result);
@CM_Register_Device_Interface_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Interface_Ex' + NameSuffix, Result);
@CM_Set_DevNode_Problem_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Problem_Ex', Result);
@CM_Set_DevInst_Problem_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Problem_Ex', Result);
@CM_Set_DevNode_Problem := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Problem', Result);
@CM_Set_DevInst_Problem := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Problem', Result);
@CM_Unregister_Device_InterfaceA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_InterfaceA', Result);
@CM_Unregister_Device_InterfaceW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_InterfaceW', Result);
@CM_Unregister_Device_Interface := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_Interface' + NameSuffix, Result);
@CM_Unregister_Device_Interface_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_Interface_ExA', Result);
@CM_Unregister_Device_Interface_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_Interface_ExW', Result);
@CM_Unregister_Device_Interface_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Unregister_Device_Interface_Ex' + NameSuffix, Result);
@CM_Register_Device_Driver := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Driver', Result);
@CM_Register_Device_Driver_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Register_Device_Driver_Ex', Result);
{$ENDIF !WINNT4}
@CM_Remove_SubTree := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Remove_SubTree', Result);
@CM_Remove_SubTree_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Remove_SubTree_Ex', Result);
@CM_Set_DevNode_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_PropertyA', Result);
@CM_Set_DevNode_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_PropertyW', Result);
@CM_Set_DevNode_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property' + NameSuffix, Result);
@CM_Set_DevNode_Registry_Property_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_ExA', Result);
@CM_Set_DevNode_Registry_Property_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_ExW', Result);
@CM_Set_DevNode_Registry_Property_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_Ex' + NameSuffix, Result);
@CM_Set_DevInst_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_PropertyA', Result);
@CM_Set_DevInst_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_PropertyW', Result);
@CM_Set_DevInst_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property' + NameSuffix, Result);
@CM_Set_DevInst_Registry_Property_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_ExA', Result);
@CM_Set_DevInst_Registry_Property_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_ExW', Result);
@CM_Set_DevInst_Registry_Property_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_DevNode_Registry_Property_Ex' + NameSuffix, Result);
{$IFNDEF WINNT4}
@CM_Is_Dock_Station_Present := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Is_Dock_Station_Present', Result);
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
@CM_Is_Dock_Station_Present_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Is_Dock_Station_Present_Ex', Result);
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
@CM_Request_Eject_PC := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Request_Eject_PC', Result);
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
@CM_Request_Eject_PC_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Request_Eject_PC_Ex', Result);
{$ENDIF WIN2000_UP}
@CM_Set_HW_Prof_FlagsA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_FlagsA', Result);
@CM_Set_HW_Prof_FlagsW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_FlagsW', Result);
@CM_Set_HW_Prof_Flags := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_Flags' + NameSuffix, Result);
@CM_Set_HW_Prof_Flags_ExA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_Flags_ExA', Result);
@CM_Set_HW_Prof_Flags_ExW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_Flags_ExW', Result);
@CM_Set_HW_Prof_Flags_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_Flags_Ex' + NameSuffix, Result);
@CM_Setup_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Setup_DevNode', Result);
@CM_Setup_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Setup_DevNode', Result);
@CM_Setup_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Setup_DevNode_Ex', Result);
@CM_Setup_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Setup_DevNode_Ex', Result);
@CM_Test_Range_Available := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Test_Range_Available', Result);
@CM_Uninstall_DevNode := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Uninstall_DevNode', Result);
@CM_Uninstall_DevInst := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Uninstall_DevNode', Result);
@CM_Uninstall_DevNode_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Uninstall_DevNode_Ex', Result);
@CM_Uninstall_DevInst_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Uninstall_DevNode_Ex', Result);
@CM_Run_Detection := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Run_Detection', Result);
@CM_Run_Detection_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Run_Detection_Ex', Result);
@CM_Set_HW_Prof := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof', Result);
@CM_Set_HW_Prof_Ex := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_HW_Prof_Ex', Result);
{$IFDEF WIN2000_UP}
@CM_Query_Resource_Conflict_List := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Query_Resource_Conflict_List', Result);
@CM_Free_Resource_Conflict_Handle := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Free_Resource_Conflict_Handle', Result);
@CM_Get_Resource_Conflict_Count := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Resource_Conflict_Count', Result);
@CM_Get_Resource_Conflict_DetailsA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Resource_Conflict_DetailsA', Result);
@CM_Get_Resource_Conflict_DetailsW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Resource_Conflict_DetailsW', Result);
@CM_Get_Resource_Conflict_Details := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Resource_Conflict_Details' + NameSuffix, Result);
@CM_Get_Class_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Registry_PropertyA', Result);
@CM_Get_Class_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Registry_PropertyW', Result);
@CM_Get_Class_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Get_Class_Registry_Property' + NameSuffix, Result);
@CM_Set_Class_Registry_PropertyA := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_Class_Registry_PropertyA', Result);
@CM_Set_Class_Registry_PropertyW := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_Class_Registry_PropertyW', Result);
@CM_Set_Class_Registry_Property := GetModuleSymbolEx(CfgMgrApiLib, 'CM_Set_Class_Registry_Property' + NameSuffix, Result);
@CM_WaitNoPendingInstallEvents := GetModuleSymbolEx(CfgMgrApiLib, 'CMP_WaitNoPendingInstallEvents', Result);
@CMP_WaitNoPendingInstallEvents := GetModuleSymbolEx(CfgMgrApiLib, 'CMP_WaitNoPendingInstallEvents', Result);
{$ENDIF WIN2000_UP}
if not Result then
UnloadConfigManagerApi;
end;
{$ELSE}
Result := True;
{$ENDIF CFGMGR32_LINKONREQUEST}
end;
procedure UnloadConfigManagerApi;
begin
UnloadSetupApi;
{$IFDEF CFGMGR32_LINKONREQUEST}
Dec(CfgMgrApiLoadCount);
if CfgMgrApiLoadCount > 0 then
Exit;
UnloadModule(CfgMgrApiLib);
CM_Add_Empty_Log_Conf := nil;
CM_Add_Empty_Log_Conf_Ex := nil;
CM_Add_IDA := nil;
CM_Add_IDW := nil;
CM_Add_ID := nil;
CM_Add_ID_ExA := nil;
CM_Add_ID_ExW := nil;
CM_Add_ID_Ex := nil;
CM_Add_Range := nil;
CM_Add_Res_Des := nil;
CM_Add_Res_Des_Ex := nil;
CM_Connect_MachineA := nil;
CM_Connect_MachineW := nil;
CM_Connect_Machine := nil;
CM_Create_DevNodeA := nil;
CM_Create_DevNodeW := nil;
CM_Create_DevNode := nil;
CM_Create_DevNode_ExA := nil;
CM_Create_DevNode_ExW := nil;
CM_Create_DevNode_Ex := nil;
CM_Create_DevInstA := nil;
CM_Create_DevInstW := nil;
CM_Create_DevInst := nil;
CM_Create_DevInst_ExA := nil;
CM_Create_DevInst_ExW := nil;
CM_Create_DevInst_Ex := nil;
CM_Create_Range_List := nil;
CM_Delete_Class_Key := nil;
CM_Delete_Class_Key_Ex := nil;
CM_Delete_DevNode_Key := nil;
CM_Delete_DevNode_Key_Ex := nil;
CM_Delete_DevInst_Key := nil;
CM_Delete_DevInst_Key_Ex := nil;
CM_Delete_Range := nil;
CM_Detect_Resource_Conflict := nil;
CM_Detect_Resource_Conflict_Ex := nil;
CM_Disable_DevNode := nil;
CM_Disable_DevNode_Ex := nil;
CM_Disable_DevInst := nil;
CM_Disable_DevInst_Ex := nil;
CM_Disconnect_Machine := nil;
CM_Dup_Range_List := nil;
CM_Enable_DevNode := nil;
CM_Enable_DevNode_Ex := nil;
CM_Enable_DevInst := nil;
CM_Enable_DevInst_Ex := nil;
CM_Enumerate_Classes := nil;
CM_Enumerate_Classes_Ex := nil;
CM_Enumerate_EnumeratorsA := nil;
CM_Enumerate_EnumeratorsW := nil;
CM_Enumerate_Enumerators := nil;
CM_Enumerate_Enumerators_ExA := nil;
CM_Enumerate_Enumerators_ExW := nil;
CM_Enumerate_Enumerators_Ex := nil;
CM_Find_Range := nil;
CM_First_Range := nil;
CM_Free_Log_Conf := nil;
CM_Free_Log_Conf_Ex := nil;
CM_Free_Log_Conf_Handle := nil;
CM_Free_Range_List := nil;
CM_Free_Res_Des := nil;
CM_Free_Res_Des_Ex := nil;
CM_Free_Res_Des_Handle := nil;
CM_Get_Child := nil;
CM_Get_Child_Ex := nil;
CM_Get_Class_NameA := nil;
CM_Get_Class_NameW := nil;
CM_Get_Class_Name := nil;
CM_Get_Class_Name_ExA := nil;
CM_Get_Class_Name_ExW := nil;
CM_Get_Class_Name_Ex := nil;
CM_Get_Class_Key_NameA := nil;
CM_Get_Class_Key_NameW := nil;
CM_Get_Class_Key_Name := nil;
CM_Get_Class_Key_Name_ExA := nil;
CM_Get_Class_Key_Name_ExW := nil;
CM_Get_Class_Key_Name_Ex := nil;
CM_Get_Depth := nil;
CM_Get_Depth_Ex := nil;
CM_Get_Device_IDA := nil;
CM_Get_Device_IDW := nil;
CM_Get_Device_ID := nil;
CM_Get_Device_ID_ExA := nil;
CM_Get_Device_ID_ExW := nil;
CM_Get_Device_ID_Ex := nil;
CM_Get_Device_ID_ListA := nil;
CM_Get_Device_ID_ListW := nil;
CM_Get_Device_ID_List := nil;
CM_Get_Device_ID_List_ExA := nil;
CM_Get_Device_ID_List_ExW := nil;
CM_Get_Device_ID_List_Ex := nil;
CM_Get_Device_ID_List_SizeA := nil;
CM_Get_Device_ID_List_SizeW := nil;
CM_Get_Device_ID_List_Size := nil;
CM_Get_Device_ID_List_Size_ExA := nil;
CM_Get_Device_ID_List_Size_ExW := nil;
CM_Get_Device_ID_List_Size_Ex := nil;
CM_Get_Device_ID_Size := nil;
CM_Get_Device_ID_Size_Ex := nil;
CM_Get_DevNode_Registry_PropertyA := nil;
CM_Get_DevNode_Registry_PropertyW := nil;
CM_Get_DevNode_Registry_Property := nil;
CM_Get_DevNode_Registry_Property_ExA := nil;
CM_Get_DevNode_Registry_Property_ExW := nil;
CM_Get_DevNode_Registry_Property_Ex := nil;
CM_Get_DevInst_Registry_PropertyA := nil;
CM_Get_DevInst_Registry_PropertyW := nil;
CM_Get_DevInst_Registry_Property := nil;
CM_Get_DevInst_Registry_Property_ExA := nil;
CM_Get_DevInst_Registry_Property_ExW := nil;
CM_Get_DevInst_Registry_Property_Ex := nil;
{$IFDEF WINXP_UP}
CM_Get_DevNode_Custom_PropertyA := nil;
CM_Get_DevNode_Custom_PropertyW := nil;
CM_Get_DevNode_Custom_Property := nil;
CM_Get_DevNode_Custom_Property_ExA := nil;
CM_Get_DevNode_Custom_Property_ExW := nil;
CM_Get_DevNode_Custom_Property_Ex := nil;
CM_Get_DevInst_Custom_PropertyA := nil;
CM_Get_DevInst_Custom_PropertyW := nil;
CM_Get_DevInst_Custom_Property := nil;
CM_Get_DevInst_Custom_Property_ExA := nil;
CM_Get_DevInst_Custom_Property_ExW := nil;
CM_Get_DevInst_Custom_Property_Ex := nil;
{$ENDIF WINXP_UP}
CM_Get_DevNode_Status := nil;
CM_Get_DevInst_Status := nil;
CM_Get_DevNode_Status_Ex := nil;
CM_Get_DevInst_Status_Ex := nil;
CM_Get_First_Log_Conf := nil;
CM_Get_First_Log_Conf_Ex := nil;
CM_Get_Global_State := nil;
CM_Get_Global_State_Ex := nil;
CM_Get_Hardware_Profile_InfoA := nil;
CM_Get_Hardware_Profile_InfoW := nil;
CM_Get_Hardware_Profile_Info := nil;
CM_Get_Hardware_Profile_Info_ExA := nil;
CM_Get_Hardware_Profile_Info_ExW := nil;
CM_Get_Hardware_Profile_Info_Ex := nil;
CM_Get_HW_Prof_FlagsA := nil;
CM_Get_HW_Prof_FlagsW := nil;
CM_Get_HW_Prof_Flags := nil;
CM_Get_HW_Prof_Flags_ExA := nil;
CM_Get_HW_Prof_Flags_ExW := nil;
CM_Get_HW_Prof_Flags_Ex := nil;
{$IFNDEF WINNT4}
CM_Get_Device_Interface_AliasA := nil;
CM_Get_Device_Interface_AliasW := nil;
CM_Get_Device_Interface_Alias := nil;
CM_Get_Device_Interface_Alias_ExA := nil;
CM_Get_Device_Interface_Alias_ExW := nil;
CM_Get_Device_Interface_Alias_Ex := nil;
CM_Get_Device_Interface_ListA := nil;
CM_Get_Device_Interface_ListW := nil;
CM_Get_Device_Interface_List := nil;
CM_Get_Device_Interface_List_ExA := nil;
CM_Get_Device_Interface_List_ExW := nil;
CM_Get_Device_Interface_List_Ex := nil;
CM_Get_Device_Interface_List_SizeA := nil;
CM_Get_Device_Interface_List_SizeW := nil;
CM_Get_Device_Interface_List_Size := nil;
CM_Get_Device_Interface_List_Size_ExA := nil;
CM_Get_Device_Interface_List_Size_ExW := nil;
CM_Get_Device_Interface_List_Size_Ex := nil;
CM_Get_Log_Conf_Priority := nil;
CM_Get_Log_Conf_Priority_Ex := nil;
{$ENDIF !WINNT4}
CM_Get_Next_Log_Conf := nil;
CM_Get_Next_Log_Conf_Ex := nil;
CM_Get_Parent := nil;
CM_Get_Parent_Ex := nil;
CM_Get_Res_Des_Data := nil;
CM_Get_Res_Des_Data_Ex := nil;
CM_Get_Res_Des_Data_Size := nil;
CM_Get_Res_Des_Data_Size_Ex := nil;
CM_Get_Sibling := nil;
CM_Get_Sibling_Ex := nil;
CM_Get_Version := nil;
CM_Get_Version_Ex := nil;
{$IFDEF WINXP_UP}
CM_Is_Version_Available := nil;
CM_Is_Version_Available_Ex := nil;
{$ENDIF WINXP_UP}
CM_Intersect_Range_List := nil;
CM_Invert_Range_List := nil;
CM_Locate_DevNodeA := nil;
CM_Locate_DevNodeW := nil;
CM_Locate_DevNode := nil;
CM_Locate_DevNode_ExA := nil;
CM_Locate_DevNode_ExW := nil;
CM_Locate_DevNode_Ex := nil;
CM_Locate_DevInstA := nil;
CM_Locate_DevInstW := nil;
CM_Locate_DevInst := nil;
CM_Locate_DevInst_ExA := nil;
CM_Locate_DevInst_ExW := nil;
CM_Locate_DevInst_Ex := nil;
CM_Merge_Range_List := nil;
CM_Modify_Res_Des := nil;
CM_Modify_Res_Des_Ex := nil;
CM_Move_DevNode := nil;
CM_Move_DevInst := nil;
CM_Move_DevNode_Ex := nil;
CM_Move_DevInst_Ex := nil;
CM_Next_Range := nil;
CM_Get_Next_Res_Des := nil;
CM_Get_Next_Res_Des_Ex := nil;
CM_Open_Class_KeyA := nil;
CM_Open_Class_KeyW := nil;
CM_Open_Class_Key := nil;
CM_Open_Class_Key_ExA := nil;
CM_Open_Class_Key_ExW := nil;
CM_Open_Class_Key_Ex := nil;
CM_Open_DevNode_Key := nil;
CM_Open_DevInst_Key := nil;
CM_Open_DevNode_Key_Ex := nil;
CM_Open_DevInst_Key_Ex := nil;
CM_Query_Arbitrator_Free_Data := nil;
CM_Query_Arbitrator_Free_Data_Ex := nil;
CM_Query_Arbitrator_Free_Size := nil;
CM_Query_Arbitrator_Free_Size_Ex := nil;
CM_Query_Remove_SubTree := nil;
CM_Query_Remove_SubTree_Ex := nil;
{$IFDEF WIN2000_UP}
CM_Query_And_Remove_SubTreeA := nil;
CM_Query_And_Remove_SubTreeW := nil;
CM_Query_And_Remove_SubTree := nil;
CM_Query_And_Remove_SubTree_ExA := nil;
CM_Query_And_Remove_SubTree_ExW := nil;
CM_Query_And_Remove_SubTree_Ex := nil;
CM_Request_Device_EjectA := nil;
CM_Request_Device_EjectW := nil;
CM_Request_Device_Eject := nil;
CM_Request_Device_Eject_ExA := nil;
CM_Request_Device_Eject_ExW := nil;
CM_Request_Device_Eject_Ex := nil;
{$ENDIF WIN2000_UP}
CM_Reenumerate_DevNode := nil;
CM_Reenumerate_DevInst := nil;
CM_Reenumerate_DevNode_Ex := nil;
CM_Reenumerate_DevInst_Ex := nil;
{$IFNDEF WINNT4}
CM_Register_Device_InterfaceA := nil;
CM_Register_Device_InterfaceW := nil;
CM_Register_Device_Interface := nil;
CM_Register_Device_Interface_ExA := nil;
CM_Register_Device_Interface_ExW := nil;
CM_Register_Device_Interface_Ex := nil;
CM_Set_DevNode_Problem_Ex := nil;
CM_Set_DevInst_Problem_Ex := nil;
CM_Set_DevNode_Problem := nil;
CM_Set_DevInst_Problem := nil;
CM_Unregister_Device_InterfaceA := nil;
CM_Unregister_Device_InterfaceW := nil;
CM_Unregister_Device_Interface := nil;
CM_Unregister_Device_Interface_ExA := nil;
CM_Unregister_Device_Interface_ExW := nil;
CM_Unregister_Device_Interface_Ex := nil;
CM_Register_Device_Driver := nil;
CM_Register_Device_Driver_Ex := nil;
{$ENDIF !WINNT4}
CM_Remove_SubTree := nil;
CM_Remove_SubTree_Ex := nil;
CM_Set_DevNode_Registry_PropertyA := nil;
CM_Set_DevNode_Registry_PropertyW := nil;
CM_Set_DevNode_Registry_Property := nil;
CM_Set_DevNode_Registry_Property_ExA := nil;
CM_Set_DevNode_Registry_Property_ExW := nil;
CM_Set_DevNode_Registry_Property_Ex := nil;
CM_Set_DevInst_Registry_PropertyA := nil;
CM_Set_DevInst_Registry_PropertyW := nil;
CM_Set_DevInst_Registry_Property := nil;
CM_Set_DevInst_Registry_Property_ExA := nil;
CM_Set_DevInst_Registry_Property_ExW := nil;
CM_Set_DevInst_Registry_Property_Ex := nil;
{$IFNDEF WINNT4}
CM_Is_Dock_Station_Present := nil;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
CM_Is_Dock_Station_Present_Ex := nil;
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
CM_Request_Eject_PC := nil;
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
CM_Request_Eject_PC_Ex := nil;
{$ENDIF WIN2000_UP}
CM_Set_HW_Prof_FlagsA := nil;
CM_Set_HW_Prof_FlagsW := nil;
CM_Set_HW_Prof_Flags := nil;
CM_Set_HW_Prof_Flags_ExA := nil;
CM_Set_HW_Prof_Flags_ExW := nil;
CM_Set_HW_Prof_Flags_Ex := nil;
CM_Setup_DevNode := nil;
CM_Setup_DevInst := nil;
CM_Setup_DevNode_Ex := nil;
CM_Setup_DevInst_Ex := nil;
CM_Test_Range_Available := nil;
CM_Uninstall_DevNode := nil;
CM_Uninstall_DevInst := nil;
CM_Uninstall_DevNode_Ex := nil;
CM_Uninstall_DevInst_Ex := nil;
CM_Run_Detection := nil;
CM_Run_Detection_Ex := nil;
CM_Set_HW_Prof := nil;
CM_Set_HW_Prof_Ex := nil;
{$IFDEF WIN2000_UP}
CM_Query_Resource_Conflict_List := nil;
CM_Free_Resource_Conflict_Handle := nil;
CM_Get_Resource_Conflict_Count := nil;
CM_Get_Resource_Conflict_DetailsA := nil;
CM_Get_Resource_Conflict_DetailsW := nil;
CM_Get_Resource_Conflict_Details := nil;
CM_Get_Class_Registry_PropertyA := nil;
CM_Get_Class_Registry_PropertyW := nil;
CM_Get_Class_Registry_Property := nil;
CM_Set_Class_Registry_PropertyA := nil;
CM_Set_Class_Registry_PropertyW := nil;
CM_Set_Class_Registry_Property := nil;
CM_WaitNoPendingInstallEvents := nil;
CMP_WaitNoPendingInstallEvents := nil;
{$ENDIF WIN2000_UP}
{$ENDIF CFGMGR32_LINKONREQUEST}
end;
{$IFNDEF CFGMGR32_LINKONREQUEST}
function CM_Add_Empty_Log_Conf; external CfgMgrDllName name 'CM_Add_Empty_Log_Conf';
function CM_Add_Empty_Log_Conf_Ex; external CfgMgrDllName name 'CM_Add_Empty_Log_Conf_Ex';
function CM_Add_ID; external CfgMgrDllName name 'CM_Add_ID' + NameSuffix;
function CM_Add_IDA; external CfgMgrDllName name 'CM_Add_IDA';
function CM_Add_IDW; external CfgMgrDllName name 'CM_Add_IDW';
function CM_Add_ID_Ex; external CfgMgrDllName name 'CM_Add_ID_Ex' + NameSuffix;
function CM_Add_ID_ExA; external CfgMgrDllName name 'CM_Add_ID_ExA';
function CM_Add_ID_ExW; external CfgMgrDllName name 'CM_Add_ID_ExW';
function CM_Add_Range; external CfgMgrDllName name 'CM_Add_Range';
function CM_Add_Res_Des; external CfgMgrDllName name 'CM_Add_Res_Des';
function CM_Add_Res_Des_Ex; external CfgMgrDllName name 'CM_Add_Res_Des_Ex';
function CM_Connect_Machine; external CfgMgrDllName name 'CM_Connect_Machine' + NameSuffix;
function CM_Connect_MachineA; external CfgMgrDllName name 'CM_Connect_MachineA';
function CM_Connect_MachineW; external CfgMgrDllName name 'CM_Connect_MachineW';
function CM_Create_DevNode; external CfgMgrDllName name 'CM_Create_DevNode' + NameSuffix;
function CM_Create_DevNodeA; external CfgMgrDllName name 'CM_Create_DevNodeA';
function CM_Create_DevNodeW; external CfgMgrDllName name 'CM_Create_DevNodeW';
function CM_Create_DevNode_Ex; external CfgMgrDllName name 'CM_Create_DevNode_Ex' + NameSuffix;
function CM_Create_DevNode_ExA; external CfgMgrDllName name 'CM_Create_DevNode_ExA';
function CM_Create_DevNode_ExW; external CfgMgrDllName name 'CM_Create_DevNode_ExW';
function CM_Create_DevInst; external CfgMgrDllName name 'CM_Create_DevNode' + NameSuffix;
function CM_Create_DevInstA; external CfgMgrDllName name 'CM_Create_DevNodeA';
function CM_Create_DevInstW; external CfgMgrDllName name 'CM_Create_DevNodeW';
function CM_Create_DevInst_Ex; external CfgMgrDllName name 'CM_Create_DevNode_Ex' + NameSuffix;
function CM_Create_DevInst_ExA; external CfgMgrDllName name 'CM_Create_DevNode_ExA';
function CM_Create_DevInst_ExW; external CfgMgrDllName name 'CM_Create_DevNode_ExW';
function CM_Create_Range_List; external CfgMgrDllName name 'CM_Create_Range_List';
function CM_Delete_Class_Key; external CfgMgrDllName name 'CM_Delete_Class_Key';
function CM_Delete_Class_Key_Ex; external CfgMgrDllName name 'CM_Delete_Class_Key_Ex';
function CM_Delete_DevNode_Key; external CfgMgrDllName name 'CM_Delete_DevNode_Key';
function CM_Delete_DevNode_Key_Ex; external CfgMgrDllName name 'CM_Delete_DevNode_Key_Ex';
function CM_Delete_DevInst_Key; external CfgMgrDllName name 'CM_Delete_DevNode_Key';
function CM_Delete_DevInst_Key_Ex; external CfgMgrDllName name 'CM_Delete_DevNode_Key_Ex';
function CM_Delete_Range; external CfgMgrDllName name 'CM_Delete_Range';
function CM_Detect_Resource_Conflict; external CfgMgrDllName name 'CM_Detect_Resource_Conflict';
function CM_Detect_Resource_Conflict_Ex; external CfgMgrDllName name 'CM_Detect_Resource_Conflict_Ex';
function CM_Disable_DevNode; external CfgMgrDllName name 'CM_Disable_DevNode';
function CM_Disable_DevNode_Ex; external CfgMgrDllName name 'CM_Disable_DevNode_Ex';
function CM_Disable_DevInst; external CfgMgrDllName name 'CM_Disable_DevNode';
function CM_Disable_DevInst_Ex; external CfgMgrDllName name 'CM_Disable_DevNode_Ex';
function CM_Disconnect_Machine; external CfgMgrDllName name 'CM_Disconnect_Machine';
function CM_Dup_Range_List; external CfgMgrDllName name 'CM_Dup_Range_List';
function CM_Enable_DevNode; external CfgMgrDllName name 'CM_Enable_DevNode';
function CM_Enable_DevNode_Ex; external CfgMgrDllName name 'CM_Enable_DevNode_Ex';
function CM_Enable_DevInst; external CfgMgrDllName name 'CM_Enable_DevNode';
function CM_Enable_DevInst_Ex; external CfgMgrDllName name 'CM_Enable_DevNode_Ex';
function CM_Enumerate_Classes; external CfgMgrDllName name 'CM_Enumerate_Classes';
function CM_Enumerate_Classes_Ex; external CfgMgrDllName name 'CM_Enumerate_Classes_Ex';
function CM_Enumerate_Enumerators; external CfgMgrDllName name 'CM_Enumerate_Enumerators' + NameSuffix;
function CM_Enumerate_EnumeratorsA; external CfgMgrDllName name 'CM_Enumerate_EnumeratorsA';
function CM_Enumerate_EnumeratorsW; external CfgMgrDllName name 'CM_Enumerate_EnumeratorsW';
function CM_Enumerate_Enumerators_Ex; external CfgMgrDllName name 'CM_Enumerate_Enumerators_Ex' + NameSuffix;
function CM_Enumerate_Enumerators_ExA; external CfgMgrDllName name 'CM_Enumerate_Enumerators_ExA';
function CM_Enumerate_Enumerators_ExW; external CfgMgrDllName name 'CM_Enumerate_Enumerators_ExW';
function CM_Find_Range; external CfgMgrDllName name 'CM_Find_Range';
function CM_First_Range; external CfgMgrDllName name 'CM_First_Range';
function CM_Free_Log_Conf; external CfgMgrDllName name 'CM_Free_Log_Conf';
function CM_Free_Log_Conf_Ex; external CfgMgrDllName name 'CM_Free_Log_Conf_Ex';
function CM_Free_Log_Conf_Handle; external CfgMgrDllName name 'CM_Free_Log_Conf_Handle';
function CM_Free_Range_List; external CfgMgrDllName name 'CM_Free_Range_List';
function CM_Free_Res_Des; external CfgMgrDllName name 'CM_Free_Res_Des';
function CM_Free_Res_Des_Ex; external CfgMgrDllName name 'CM_Free_Res_Des_Ex';
function CM_Free_Res_Des_Handle; external CfgMgrDllName name 'CM_Free_Res_Des_Handle';
function CM_Get_Child; external CfgMgrDllName name 'CM_Get_Child';
function CM_Get_Child_Ex; external CfgMgrDllName name 'CM_Get_Child_Ex';
function CM_Get_Class_Name; external CfgMgrDllName name 'CM_Get_Class_Name' + NameSuffix;
function CM_Get_Class_NameA; external CfgMgrDllName name 'CM_Get_Class_NameA';
function CM_Get_Class_NameW; external CfgMgrDllName name 'CM_Get_Class_NameW';
function CM_Get_Class_Name_Ex; external CfgMgrDllName name 'CM_Get_Class_Name_Ex' + NameSuffix;
function CM_Get_Class_Name_ExA; external CfgMgrDllName name 'CM_Get_Class_Name_ExA';
function CM_Get_Class_Name_ExW; external CfgMgrDllName name 'CM_Get_Class_Name_ExW';
function CM_Get_Class_Key_Name; external CfgMgrDllName name 'CM_Get_Class_Key_Name' + NameSuffix;
function CM_Get_Class_Key_NameA; external CfgMgrDllName name 'CM_Get_Class_Key_NameA';
function CM_Get_Class_Key_NameW; external CfgMgrDllName name 'CM_Get_Class_Key_NameW';
function CM_Get_Class_Key_Name_Ex; external CfgMgrDllName name 'CM_Get_Class_Key_Name_Ex' + NameSuffix;
function CM_Get_Class_Key_Name_ExA; external CfgMgrDllName name 'CM_Get_Class_Key_Name_ExA';
function CM_Get_Class_Key_Name_ExW; external CfgMgrDllName name 'CM_Get_Class_Key_Name_ExW';
function CM_Get_Depth; external CfgMgrDllName name 'CM_Get_Depth';
function CM_Get_Depth_Ex; external CfgMgrDllName name 'CM_Get_Depth_Ex';
function CM_Get_Device_ID; external CfgMgrDllName name 'CM_Get_Device_ID' + NameSuffix;
function CM_Get_Device_IDA; external CfgMgrDllName name 'CM_Get_Device_IDA';
function CM_Get_Device_IDW; external CfgMgrDllName name 'CM_Get_Device_IDW';
function CM_Get_Device_ID_Ex; external CfgMgrDllName name 'CM_Get_Device_ID_Ex' + NameSuffix;
function CM_Get_Device_ID_ExA; external CfgMgrDllName name 'CM_Get_Device_ID_ExA';
function CM_Get_Device_ID_ExW; external CfgMgrDllName name 'CM_Get_Device_ID_ExW';
function CM_Get_Device_ID_List; external CfgMgrDllName name 'CM_Get_Device_ID_List' + NameSuffix;
function CM_Get_Device_ID_ListA; external CfgMgrDllName name 'CM_Get_Device_ID_ListA';
function CM_Get_Device_ID_ListW; external CfgMgrDllName name 'CM_Get_Device_ID_ListW';
function CM_Get_Device_ID_List_Ex; external CfgMgrDllName name 'CM_Get_Device_ID_List_Ex' + NameSuffix;
function CM_Get_Device_ID_List_ExA; external CfgMgrDllName name 'CM_Get_Device_ID_List_ExA';
function CM_Get_Device_ID_List_ExW; external CfgMgrDllName name 'CM_Get_Device_ID_List_ExW';
function CM_Get_Device_ID_List_Size; external CfgMgrDllName name 'CM_Get_Device_ID_List_Size' + NameSuffix;
function CM_Get_Device_ID_List_SizeA; external CfgMgrDllName name 'CM_Get_Device_ID_List_SizeA';
function CM_Get_Device_ID_List_SizeW; external CfgMgrDllName name 'CM_Get_Device_ID_List_SizeW';
function CM_Get_Device_ID_List_Size_Ex; external CfgMgrDllName name 'CM_Get_Device_ID_List_Size_Ex' + NameSuffix;
function CM_Get_Device_ID_List_Size_ExA; external CfgMgrDllName name 'CM_Get_Device_ID_List_Size_ExA';
function CM_Get_Device_ID_List_Size_ExW; external CfgMgrDllName name 'CM_Get_Device_ID_List_Size_ExW';
function CM_Get_Device_ID_Size; external CfgMgrDllName name 'CM_Get_Device_ID_Size';
function CM_Get_Device_ID_Size_Ex; external CfgMgrDllName name 'CM_Get_Device_ID_Size_Ex';
function CM_Get_DevNode_Registry_Property; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property' + NameSuffix;
function CM_Get_DevNode_Registry_PropertyA; external CfgMgrDllName name 'CM_Get_DevNode_Registry_PropertyA';
function CM_Get_DevNode_Registry_PropertyW; external CfgMgrDllName name 'CM_Get_DevNode_Registry_PropertyW';
function CM_Get_DevNode_Registry_Property_Ex; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_Ex' + NameSuffix;
function CM_Get_DevNode_Registry_Property_ExA; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_ExA';
function CM_Get_DevNode_Registry_Property_ExW; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_ExW';
function CM_Get_DevInst_Registry_Property; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property' + NameSuffix;
function CM_Get_DevInst_Registry_PropertyA; external CfgMgrDllName name 'CM_Get_DevNode_Registry_PropertyA';
function CM_Get_DevInst_Registry_PropertyW; external CfgMgrDllName name 'CM_Get_DevNode_Registry_PropertyW';
function CM_Get_DevInst_Registry_Property_Ex; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_Ex' + NameSuffix;
function CM_Get_DevInst_Registry_Property_ExA; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_ExA';
function CM_Get_DevInst_Registry_Property_ExW; external CfgMgrDllName name 'CM_Get_DevNode_Registry_Property_ExW';
{$IFDEF WINXP_UP}
function CM_Get_DevNode_Custom_Property; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property' + NameSuffix;
function CM_Get_DevNode_Custom_PropertyA; external SetupApiDllName name 'CM_Get_DevNode_Custom_PropertyA';
function CM_Get_DevNode_Custom_PropertyW; external SetupApiDllName name 'CM_Get_DevNode_Custom_PropertyW';
function CM_Get_DevNode_Custom_Property_Ex; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_Ex' + NameSuffix;
function CM_Get_DevNode_Custom_Property_ExA; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_ExA';
function CM_Get_DevNode_Custom_Property_ExW; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_ExW';
function CM_Get_DevInst_Custom_Property; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property' + NameSuffix;
function CM_Get_DevInst_Custom_PropertyA; external SetupApiDllName name 'CM_Get_DevNode_Custom_PropertyA';
function CM_Get_DevInst_Custom_PropertyW; external SetupApiDllName name 'CM_Get_DevNode_Custom_PropertyW';
function CM_Get_DevInst_Custom_Property_Ex; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_Ex' + NameSuffix;
function CM_Get_DevInst_Custom_Property_ExA; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_ExA';
function CM_Get_DevInst_Custom_Property_ExW; external SetupApiDllName name 'CM_Get_DevNode_Custom_Property_ExW';
{$ENDIF WINXP_UP}
function CM_Get_DevNode_Status; external CfgMgrDllName name 'CM_Get_DevNode_Status';
function CM_Get_DevInst_Status; external CfgMgrDllName name 'CM_Get_DevNode_Status';
function CM_Get_DevNode_Status_Ex; external CfgMgrDllName name 'CM_Get_DevNode_Status_Ex';
function CM_Get_DevInst_Status_Ex; external CfgMgrDllName name 'CM_Get_DevNode_Status_Ex';
function CM_Get_First_Log_Conf; external CfgMgrDllName name 'CM_Get_First_Log_Conf';
function CM_Get_First_Log_Conf_Ex; external CfgMgrDllName name 'CM_Get_First_Log_Conf_Ex';
function CM_Get_Global_State; external CfgMgrDllName name 'CM_Get_Global_State';
function CM_Get_Global_State_Ex; external CfgMgrDllName name 'CM_Get_Global_State_Ex';
function CM_Get_Hardware_Profile_Info; external CfgMgrDllName name 'CM_Get_Hardware_Profile_Info' + NameSuffix;
function CM_Get_Hardware_Profile_InfoA; external CfgMgrDllName name 'CM_Get_Hardware_Profile_InfoA';
function CM_Get_Hardware_Profile_Info_Ex; external CfgMgrDllName name 'CM_Get_Hardware_Profile_Info_Ex' + NameSuffix;
function CM_Get_Hardware_Profile_Info_ExA; external CfgMgrDllName name 'CM_Get_Hardware_Profile_Info_ExA';
function CM_Get_Hardware_Profile_InfoW; external CfgMgrDllName name 'CM_Get_Hardware_Profile_InfoW';
function CM_Get_Hardware_Profile_Info_ExW; external CfgMgrDllName name 'CM_Get_Hardware_Profile_Info_ExW';
function CM_Get_HW_Prof_Flags; external CfgMgrDllName name 'CM_Get_HW_Prof_Flags' + NameSuffix;
function CM_Get_HW_Prof_FlagsA; external CfgMgrDllName name 'CM_Get_HW_Prof_FlagsA';
function CM_Get_HW_Prof_FlagsW; external CfgMgrDllName name 'CM_Get_HW_Prof_FlagsW';
function CM_Get_HW_Prof_Flags_Ex; external CfgMgrDllName name 'CM_Get_HW_Prof_Flags_Ex' + NameSuffix;
function CM_Get_HW_Prof_Flags_ExA; external CfgMgrDllName name 'CM_Get_HW_Prof_Flags_ExA';
function CM_Get_HW_Prof_Flags_ExW; external CfgMgrDllName name 'CM_Get_HW_Prof_Flags_ExW';
{$IFNDEF WINNT4}
function CM_Get_Device_Interface_Alias; external CfgMgrDllName name 'CM_Get_Device_Interface_Alias' + NameSuffix;
function CM_Get_Device_Interface_AliasA; external CfgMgrDllName name 'CM_Get_Device_Interface_AliasA';
function CM_Get_Device_Interface_AliasW; external CfgMgrDllName name 'CM_Get_Device_Interface_AliasW';
function CM_Get_Device_Interface_Alias_Ex; external CfgMgrDllName name 'CM_Get_Device_Interface_Alias_Ex' + NameSuffix;
function CM_Get_Device_Interface_Alias_ExA; external CfgMgrDllName name 'CM_Get_Device_Interface_Alias_ExA';
function CM_Get_Device_Interface_Alias_ExW; external CfgMgrDllName name 'CM_Get_Device_Interface_Alias_ExW';
function CM_Get_Device_Interface_List; external CfgMgrDllName name 'CM_Get_Device_Interface_List' + NameSuffix;
function CM_Get_Device_Interface_ListA; external CfgMgrDllName name 'CM_Get_Device_Interface_ListA';
function CM_Get_Device_Interface_ListW; external CfgMgrDllName name 'CM_Get_Device_Interface_ListW';
function CM_Get_Device_Interface_List_Ex; external CfgMgrDllName name 'CM_Get_Device_Interface_List_Ex' + NameSuffix;
function CM_Get_Device_Interface_List_ExA; external CfgMgrDllName name 'CM_Get_Device_Interface_List_ExA';
function CM_Get_Device_Interface_List_ExW; external CfgMgrDllName name 'CM_Get_Device_Interface_List_ExW';
function CM_Get_Device_Interface_List_Size; external CfgMgrDllName name 'CM_Get_Device_Interface_List_Size' + NameSuffix;
function CM_Get_Device_Interface_List_SizeA; external CfgMgrDllName name 'CM_Get_Device_Interface_List_SizeA';
function CM_Get_Device_Interface_List_SizeW; external CfgMgrDllName name 'CM_Get_Device_Interface_List_SizeW';
function CM_Get_Device_Interface_List_Size_Ex; external CfgMgrDllName name 'CM_Get_Device_Interface_List_Size_Ex' + NameSuffix;
function CM_Get_Device_Interface_List_Size_ExA; external CfgMgrDllName name 'CM_Get_Device_Interface_List_Size_ExA';
function CM_Get_Device_Interface_List_Size_ExW; external CfgMgrDllName name 'CM_Get_Device_Interface_List_Size_ExW';
function CM_Get_Log_Conf_Priority; external CfgMgrDllName name 'CM_Get_Log_Conf_Priority';
function CM_Get_Log_Conf_Priority_Ex; external CfgMgrDllName name 'CM_Get_Log_Conf_Priority_Ex';
{$ENDIF !WINNT4}
function CM_Get_Next_Log_Conf; external CfgMgrDllName name 'CM_Get_Next_Log_Conf';
function CM_Get_Next_Log_Conf_Ex; external CfgMgrDllName name 'CM_Get_Next_Log_Conf_Ex';
function CM_Get_Parent; external CfgMgrDllName name 'CM_Get_Parent';
function CM_Get_Parent_Ex; external CfgMgrDllName name 'CM_Get_Parent_Ex';
function CM_Get_Res_Des_Data; external CfgMgrDllName name 'CM_Get_Res_Des_Data';
function CM_Get_Res_Des_Data_Ex; external CfgMgrDllName name 'CM_Get_Res_Des_Data_Ex';
function CM_Get_Res_Des_Data_Size; external CfgMgrDllName name 'CM_Get_Res_Des_Data_Size';
function CM_Get_Res_Des_Data_Size_Ex; external CfgMgrDllName name 'CM_Get_Res_Des_Data_Size_Ex';
function CM_Get_Sibling; external CfgMgrDllName name 'CM_Get_Sibling';
function CM_Get_Sibling_Ex; external CfgMgrDllName name 'CM_Get_Sibling_Ex';
function CM_Get_Version; external CfgMgrDllName name 'CM_Get_Version';
function CM_Get_Version_Ex; external CfgMgrDllName name 'CM_Get_Version_Ex';
{$IFDEF WINXP_UP}
function CM_Is_Version_Available; external SetupApiDllName name 'CM_Is_Version_Available';
function CM_Is_Version_Available_Ex; external SetupApiDllName name 'CM_Is_Version_Available_Ex';
{$ENDIF WINXP_UP}
function CM_Intersect_Range_List; external CfgMgrDllName name 'CM_Intersect_Range_List';
function CM_Invert_Range_List; external CfgMgrDllName name 'CM_Invert_Range_List';
function CM_Locate_DevNode; external CfgMgrDllName name 'CM_Locate_DevNode' + NameSuffix;
function CM_Locate_DevNodeA; external CfgMgrDllName name 'CM_Locate_DevNodeA';
function CM_Locate_DevNodeW; external CfgMgrDllName name 'CM_Locate_DevNodeW';
function CM_Locate_DevNode_Ex; external CfgMgrDllName name 'CM_Locate_DevNode_Ex' + NameSuffix;
function CM_Locate_DevNode_ExA; external CfgMgrDllName name 'CM_Locate_DevNode_ExA';
function CM_Locate_DevNode_ExW; external CfgMgrDllName name 'CM_Locate_DevNode_ExW';
function CM_Locate_DevInst; external CfgMgrDllName name 'CM_Locate_DevNode' + NameSuffix;
function CM_Locate_DevInstA; external CfgMgrDllName name 'CM_Locate_DevNodeA';
function CM_Locate_DevInstW; external CfgMgrDllName name 'CM_Locate_DevNodeW';
function CM_Locate_DevInst_Ex; external CfgMgrDllName name 'CM_Locate_DevNode_Ex' + NameSuffix;
function CM_Locate_DevInst_ExA; external CfgMgrDllName name 'CM_Locate_DevNode_ExA';
function CM_Locate_DevInst_ExW; external CfgMgrDllName name 'CM_Locate_DevNode_ExW';
function CM_Merge_Range_List; external CfgMgrDllName name 'CM_Merge_Range_List';
function CM_Modify_Res_Des; external CfgMgrDllName name 'CM_Modify_Res_Des';
function CM_Modify_Res_Des_Ex; external CfgMgrDllName name 'CM_Modify_Res_Des_Ex';
function CM_Move_DevNode; external CfgMgrDllName name 'CM_Move_DevNode';
function CM_Move_DevInst; external CfgMgrDllName name 'CM_Move_DevNode';
function CM_Move_DevNode_Ex; external CfgMgrDllName name 'CM_Move_DevNode_Ex';
function CM_Move_DevInst_Ex; external CfgMgrDllName name 'CM_Move_DevNode_Ex';
function CM_Next_Range; external CfgMgrDllName name 'CM_Next_Range';
function CM_Get_Next_Res_Des; external CfgMgrDllName name 'CM_Get_Next_Res_Des';
function CM_Get_Next_Res_Des_Ex; external CfgMgrDllName name 'CM_Get_Next_Res_Des_Ex';
function CM_Open_Class_Key; external CfgMgrDllName name 'CM_Open_Class_Key' + NameSuffix;
function CM_Open_Class_KeyA; external CfgMgrDllName name 'CM_Open_Class_KeyA';
function CM_Open_Class_KeyW; external CfgMgrDllName name 'CM_Open_Class_KeyW';
function CM_Open_Class_Key_Ex; external CfgMgrDllName name 'CM_Open_Class_Key_Ex' + NameSuffix;
function CM_Open_Class_Key_ExA; external CfgMgrDllName name 'CM_Open_Class_Key_ExA';
function CM_Open_Class_Key_ExW; external CfgMgrDllName name 'CM_Open_Class_Key_ExW';
function CM_Open_DevNode_Key; external CfgMgrDllName name 'CM_Open_DevNode_Key';
function CM_Open_DevInst_Key; external CfgMgrDllName name 'CM_Open_DevNode_Key';
function CM_Open_DevNode_Key_Ex; external CfgMgrDllName name 'CM_Open_DevNode_Key_Ex';
function CM_Open_DevInst_Key_Ex; external CfgMgrDllName name 'CM_Open_DevNode_Key_Ex';
function CM_Query_Arbitrator_Free_Data; external CfgMgrDllName name 'CM_Query_Arbitrator_Free_Data';
function CM_Query_Arbitrator_Free_Data_Ex; external CfgMgrDllName name 'CM_Query_Arbitrator_Free_Data_Ex';
function CM_Query_Arbitrator_Free_Size; external CfgMgrDllName name 'CM_Query_Arbitrator_Free_Size';
function CM_Query_Arbitrator_Free_Size_Ex; external CfgMgrDllName name 'CM_Query_Arbitrator_Free_Size_Ex';
function CM_Query_Remove_SubTree; external CfgMgrDllName name 'CM_Query_Remove_SubTree';
function CM_Query_Remove_SubTree_Ex; external CfgMgrDllName name 'CM_Query_Remove_SubTree_Ex';
{$IFDEF WIN2000_UP}
function CM_Query_And_Remove_SubTree; external CfgMgrDllName name 'CM_Query_And_Remove_SubTree' + NameSuffix;
function CM_Query_And_Remove_SubTreeA; external CfgMgrDllName name 'CM_Query_And_Remove_SubTreeA';
function CM_Query_And_Remove_SubTree_Ex; external CfgMgrDllName name 'CM_Query_And_Remove_SubTree_Ex' + NameSuffix;
function CM_Query_And_Remove_SubTree_ExA; external CfgMgrDllName name 'CM_Query_And_Remove_SubTree_ExA';
function CM_Query_And_Remove_SubTreeW; external CfgMgrDllName name 'CM_Query_And_Remove_SubTreeW';
function CM_Query_And_Remove_SubTree_ExW; external CfgMgrDllName name 'CM_Query_And_Remove_SubTree_ExW';
function CM_Request_Device_Eject; external SetupApiDllName name 'CM_Request_Device_Eject' + NameSuffix;
function CM_Request_Device_EjectA; external SetupApiDllName name 'CM_Request_Device_EjectA';
function CM_Request_Device_EjectW; external SetupApiDllName name 'CM_Request_Device_EjectW';
function CM_Request_Device_Eject_Ex; external SetupApiDllName name 'CM_Request_Device_Eject_Ex' + NameSuffix;
function CM_Request_Device_Eject_ExA; external SetupApiDllName name 'CM_Request_Device_Eject_ExA';
function CM_Request_Device_Eject_ExW; external SetupApiDllName name 'CM_Request_Device_Eject_ExW';
{$ENDIF WIN2000_UP}
function CM_Reenumerate_DevNode; external CfgMgrDllName name 'CM_Reenumerate_DevNode';
function CM_Reenumerate_DevInst; external CfgMgrDllName name 'CM_Reenumerate_DevNode';
function CM_Reenumerate_DevNode_Ex; external CfgMgrDllName name 'CM_Reenumerate_DevNode_Ex';
function CM_Reenumerate_DevInst_Ex; external CfgMgrDllName name 'CM_Reenumerate_DevNode_Ex';
{$IFNDEF WINNT4}
function CM_Register_Device_Interface; external CfgMgrDllName name 'CM_Register_Device_Interface' + NameSuffix;
function CM_Register_Device_InterfaceA; external CfgMgrDllName name 'CM_Register_Device_InterfaceA';
function CM_Register_Device_InterfaceW; external CfgMgrDllName name 'CM_Register_Device_InterfaceW';
function CM_Register_Device_Interface_Ex; external CfgMgrDllName name 'CM_Register_Device_Interface_Ex' + NameSuffix;
function CM_Register_Device_Interface_ExA; external CfgMgrDllName name 'CM_Register_Device_Interface_ExA';
function CM_Register_Device_Interface_ExW; external CfgMgrDllName name 'CM_Register_Device_Interface_ExW';
function CM_Set_DevNode_Problem_Ex; external CfgMgrDllName name 'CM_Set_DevNode_Problem_Ex';
function CM_Set_DevInst_Problem_Ex; external CfgMgrDllName name 'CM_Set_DevNode_Problem_Ex';
function CM_Set_DevNode_Problem; external CfgMgrDllName name 'CM_Set_DevNode_Problem';
function CM_Set_DevInst_Problem; external CfgMgrDllName name 'CM_Set_DevNode_Problem';
function CM_Unregister_Device_Interface; external CfgMgrDllName name 'CM_Unregister_Device_Interface' + NameSuffix;
function CM_Unregister_Device_InterfaceA; external CfgMgrDllName name 'CM_Unregister_Device_InterfaceA';
function CM_Unregister_Device_InterfaceW; external CfgMgrDllName name 'CM_Unregister_Device_InterfaceW';
function CM_Unregister_Device_Interface_Ex; external CfgMgrDllName name 'CM_Unregister_Device_Interface_Ex' + NameSuffix;
function CM_Unregister_Device_Interface_ExA; external CfgMgrDllName name 'CM_Unregister_Device_Interface_ExA';
function CM_Unregister_Device_Interface_ExW; external CfgMgrDllName name 'CM_Unregister_Device_Interface_ExW';
function CM_Register_Device_Driver; external CfgMgrDllName name 'CM_Register_Device_Driver';
function CM_Register_Device_Driver_Ex; external CfgMgrDllName name 'CM_Register_Device_Driver_Ex';
{$ENDIF !WINNT4}
function CM_Remove_SubTree; external CfgMgrDllName name 'CM_Remove_SubTree';
function CM_Remove_SubTree_Ex; external CfgMgrDllName name 'CM_Remove_SubTree_Ex';
function CM_Set_DevNode_Registry_Property; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property' + NameSuffix;
function CM_Set_DevNode_Registry_PropertyA; external CfgMgrDllName name 'CM_Set_DevNode_Registry_PropertyA';
function CM_Set_DevNode_Registry_PropertyW; external CfgMgrDllName name 'CM_Set_DevNode_Registry_PropertyW';
function CM_Set_DevNode_Registry_Property_Ex; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_Ex' + NameSuffix;
function CM_Set_DevNode_Registry_Property_ExA; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_ExA';
function CM_Set_DevNode_Registry_Property_ExW; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_ExW';
function CM_Set_DevInst_Registry_Property; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property' + NameSuffix;
function CM_Set_DevInst_Registry_PropertyA; external CfgMgrDllName name 'CM_Set_DevNode_Registry_PropertyA';
function CM_Set_DevInst_Registry_PropertyW; external CfgMgrDllName name 'CM_Set_DevNode_Registry_PropertyW';
function CM_Set_DevInst_Registry_Property_Ex; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_Ex' + NameSuffix;
function CM_Set_DevInst_Registry_Property_ExA; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_ExA';
function CM_Set_DevInst_Registry_Property_ExW; external CfgMgrDllName name 'CM_Set_DevNode_Registry_Property_ExW';
{$IFNDEF WINNT4}
function CM_Is_Dock_Station_Present; external CfgMgrDllName name 'CM_Is_Dock_Station_Present';
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
function CM_Is_Dock_Station_Present_Ex; external CfgMgrDllName name 'CM_Is_Dock_Station_Present_Ex';
{$ENDIF WIN2000_UP}
{$IFNDEF WINNT4}
function CM_Request_Eject_PC; external CfgMgrDllName name 'CM_Request_Eject_PC';
{$ENDIF !WINNT4}
{$IFDEF WIN2000_UP}
function CM_Request_Eject_PC_Ex; external CfgMgrDllName name 'CM_Request_Eject_PC_Ex';
{$ENDIF WIN2000_UP}
function CM_Set_HW_Prof_Flags; external CfgMgrDllName name 'CM_Set_HW_Prof_Flags' + NameSuffix;
function CM_Set_HW_Prof_FlagsA; external CfgMgrDllName name 'CM_Set_HW_Prof_FlagsA';
function CM_Set_HW_Prof_FlagsW; external CfgMgrDllName name 'CM_Set_HW_Prof_FlagsW';
function CM_Set_HW_Prof_Flags_Ex; external CfgMgrDllName name 'CM_Set_HW_Prof_Flags_Ex' + NameSuffix;
function CM_Set_HW_Prof_Flags_ExA; external CfgMgrDllName name 'CM_Set_HW_Prof_Flags_ExA';
function CM_Set_HW_Prof_Flags_ExW; external CfgMgrDllName name 'CM_Set_HW_Prof_Flags_ExW';
function CM_Setup_DevNode; external CfgMgrDllName name 'CM_Setup_DevNode';
function CM_Setup_DevInst; external CfgMgrDllName name 'CM_Setup_DevNode';
function CM_Setup_DevNode_Ex; external CfgMgrDllName name 'CM_Setup_DevNode_Ex';
function CM_Setup_DevInst_Ex; external CfgMgrDllName name 'CM_Setup_DevNode_Ex';
function CM_Test_Range_Available; external CfgMgrDllName name 'CM_Test_Range_Available';
function CM_Uninstall_DevNode; external CfgMgrDllName name 'CM_Uninstall_DevNode';
function CM_Uninstall_DevInst; external CfgMgrDllName name 'CM_Uninstall_DevNode';
function CM_Uninstall_DevNode_Ex; external CfgMgrDllName name 'CM_Uninstall_DevNode_Ex';
function CM_Uninstall_DevInst_Ex; external CfgMgrDllName name 'CM_Uninstall_DevNode_Ex';
function CM_Run_Detection; external CfgMgrDllName name 'CM_Run_Detection';
function CM_Run_Detection_Ex; external CfgMgrDllName name 'CM_Run_Detection_Ex';
function CM_Set_HW_Prof; external CfgMgrDllName name 'CM_Set_HW_Prof';
function CM_Set_HW_Prof_Ex; external CfgMgrDllName name 'CM_Set_HW_Prof_Ex';
{$IFDEF WIN2000_UP}
function CM_Query_Resource_Conflict_List; external CfgMgrDllName name 'CM_Query_Resource_Conflict_List';
function CM_Free_Resource_Conflict_Handle; external CfgMgrDllName name 'CM_Free_Resource_Conflict_Handle';
function CM_Get_Resource_Conflict_Count; external CfgMgrDllName name 'CM_Get_Resource_Conflict_Count';
function CM_Get_Resource_Conflict_Details; external CfgMgrDllName name 'CM_Get_Resource_Conflict_Details' + NameSuffix;
function CM_Get_Resource_Conflict_DetailsA; external CfgMgrDllName name 'CM_Get_Resource_Conflict_DetailsA';
function CM_Get_Resource_Conflict_DetailsW; external CfgMgrDllName name 'CM_Get_Resource_Conflict_DetailsW';
function CM_Get_Class_Registry_Property; external CfgMgrDllName name 'CM_Get_Class_Registry_Property' + NameSuffix;
function CM_Get_Class_Registry_PropertyA; external CfgMgrDllName name 'CM_Get_Class_Registry_PropertyA';
function CM_Get_Class_Registry_PropertyW; external CfgMgrDllName name 'CM_Get_Class_Registry_PropertyW';
function CM_Set_Class_Registry_Property; external CfgMgrDllName name 'CM_Set_Class_Registry_Property' + NameSuffix;
function CM_Set_Class_Registry_PropertyA; external CfgMgrDllName name 'CM_Set_Class_Registry_PropertyA';
function CM_Set_Class_Registry_PropertyW; external CfgMgrDllName name 'CM_Set_Class_Registry_PropertyW';
function CM_WaitNoPendingInstallEvents; external CfgMgrDllName name 'CMP_WaitNoPendingInstallEvents';
function CMP_WaitNoPendingInstallEvents; external CfgMgrDllName name 'CMP_WaitNoPendingInstallEvents';
{$ENDIF WIN2000_UP}
{$ENDIF !CFGMGR32_LINKONREQUEST}
end.