查看硬件工具:aida.exe
下载地址:https://www.tts8.com/azsoft/223373.html

首先是获取硬件类的设备信息,例如主板序列号等。

​GetSystemFirmwareTable​​​ ,这里可以获取很多信息,例如内存条,主板,cpu等硬件信息,但是这个函数使用起来超级复杂。不过git已经有封装的源码,可以下载参考​​DumpSMBIOS​

下面是部分信息:

==========          BIOS information           ==========
Vendor: American Megatrends Inc.
Version: 0802
BIOS Starting Segment: 0xF000
Release Date: 06/20/2018
Image Size: 16384K
System BIOS version: 5.13
EC Firmware version: 255.255
========== System information ==========
Manufacturer: System manufacturer
Product Name: System Product Name
Version: System Version
Serial Number: System Serial Number
UUID: FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
SKU Number: ASUS_MB_CNL
Family: To be filled by O.E.M.
========== Base Board information ==========
Length: 0xF
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: PRIME B360-PLUS
Version: Rev 1.xx
Serial Number: MB-1234567890
Asset Tag Number: Default string
Location in Chassis: Default string
========== System Enclosure information ==========
Length: 0x16
Manufacturer: Default string
Version: Default string
Serial Number: Default string
Asset Tag Number: Default string
========== Processor information ==========
Length: 0x30
Socket Designation: LGA1151
Processor Manufacturer: Intel(R) Corporation
Processor Version: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
External Clock: 100MHz, 0MHz is unknown clock
Max Speed: 8300MHz
Current Speed: 2800MHz
========== Cache information ==========
Length: 0x13
Socket Designation: L1 Cache
========== Cache information ==========
Length: 0x13
Socket Designation: L2 Cache
========== Cache information ==========
Length: 0x13
Socket Designation: L3 Cache
========== OEM String ==========
Count: 8
OEM String1: Default string
OEM String2: Default string
OEM String3: WISTERIA
OEM String4: Default string
OEM String5: FFFFFFFFFFFFF
OEM String6: FFFFFFFFFFFFF
OEM String7: FFFFFFFFFFFFF
OEM String8: Default string
========== Memory Device ==========
Length: 0x28
Total Width: 0bits
Data Width: 0bits
size: 0GB
Device Locator: ChannelA-DIMM1
Bank Locator: BANK 0
Speed: 0
Manufacturer: (null)
Serial Number: (null)
Asset Tag Number: (null)
Part Number: (null)
========== Memory Device ==========
Length: 0x28
Total Width: 0bits
Data Width: 0bits
size: 0GB
Device Locator: ChannelA-DIMM2
Bank Locator: BANK 1
Speed: 0
Manufacturer: (null)
Serial Number: (null)
Asset Tag Number: (null)
Part Number: (null)
========== Memory Device ==========
Length: 0x28
Total Width: 64bits
Data Width: 64bits
size: 16GB
Device Locator: ChannelB-DIMM1
Bank Locator: BANK 2
Speed: 2400
Manufacturer: Kingston
Serial Number: 9B38F63E
Asset Tag Number: 9876543210
Part Number: 9905701-003.A00G
========== Memory Device ==========
Length: 0x28
Total Width: 0bits
Data Width: 0bits
size: 0GB
Device Locator: ChannelB-DIMM2
Bank Locator: BANK 3
Speed: 0
Manufacturer: (null)
Serial Number: (null)
Asset Tag Number: (null)
Part Number: (null)
========== Memory Array Mapped Address ==========
Length: 0x1F
Starting Address: 0x00000000
Ending Address: 0x00FFFFFF
Memory Array Handle: 0x3C
Partition Width: 0x1 .

同时我们也可是通过枚举设备处理器列表来获取:

​​SetupDiEnumDeviceInfo​​DeviceIoControl

获取电脑硬件信息_枚举硬件信息


​检索设备实例标识符​​​​设备实例 ID​

​CM_Get_Device_ID_List​

void show_instanceid_media() {

// GUID_DEVCLASS_MEDIA
const auto dev_info = SetupDiGetClassDevsA(NULL, 0, 0, DIGCF_ALLCLASSES|DIGCF_PRESENT);
for (int i = 0;; i++) {
SP_DEVINFO_DATA dev_data{ 0 };
dev_data.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(dev_info, i, &dev_data))
break;
char instance_id[128]{ 0 };
DWORD require_size = 0;
SetupDiGetDeviceInstanceIdA(dev_info, &dev_data, instance_id, sizeof(instance_id), &require_size);
printf("%s\n", instance_id);
//注意这里获取的是只是设备实例标志符,如果想获取设备的更多信息需要去注册表获取
//计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\
//下面以PCI信息为例,获取硬件id
Registry::Read(HKEY_LOCAL_MACHINE, (std::string("SYSTEM\\CurrentControlSet\\Enum\\") + instance_id).c_str(), "HardwareID", strHardWareID);

}
SetupDiDestroyDeviceInfoList(dev_info);
}

获取电脑硬件信息_smBios_02

输出结果:

PCI\VEN_8086&DEV_A36D&SUBSYS_86941043&REV_10\3&11583659&0&A0
ACPI\PNP0100\4&E1C6980&0
ACPI\PNP0C02\0
ACPI\PNP0C02\1
ACPI\PNP0C02\2
ACPI\PNP0C02\5
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_1
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_2
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_3
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_4
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_5
ACPI\GENUINEINTEL_-_INTEL64_FAMILY_6_MODEL_158_-_INTEL(R)_CORE(TM)_I5-8400_CPU_@_2.80GHZ\_6
SCSI\DISK&VEN_WDC&PROD_WD10EZEX-22MFCA0\4&FE99083&0&030000
ACPI\PNP0C0B\0
ACPI\PNP0C0B\1
ACPI\PNP0C0B\2
ACPI\PNP0C0B\3
ACPI\PNP0C0B\4
STORAGE\VOLUME\{5AD2AE6D-E657-11E8-A09A-806E6F6E6963}#0000000000100000
USB\VID_046D&PID_C31C&MI_01\6&1A40E1FB&0&0001
ACPI\ACPI000C\2&DABA3FF&0
DISPLAY\DELA07A\4&1540260C&0&UID206355
SWD\PRINTENUM\PRINTQUEUES
USB\VID_1B3F&PID_2008&MI_03\7&EBA58BA&0&0003
ROOT\VOLMGR\0000
SWD\PRINTENUM\{9E1BDBA4-7D69-4F4F-8548-68BC61C9E5B4}
ACPI\INT3F0D\4&E1C6980&0
SWD\MSRRAS\MS_PPPOEMINIPORT
PCI\VEN_8086&DEV_3EC2&SUBSYS_86941043&REV_07\3&11583659&0&00
USB\VID_1B3F&PID_2008&MI_00\7&EBA58BA&0&0000
ROOT\BASICDISPLAY\0000
ACPI\PNP0C0E\2&DABA3FF&0
SWD\DRIVERENUM\MSDK_COMPONENT&4&1540260C&0
ROOT\NET\0000
ROOT\NET\0001
ACPI\THERMALZONE\TZ00
UMB\UMB\1&841921D&0&TERMINPUT_BUS
SWD\MSRRAS\{5E259276-BC7E-40E3-B93B-8F89B5F3ABC0}
ACPI\PNP0C14\ASUSWMI
ROOT\VMWARE\0000
ROOT\VMWARE\0001
SWD\PRINTENUM\{A36895D5-37A2-4C15-865D-8E1684157C27}
SWD\MSRRAS\MS_PPTPMINIPORT
SWD\PRINTENUM\{50A11DA8-59BF-4ACE-9833-DDB1763471E2}
ROOT\VID\0000
SWD\MMDEVAPI\{0.0.1.00000000}.{840061F4-7A75-462B-933F-82D6EEA163EE}
ACPI\PNP0103\0
PCI\VEN_8086&DEV_A352&SUBSYS_86941043&REV_10\3&11583659&0&B8
SWD\MSRRAS\MS_AGILEVPNMINIPORT
ROOT\COMPOSITEBUS\0000
ROOT\VDRVROOT\0000
PCI\VEN_8086&DEV_A36F&SUBSYS_86941043&REV_10\3&11583659&0&A2
HID\VID_093A&PID_2510\6&13502492&0&0000
PCI\VEN_8086&DEV_A324&SUBSYS_86941043&REV_10\3&11583659&0&FD
ROOT\SPACEPORT\0000
PCI\VEN_8086&DEV_A32C&SUBSYS_86941043&REV_F0\3&11583659&0&D8
ACPI\PNP0501\0
ROOT\KDNIC\0000
SWD\PRINTENUM\{28152751-CAC6-4FCA-B053-B4FE12E80194}
SWD\PRINTENUM\{E86B2B5F-6698-432D-8C91-9CDF950F2B81}
UMB\UMB\1&841921D&0&TS_USB_HUB_ENUMERATOR
ACPI\PNP0C02\PCHRESV
STORAGE\VOLUME\{5AD2AE6E-E657-11E8-A09A-806E6F6E6963}#0000003A00600000
ACPI\PNP0B00\4&E1C6980&0
PCI\VEN_8086&DEV_A360&SUBSYS_86941043&REV_10\3&11583659&0&B0
SWD\PRINTENUM\{AE421777-85AF-411C-A754-00EDD6B51793}
ROOT\UMBUS\0000
ACPI\PNP0C14\SAMPLEDEV
PCI\VEN_10DE&DEV_0FB9&SUBSYS_00007377&REV_A1\4&2D78AB8F&0&0108
SWD\RADIO\{3DB5895D-CC28-44B3-AD3D-6F01A782B8D2}
STORAGE\VOLUME\{5AD2AE6E-E657-11E8-A09A-806E6F6E6963}#0000007480A00000
SWD\MSDAS\{CE958E9A-424F-4C88-86F4-11314821E75A}
HID\VID_046D&PID_C31C&MI_00\7&31B5DF7&0&0000
ROOT\ACPI_HAL\0000
SWD\MSRRAS\MS_NDISWANBH
SWD\MSRRAS\MS_NDISWANIP
ACPI\PNP0C14\TESTDEV
ACPI\PNP0A08\0
ACPI\PNP0C0C\2&DABA3FF&0
ACPI_HAL\PNP0C08\0
HTREE\ROOT\0
ROOT\BASICRENDER\0000
UMB\UMB\1&841921D&0&RDCAMERA_BUS
UMB\UMB\1&841921D&0&TSBUS
SWD\MSRRAS\MS_SSTPMINIPORT
ACPI_HAL\UEFI\0
PCI\VEN_8086&DEV_A333&SUBSYS_86941043&REV_F0\3&11583659&0&EB
PCI\VEN_10EC&DEV_8168&SUBSYS_86771043&REV_15\4&AC99AD7&0&00EB
ACPI\FIXEDBUTTON\2&DABA3FF&0
PCI\VEN_8086&DEV_A323&SUBSYS_86941043&REV_10\3&11583659&0&FC
SWD\DRIVERENUM\CUI&4&1540260C&0
UEFI\RES_{E0B0E0AC-B24A-5537-BB2B-411243FA01BC}\0
PCI\VEN_10DE&DEV_1C81&SUBSYS_00007377&REV_A1\4&2D78AB8F&0&0008
USB\VID_0424&PID_2514\5&38E97A59&0&4
PCI\VEN_8086&DEV_A33C&SUBSYS_86941043&REV_F0\3&11583659&0&E0
ACPI\INT33A1\1
PCI\VEN_1B21&DEV_1080&SUBSYS_84891043&REV_04\4&2038E34A&0&00EA
ROOT\VMWVMCIHOSTDEV\0000
PCI\VEN_8086&DEV_1901&SUBSYS_86941043&REV_07\3&11583659&0&08
ACPI\PNP0000\4&E1C6980&0
SWD\MMDEVAPI\{0.0.0.00000000}.{7E9DEA44-74C7-4960-97D0-765D86021F0E}
ACPI\PNP0C02\IOTRAPS
USB\VID_1B3F&PID_2008\6&1E10731E&0&3
DISPLAY\DELA07A\5&30F41049&0&UID4352
PCI\VEN_8086&DEV_A330&SUBSYS_86941043&REV_F0\3&11583659&0&E8
ROOT\UNNAMED_DEVICE\0000
ROOT\UNNAMED_DEVICE\0001
ROOT\UNNAMED_DEVICE\0002
SWD\PRINTENUM\{41B62F34-B20E-4A09-90DD-4C2E84FBCD6C}
ROOT\WPD\0000
USB\VID_093A&PID_2510\5&38E97A59&0&5
SWD\MMDEVAPI\MICROSOFTGSWAVETABLESYNTH
HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101&REV_1000\4&BC42ED2&0&0201
TS_USB_HUB_ENUMERATOR\UMB\2&30D3618&0&TS_USB_HUB
STORAGE\VOLUME\{5AD2AE6E-E657-11E8-A09A-806E6F6E6963}#000000AEC0E00000
USB\VID_046D&PID_C31C\5&38E97A59&0&3
ROOT\NDISVIRTUALBUS\0000
HID\VID_1B3F&PID_2008&MI_03\8&23AB6E7F&0&0000
USB\ROOT_HUB30\4&5375334&0&0
HID\VID_046D&PID_C31C&MI_01\7&20BBDFCB&0&0000
PCI\VEN_8086&DEV_3E92&SUBSYS_86941043&REV_00\3&11583659&0&10
SWD\MMDEVAPI\{0.0.0.00000000}.{F5AA7FF4-86B6-49C3-84CD-BB23FD2806F4}
USB\VID_046D&PID_C31C&MI_00\6&1A40E1FB&0&0000
ACPI\PNP0C04\4&E1C6980&0
ROOT\MSSMBIOS\0000
ACPI\INT340E\2&DABA3FF&0
HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_104386C7&REV_1003\4&BC42ED2&0&0001
STORAGE\VOLUME\{5AD2AE6E-E657-11E8-A09A-806E6F6E6963}#0000000000200000
PCI\VEN_8086&DEV_A348&SUBSYS_86C71043&REV_10\3&11583659&0&FB
HDAUDIO\FUNC_01&VEN_10DE&DEV_0080&SUBSYS_73770000&REV_1001\5&241D9907&0&0001
ROOT\SYSTEM\0000
SCSI\DISK&VEN_&PROD_KINGSTON_SA400S3\4&FE99083&0&020000
SWD\DRIVERENUM\VKRT&4&1540260C&0
ROOT\RDPBUS\0000
PCI\VEN_8086&DEV_A308&SUBSYS_86941043&REV_10\3&11583659&0&F8
SWD\MSRRAS\MS_NDISWANIPV6
PCI\VEN_8086&DEV_A332&SUBSYS_86941043&REV_F0\3&11583659&0&EA
SWD\MSRRAS\MS_L2TPMINIPORT