⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cfgmgr32.pas

📁 East make Tray Icon in delphi
💻 PAS
📖 第 1 页 / 共 5 页
字号:

  //
  // 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: HMACHI

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -