0
点赞
收藏
分享

微信扫一扫

拥塞控制概念

飞进科技 2023-09-21 阅读 38
mfcc++

获取ACPI表格


void CgetSystemFirmwareTableDlg::OnBnClickedButton1()
{
	//
	UINT bufferSize = GetSystemFirmwareTable('ACPI', 0, NULL, 0);//获取系统固件表
	/*
	【参数3和参数4为NULL和0,只是为了返回真实大小】


	这个函数可以用来获得系统中的各种固件信息,如ACPI(高级配置与电源接口)、SMBIOS(系统管理BIOS)、UEFI(统一固件接口)等。
	每种固件都有其对应的表格,这些表格包含了硬件设备的描述信息、配置数据等
	参数1:[in]  DWORD FirmwareTableProviderSignature  表示要获取的固件表的提供者标识符。常见的标识符有:
			ACPI:获取ACPI表格(高级配置和电源接口)
			SMCI:获取SMBIOS表格
			UEFI:获取UEFI表格
			FIRM	原始固件表提供程序
			RSMB	原始 SMBIOS 固件表提供程序

	参数2:DWORD FirmwareTableID  表示要获取的固件表的唯一标识符

	参数3:PVOID pFirmwareTableBuffer  指向存储固件表数据的缓冲区的指针

	参数4:DWORD BufferSize  指定缓冲区的大小

	返回值:为获取到的固件表的字节数。
			如果函数调用失败或指定的固件表不存在,返回值为0
	
	*/


	if (bufferSize == 0) {
		AfxMessageBox(_T("获取ACPI大小失败"));
		//PostQuitMessage(0);
		return;
	}

	BYTE* buffer = new BYTE[bufferSize];//申请空间
	DWORD result = GetSystemFirmwareTable('ACPI', 0, buffer, bufferSize);
	if (result == 0) {
		AfxMessageBox(_T("获取ACPI固表失败"));
		
		delete[] buffer;
		return;
	}

	AfxMessageBox(_T("获取ACPI固表成功"));
	delete[] buffer;
	return;

}

获取主板信息

SMBIOS结构:

SMBIOS(System Management BIOS)是一种由系统管理委员会(DMTF)定义的标准,用于描述计算机硬件组件和配置信息的数据结构。SMBIOS提供了一种跨平台的方式,使操作系统和应用程序能够获取有关计算机硬件的详细信息

SMBIOS定义了一组数据结构,每个结构都包含了特定类型的硬件信息。这些结构被组织成一个层次结构,可以通过唯一的类型值进行识别和访问。以下是常见的SMBIOS结构类型:

1.BIOS信息(Type 0)

  • 描述计算机的BIOS固件版本、制造商、发布日期等信息

2.系统信息(Type 1)

  • 描述计算机的型号、制造商、序列号等基本信息

3.主板信息(Type 2)

  • 描述主板的制造商、型号、版本等信息

4.处理器信息(Type 4)

  • 描述计算机的处理器相关信息,如制造商、型号、核心数、时钟频率等

5.内存模块信息(Type 6、16、17)

  • 描述计算机的内存模块相关信息,如制造商、型号、容量、速度等

6.硬盘信息(Type 9)

  • 描述计算机的硬盘驱动器相关信息,如制造商、型号、容量、接口类型等

7.显示器信息(Type 13)

  • 描述计算机的显示器相关信息,如制造商、型号、分辨率等

8.电池信息(Type 22)

  • 描述计算机的电池相关信息,如制造商、设备ID、电池类型等

这只是SMBIOS结构的一小部分示例,实际上SMBIOS定义了更多的结构类型,每个类型都涵盖了不同硬件组件的信息。每个SMBIOS结构都包含固定的字段和可变长度的数据区域,用于存储具体的信息

SMBIOS结构通过一个叫做SMBIOS表的数据块来呈现,该表位于系统固化的固件中,例如系统的BIOS中。操作系统和应用程序可以通过访问SMBIOS表来获取硬件信息,以便进行系统管理、故障诊断、设备兼容性检查等操作

需要注意的是,SMBIOS是与x86架构的计算机系统关联度较高,不同架构的计算机可能采用其他的固件和硬件描述标准

type=2时结构:

当 SMBIOS 中的类型字段(Type)为 2 时,表示该结构是一个系统基本信息(System Information)结构。它提供了关于计算机系统的基本描述和属性信息。

SMBIOS Type 2 结构由多个字段组成,每个字段用于描述特定的系统属性。下面是 Type 2 结构中常见的字段及其含义:

  1. Manufacturer(制造商):表示制造商或品牌名称。长度不超过 64 个字节
  2. Product Name(产品名称):指定计算机系统的型号或名称。长度不超过 64 个字节
  3. Version(版本):标识计算机系统的版本号,通常是硬件或固件的版本信息。长度不超过 64 个字节
  4. Serial Number(序列号):唯一标识该计算机系统的序列号。长度不超过 20 个字节
  5. UUID(通用唯一识别码):一个 16 字节的唯一标识符,可用于在网络中唯一标识该系统。固定为 16 个字节
  6. SKU Number(SKU 编号):计算机系统的库存单位编号。长度不超过 64 个字节
  7. Family(系列):指定计算机系统所属的产品系列。长度不超过 64 个字节

这些字段中的大部分都是可选的,但通常至少会提供制造商、产品名称和版本号。

需要注意的是,SMBIOS 结构中的字段都是以 ASCII 码表示的,且长度有限制。例如,Manufacturer、Product Name 和 Version 字段的长度不能超过 64 个字符,Serial Number 字段的长度不能超过 20 个字符。

SMBIOS Type 2 结构提供了有关计算机系统的基本信息,可以通过解析该结构获取计算机的制造商、型号、序列号等重要属性,用于系统管理、故障排除和硬件识别等用途。

举报

相关推荐

0 条评论