📄 cfgmgr32.pas
字号:
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}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -