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

📄 common.pas

📁 获取所有网卡设备
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  DIF_RESERVED1                     = $00000025;
  {$EXTERNALSYM DIF_RESERVED1}
  DIF_TROUBLESHOOTER                = $00000026;
  {$EXTERNALSYM DIF_TROUBLESHOOTER}
  DIF_POWERMESSAGEWAKE              = $00000027;
  {$EXTERNALSYM DIF_POWERMESSAGEWAKE}

//
// Values indicating a change in a device's state
//
const
  DICS_ENABLE     = $00000001;
  {$EXTERNALSYM DICS_ENABLE}
  DICS_DISABLE    = $00000002;
  {$EXTERNALSYM DICS_DISABLE}
  DICS_PROPCHANGE = $00000003;
  {$EXTERNALSYM DICS_PROPCHANGE}
  DICS_START      = $00000004;
  {$EXTERNALSYM DICS_START}
  DICS_STOP       = $00000005;
  {$EXTERNALSYM DICS_STOP}

//
// Values specifying the scope of a device property change
//
  DICS_FLAG_GLOBAL         = $00000001;  // make change in all hardware profiles
  {$EXTERNALSYM DICS_FLAG_GLOBAL}
  DICS_FLAG_CONFIGSPECIFIC = $00000002;  // make change in specified profile only
  {$EXTERNALSYM DICS_FLAG_CONFIGSPECIFIC}
  DICS_FLAG_CONFIGGENERAL  = $00000004;  // 1 or more hardware profile-specific
  {$EXTERNALSYM DICS_FLAG_CONFIGGENERAL} // changes to follow.

  function SetupDiCallClassInstaller(InstallFunction: DI_FUNCTION;
      DeviceInfoSet: HDEVINFO; DeviceInfoData: PSP_DEVINFO_DATA): BOOL;
      stdcall external 'setupapi.dll' name 'SetupDiCallClassInstaller';

  function SetupDiSetClassInstallParams(DeviceInfoSet: HDEVINFO;
      DeviceInfoData: PSP_DEVINFO_DATA; ClassInstallParams: PSP_CLASSINSTALL_HEADER;
      ClassInstallParamsSize: DWORD): BOOL;
      stdcall external 'setupapi.dll' name 'SetupDiSetClassInstallParamsA';

  function SetupDiClassNameFromGuid(const ClassGuid: PGUID; ClassName: PAnsiChar;
      ClassNameSize: DWORD; RequiredSize: PDWORD): LongBool;
      stdcall external 'setupapi.dll' name 'SetupDiClassNameFromGuidA';

const
  CR_SUCCESS                  = $00000000;
  CR_DEFAULT                  = $00000001;
  CR_OUT_OF_MEMORY            = $00000002;
  CR_INVALID_POINTER          = $00000003;
  CR_INVALID_FLAG             = $00000004;
  CR_INVALID_DEVNODE          = $00000005;
  CR_INVALID_DEVINST          = CR_INVALID_DEVNODE;
  CR_INVALID_RES_DES          = $00000006;
  CR_INVALID_LOG_CONF         = $00000007;
  CR_INVALID_ARBITRATOR       = $00000008;
  CR_INVALID_NODELIST         = $00000009;
  CR_DEVNODE_HAS_REQS         = $0000000A;
  CR_DEVINST_HAS_REQS         = CR_DEVNODE_HAS_REQS;
  CR_INVALID_RESOURCEID       = $0000000B;
  CR_DLVXD_NOT_FOUND          = $0000000C;   // WIN 95 ONLY
  CR_NO_SUCH_DEVNODE          = $0000000D;
  CR_NO_SUCH_DEVINST          = CR_NO_SUCH_DEVNODE;
  CR_NO_MORE_LOG_CONF         = $0000000E;
  CR_NO_MORE_RES_DES          = $0000000F;
  CR_ALREADY_SUCH_DEVNODE     = $00000010;
  CR_ALREADY_SUCH_DEVINST     = CR_ALREADY_SUCH_DEVNODE;
  CR_INVALID_RANGE_LIST       = $00000011;
  CR_INVALID_RANGE            = $00000012;
  CR_FAILURE                  = $00000013;
  CR_NO_SUCH_LOGICAL_DEV      = $00000014;
  CR_CREATE_BLOCKED           = $00000015;
  CR_NOT_SYSTEM_VM            = $00000016;   // WIN 95 ONLY
  CR_REMOVE_VETOED            = $00000017;
  CR_APM_VETOED               = $00000018;
  CR_INVALID_LOAD_TYPE        = $00000019;
  CR_BUFFER_SMALL             = $0000001A;
  CR_NO_ARBITRATOR            = $0000001B;
  CR_NO_REGISTRY_HANDLE       = $0000001C;
  CR_REGISTRY_ERROR           = $0000001D;
  CR_INVALID_DEVICE_ID        = $0000001E;
  CR_INVALID_DATA             = $0000001F;
  CR_INVALID_API              = $00000020;
  CR_DEVLOADER_NOT_READY      = $00000021;
  CR_NEED_RESTART             = $00000022;
  CR_NO_MORE_HW_PROFILES      = $00000023;
  CR_DEVICE_NOT_THERE         = $00000024;
  CR_NO_SUCH_VALUE            = $00000025;
  CR_WRONG_TYPE               = $00000026;
  CR_INVALID_PRIORITY         = $00000027;
  CR_NOT_DISABLEABLE          = $00000028;
  CR_FREE_RESOURCES           = $00000029;
  CR_QUERY_VETOED             = $0000002A;
  CR_CANT_SHARE_IRQ           = $0000002B;
  CR_NO_DEPENDENT             = $0000002C;
  CR_SAME_RESOURCES           = $0000002D;
  CR_NO_SUCH_REGISTRY_KEY     = $0000002E;
  CR_INVALID_MACHINENAME      = $0000002F;   // NT ONLY
  CR_REMOTE_COMM_FAILURE      = $00000030;   // NT ONLY
  CR_MACHINE_UNAVAILABLE      = $00000031;   // NT ONLY
  CR_NO_CM_SERVICES           = $00000032;   // NT ONLY
  CR_ACCESS_DENIED            = $00000033;   // NT ONLY
  CR_CALL_NOT_IMPLEMENTED     = $00000034;
  CR_INVALID_PROPERTY         = $00000035;
  CR_DEVICE_INTERFACE_ACTIVE  = $00000036;
  CR_NO_SUCH_DEVICE_INTERFACE = $00000037;
  CR_INVALID_REFERENCE_STRING = $00000038;
  CR_INVALID_CONFLICT_LIST    = $00000039;
  CR_INVALID_INDEX            = $0000003A;
  CR_INVALID_STRUCTURE_SIZE   = $0000003B;
  NUM_CR_RESULTS              = $0000003C;

  CM_PROB_NOT_CONFIGURED        = $00000001; // no config for device
  CM_PROB_DEVLOADER_FAILED      = $00000002; // service load failed
  CM_PROB_OUT_OF_MEMORY         = $00000003; // out of memory
  CM_PROB_ENTRY_IS_WRONG_TYPE   = $00000004; //
  CM_PROB_LACKED_ARBITRATOR     = $00000005; //
  CM_PROB_BOOT_CONFIG_CONFLICT  = $00000006; // boot config conflict
  CM_PROB_FAILED_FILTER         = $00000007; //
  CM_PROB_DEVLOADER_NOT_FOUND   = $00000008; // Devloader not found
  CM_PROB_INVALID_DATA          = $00000009; //
  CM_PROB_FAILED_START          = $0000000A; //
  CM_PROB_LIAR                  = $0000000B; //
  CM_PROB_NORMAL_CONFLICT       = $0000000C; // config conflict
  CM_PROB_NOT_VERIFIED          = $0000000D; //
  CM_PROB_NEED_RESTART          = $0000000E; // requires restart
  CM_PROB_REENUMERATION         = $0000000F; //
  CM_PROB_PARTIAL_LOG_CONF      = $00000010; //
  CM_PROB_UNKNOWN_RESOURCE      = $00000011; // unknown res type
  CM_PROB_REINSTALL             = $00000012; //
  CM_PROB_REGISTRY              = $00000013; //
  CM_PROB_VXDLDR                = $00000014; // WINDOWS 95 ONLY
  CM_PROB_WILL_BE_REMOVED       = $00000015; // devinst will remove
  CM_PROB_DISABLED              = $00000016; // devinst is disabled
  CM_PROB_DEVLOADER_NOT_READY   = $00000017; // Devloader not ready
  CM_PROB_DEVICE_NOT_THERE      = $00000018; // device doesn't exist
  CM_PROB_MOVED                 = $00000019; //
  CM_PROB_TOO_EARLY             = $0000001A; //
  CM_PROB_NO_VALID_LOG_CONF     = $0000001B; // no valid log config
  CM_PROB_FAILED_INSTALL        = $0000001C; // install failed
  CM_PROB_HARDWARE_DISABLED     = $0000001D; // device disabled
  CM_PROB_CANT_SHARE_IRQ        = $0000001E; // can't share IRQ
  CM_PROB_FAILED_ADD            = $0000001F; // driver failed add
  CM_PROB_DISABLED_SERVICE      = $00000020; // service's Start = 4
  CM_PROB_TRANSLATION_FAILED    = $00000021; // resource translation failed
  CM_PROB_NO_SOFTCONFIG         = $00000022; // no soft config
  CM_PROB_BIOS_TABLE            = $00000023; // device missing in BIOS table
  CM_PROB_IRQ_TRANSLATION_FAILED= $00000024; // IRQ translator failed
  NUM_CM_PROB                   = $00000025;

  DN_ROOT_ENUMERATED = $00000001; // Was enumerated by ROOT
  DN_DRIVER_LOADED   = $00000002; // Has Register_Device_Driver
  DN_ENUM_LOADED     = $00000004; // Has Register_Enumerator
  DN_STARTED         = $00000008; // Is currently configured
  DN_MANUAL          = $00000010; // Manually installed
  DN_NEED_TO_ENUM    = $00000020; // May need reenumeration
  DN_NOT_FIRST_TIME  = $00000040; // Has received a config
  DN_HARDWARE_ENUM   = $00000080; // Enum generates hardware ID
  DN_LIAR            = $00000100; // Lied about can reconfig once
  DN_HAS_MARK        = $00000200; // Not CM_Create_DevInst lately
  DN_HAS_PROBLEM     = $00000400; // Need device installer
  DN_FILTERED        = $00000800; // Is filtered
  DN_MOVED           = $00001000; // Has been moved
  DN_DISABLEABLE     = $00002000; // Can be rebalanced
  DN_REMOVABLE       = $00004000; // Can be removed
  DN_PRIVATE_PROBLEM = $00008000; // Has a private problem
  DN_MF_PARENT       = $00010000; // Multi function parent
  DN_MF_CHILD        = $00020000; // Multi function child
  DN_WILL_BE_REMOVED = $00040000; // DevInst is being removed

{****************************************************************************
 *
 *				DEVNODE STATUS
 *
 ****************************************************************************
 *
 *	These are the bits in the devnode's status that someone can query
 *	with a CM_Get_DevNode_Status. The A/S column tells wheter the flag
 *	can be change asynchronously or not.
 *
 ***************************************************************************}
  // 4.0 OPK2 Flags
  DN_NOT_FIRST_TIMEE	= $00080000; // S: Has received a config enumerate
  DN_STOP_FREE_RES	  = $00100000; // S: When child is stopped, free resources
  DN_REBAL_CANDIDATE	= $00200000; // S: Don't skip during rebalance
  DN_BAD_PARTIAL		  = $00400000; // S: This devnode's log_confs do not have same resources
  DN_NT_ENUMERATOR	  = $00800000; // S: This devnode's is an NT enumerator
  DN_NT_DRIVER		    = $01000000; // S: This devnode's is an NT driver

  // 4.1 Flags
  DN_NEEDS_LOCKING   	= $02000000; // S: Devnode need lock resume processing
  DN_ARM_WAKEUP		    = $04000000; // S: Devnode can be the wakeup device
  DN_APM_ENUMERATOR	  = $08000000; // S: APM aware enumerator
  DN_APM_DRIVER		    = $10000000; // S: APM aware driver
  DN_SILENT_INSTALL	  = $20000000; // S: Silent install
  DN_NO_SHOW_IN_DM	  = $40000000; // S: No show in device manager
  DN_BOOT_LOG_PROB	  = $80000000; // S: Had a problem during preassignment of boot log conf

  DN_CHANGEABLE_FLAGS	= $79BB62E0;

  // 4.11 Flags
  DN2_EJECT_ON_REMOVE	  = $00000001; // S: to be check on CONFIG_REMOVE to see if ejection is wanted
  DN2_LOCK_CAPABLE	    = $00000002; // S: Locking capable
  DN2_EJECT_CAPABLE	    = $00000004; // S: Ejecting capable
  DN2_EJECT_LOCKED	    = $00000008; // S: Currently locked from ejecting
  DN2_EJECTED_ON_REMOVE	= $00000010; // S: to be set on CONFIG_REMOVE on successful ejection
  DN2_POWER_NOOP		    = $00000020; // S: does not care about power
  DN2_STARTING		      = $00000040; // S: devnode is currently starting
  DN2_NO_EXIT_REMOVE	  = $00000080; // S: devnode will not be remove at exit
  DN2_NO_HIBER_DISABLE  = $00000100; // S: devnode will not be disable at pageable resume

  DN2_CHANGEABLE_FLAGS	= $000001B6;

  NUM_DN_FLAG		= $00000020; // DEBUG: maximum flag (number)
  NUM_DN2_FLAG	= $00000009; // DEBUG: maximum flag (number)
  DN_FLAG_LEN		= $00000002; // DEBUG: flag length

  function CM_Get_DevNode_Status(pulStatus: PULONG; pulProblemNumber: PULONG;
      dnDevInst: DEVINST; ulFlags: ULONG): Integer;
      stdcall external 'cfgmgr32.dll' name 'CM_Get_DevNode_Status';

implementation

end.

⌨️ 快捷键说明

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