




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
解析SMBIOS信息详解1.SMBIOS简介 SMBIOS是System Management BIOS的概念,SMBIOS是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范, 显示有关系统管理BIOS主板的信息。SMBIOS使您能够找出有关的计算机制造商的详细信息、 模型类型、 序列号和 BIOS版本、 处理器数量、 物理内存,等等。对一些特殊制定需求,如只能针对某一厂商机器使用,往往需要通过获取SMBIOS内容解析得到该信息,添加到代码中,实现该自定义定制需求。本章主要介绍windows API获取SMBIOS信息的方法2.SMBIOS结构信息 从SMBIOS 2.3版本开始,兼容SMBIOS的实现必须包含以下10个数据表结构:BIOS信息(Type 0)、系统信息(Type 1)、系统外围或底架(Type 3)、处理器信息(Type 4)、高速缓存信息(Type 7)、系统插槽(Type 9)、物理存储阵列(Type 16)、存储设备(Type 17)、存储阵列映射地址(Type 19)、系统引导信息(Type 32)。其他的结构表则可根据实际来决定是否需要实现。最新的SMBIOS 2.7.0版中定义的所有结构表包括Type 0-Type 42,其中Type 5、Type 6和Type 10已经废弃。另外还有Type 126和Type 127两个特殊结构表。BIOS信息(Type 0)、系统信息(Type 1)、基板(或模块)信息(Type 2)、系统外围或底架(Type 3)、处理器信息(Type 4)、存储控制器信息(Type 5,已废弃)、存储模块信息(Type 6,已废弃)、调整缓存信息(Type 7)、端口连接器信息(Type 8)、系统插槽(Type 9)。板载设备信息(Type 10)、OEM字符串(Type 11)、系统配置选项(Type 12)、BIOS语言信息(Type 13)、组相联(Type 14)、系统事件日志(Type 15)、物理存储阵列(Type 16)、存储设备(Type 17)、32-bit内存错误信息(Type 18)、存储阵列映射地址(Type 19)。存储设备映射地址(Type 20)、内建指针设备(Type 21)、便携式电池(Type 22)、系统重置(Type 23)、硬件安全(Type 24)、系统电源控制(Type 25)、电压探针(Type 26)、冷却设备(Type 27)、温度传感器(Type 28)、电流探头(Type 29)。越界远程访问(Type 30)、引导完整性服务(BIS)入口点(Type 31)、系统引导信息(Type 32)、64-bit内存错误信息(Type 33)、管理设备(Type 34)、管理设备组件(Type 35)、管理设备门槛数据(Type 36)、存储信道(Type 37)、IPMI设备信息(Type 38)、系统供电电源(Type 39)。附加信息(Type 40)、板载设备扩展信息(Type 41)、管理控制器主机接口(Type 42)。不活动指示(Type 126)、表格结束指示(Type 127)。SMBIOS的大部分结构表数据在CIM模型中都有对应的实现,比如底架信息对应CIM_Chassis,处理器信息对应CIM_Processor,内存信息对应CIM_Memory等。下面介绍主要的结构表。1、BIOS信息(Type 0):位置名称长度描述00hTYPE号1BYTE结构的TYPE号,此处是001h长度1BYTETYPE 0格式区域的长度,一般为14h,也有13h02h句柄2BYTE指向本结构的句柄04hBios厂商信息1BYTE此处是bios卖方的信息,可能是OEM厂商名,一般为01h,代表紧随格式区域后的字符串区域的第一个字符串05hBIOS版本1BYTEBIOS版本号,一般为02h,代表字符串区域的第二个字符串06hBios开始地址段2BYTE用于计算常驻BIOS镜像大小的计算,方法为(10000h-BIOS开始地址段)1608hBIOS发布日期1BYTE一般为03h,表示字符区第三个字符串09hBIOS ROM size1BYTE计算方法为(n1)64K,n为此处读出数值0AhBIOS特征8BYTEBios的功能支持特征,如PCI,PCMCIA,FLASH等12hBIOS特征扩展不定从2.4版开始包含两个扩展字节(12h-13h),以及字节14h-17h14hBIOS版本主号1BYTE若系统不支持此域,则值设为ffh15hBIOS版本从号1BYTE若系统不支持此域,则值设为ffh16h内置控制器固件的版主号1BYTE若系统不支持此域,则值设为ffh17h内置控制器固件的版从号1BYTE若系统不支持此域,则值设为ffhBIOS特征域表示BIOS对一些特性的支持情况,Bit 1和Bit 1保留,Bit 2未知,Bit 3表示本BIOS特征域是否被支持。Bit 4-Bit 19分别表示是否支持ISA、MCA、EISA、PCI、PCMCIA、PnP、APM、BIOS刷新、BIOS影像(把 BIOS的只读内容拷贝到快一些的内存中)、VL-VESA、ESCD、从CD引导、可选择的引导、BIOS ROM是否被插装、从PCMCIA引导、EDD规范。Bit 20-Bit 25表示对各种型号的软盘支持情况(均为中断Int 13h),包括NEC 9800 1.2MB软盘、Toshiba 1.2MB软盘、5.25”/360KB软盘、5.25”/1.2MB软盘、3.5”/720KB软盘、3.5”/2.88MB软盘。Bit 26-Bit 29表示是否支持中断Int 5h(PrintScreen屏幕截取服务)、Int 9h(8042键盘服务)、Int 14h(串口服务)、Int 17h(打印机服务)、Int 10h(CGA/Mono视频服务)、NEC PC-98。Bit 32:47保留给BIOS厂商使用。Bit 48:63保留给计算机系统厂商使用。BIOS特征扩展字节1(偏移12h处)表示对另外一些设备的支持情况,Bit 0-Bit 1分别表示是否支持ACPI、USB遗留、AGP、I2O引导、LS-120 SuperDisk引导、ATAPI ZIP驱动器引导、1394引导、智能电池。BIOS特征扩展字节2(偏移13h处)表示对一些高级特性的支持情况。Bit 1-Bit3表示是否支持功能键初始化网络服务引导、激活目标内容分发、UEFI规范。Bit 4表示SMBIOS表描述的是一台虚拟机,Bit 5:7保留。2、系统信息(Type 1):SMBIOS实现只关联一个单一的系统实例,并且包含且只包含一个系统信息结构。位置名称长度描述00hTYPE号1BYTE结构的TYPE号,此处是101h长度1BYTE格式区域总长度,2.0版为08h,2.1-2.3.4版为19h,从2.4版开始为1Bh02h句柄2BYTE指向本结构的句柄04h电脑制造商1BYTE一般为01h,表示在字符串区域中的编号05h产品名称1BYTE在字符串区域中的编号06h版本号1BYTE在字符串区域中的编号07h序列号1BYTE在字符串区域中的编号09hUUID16BYTE通用唯一标识符18h唤醒类型BYTE用来标识导致系统开电启动的事件19hSKU号BYTE在字符串区域中的编号,SKU号通常为产品ID或采购订单号1Ah产品家族1BYTE在字符串区域中的编号UUID为128 bit长,是一个穿越时间和空间的唯一标识符,不需要集中的注册过程。它的格式在RFC 4122有详细的描述,内容比较繁锁,但SMBIOS并不关注这个,它只关注字节序。UUID的字节顺序以及在RFC 4122中对应域的名字如下:time_low:偏移00h处,4BYTEs,为时间戳的低位域部分。time_mid:04h处,2BYTEs,为时间戳的中间域部分。time_hi_and_version:06h处,2BYTEs,为时间戳的高位域,同时还包含版本号。clock_seq_hi_and_reserved:08h处,1BYTE,时钟序列的高位域部分,同时还包含保留部分。clock_seq_low:09h处,1BYTE,时钟序列的低位域部分。Node:0Ah处,6BYTEs,唯一结点标识符。虽然RFC 4122建议对所有域都使用网络字节序(为大端字节序),但PC工业界(包括ACPI,UEFI和微软的规范)都对前面的三个域time_low,time_mid,time_hi_and_version使用小端字节序。同样地,电报格式的编码也被用来描述SMBIOS规范中的UUID。因此,UUID 00112233-4455-6677-8899-AABBCCDDEEFF被表示为33 22 11 00 55 44 77 66 88 99 AA BB CC DD EE FF。如果ID的所有字节都为FFh,表示当前ID在系统中不存在但可以被设置。如果所有字节都为00h,表示ID在系统中不存在。对于唤醒类型域,00h保留,01h为其他,02h未知,03h为APM定时器,04h调制解调器拨响,05h为LAN远程,06h电源开关,07h为PCI PME#,08h为AC电源恢复。基板或模块单元信息(Type 2):制造商、产品名、版本、序列号、资产标签、特征标志、基板在底架上的位置、底架句柄、基板类型、包含的对象句柄个数、包含的个各对象句柄。系统外围或底架(Type 3):制造商、类型、版本、序列号、资产标签号、启动状态、供电电源状态、热量状态、安全状态、OEM定义信息、高度、电源线个数、包含的单元个数、包含的单元记录长度、包含的各个单元、SKU号。处理器信息(Type 4):插座指示、处理器类型、处理器家族、制造商、ID、版本、电压伏特数、外部时钟频率(MHz)、最大速率(MHz)、当前速率、状态、处理器升级、L1级缓存信息结构的句柄、L2级缓存信息结构的句柄、L3级缓存信息结构的句柄、序列号、资产标签、部件号码、内核个数、激活的内核个数、线程个数、处理器特征、处理器家族2。高速缓存信息(Type 7):插座指示、缓存配置、最大缓存容量、已安装的容量、支持的SRAM类型、当前SRAM类型、缓存速率、纠错类型、系统缓存类型、关联性。端口连接器信息(Type 8):例如并口、串口、键盘、鼠标器端口等都属于端口连接器。包含的信息有内部引用指示符、内部连接器类型、外部引用指示符、外部引用类型、端口类型。系统插槽(Type 9):插槽指示符、插槽类型、插槽数据总线宽度、当前是否在使用、插槽长度、插槽ID、插槽特征1、插槽牲2、段组编号、总线编号、设备/函数编号。OEM字符串(Type 11):由OEM指定的描述字符串。系统配置选项(Type 12):用来配置基板跳线和开关的信息字符串。BIOS语言信息(Type 13):可安装的语言、标志位字节、保留的15字节、当前语言。这里的语言是指英语、法语、汉语等国家语言,而不是计算机编程语言。组相联(Type 14):组名、本项的类型、本结构的句柄。级相联用于指明某些部件的布局或层次,例如指明两个CPU共享一个外部缓存系统。系统事件日志(Type 15):事件日志存放在非易失性的存储单元中,占据固定长度的区域,以 一个固定长度(和特定于厂商)的头部开始,后跟一个或多个可变长度的日志记录。应用程序可以通过周期性地读取系统事件日志结构(通过它的句柄)并在日志改 变标记中搜索日志的更新,以实现事件日志改变通知。这里日志改变标记唯一地标识事件日志最后一次更新的时间。本结构包含的信息有日志区域长度、日志头部起 始偏移、日志数据起始偏移、存取方法(如索引I/O,内存映射物理地址,通知目的非易失性数据函数等)、日志状态、日志改变标记、存取方法地址、日志头部格式、支持的日志类型描述符、每个日志类型描述符的长度、日志类型描述符列表。这里存取方法地址可用以下联合类型来表示:每个日志记录的格式都包含8字节的记录头部(事件类型、长度、日期时间域),后跟不定长的日志数据。物理存储器阵列(Type 16):位置(系统板卡或附加板卡上)、存储功能、内存纠错、最大容量、存储错误信息句柄、存储设备数目、已扩展的最大容量。存储设备(Type 17): 用于描述物理存储器阵列中的单个存储设备。在物理存储器阵列中的句柄、存储错误信息句柄、存储总宽度、数据宽度、存储容量、形体尺寸、设备集、设备定位 器、记忆槽定位器、存储器类型、类型额外细节、速率、制造商、序列号、资产标签、部件号码、属性标志、已扩展的容量、已配置的存储时钟速率。32-bit错误信息(Type 18):错误类型、错误粒度、错误操作、特定于制造商的错误表现、存储阵列错误地址、设备错误地址、错误解析。存储阵列映射地址(Type 19):起始地址、结束地址、存储阵列句柄、分区宽度、已扩展的起始地址、已扩展的结束地址。存储设备映射地址(Type 20):起始地址、结束地址、存储设备句柄、存储阵列映射地址句柄、分区行位置、交叉位置、交叉的数据深度、已扩展的起始地址、已扩展的结束地址。内置指针设备(Type 21):指针设备类型、接口类型、按钮个数。智能电池(Type 22):位置、制造商、制造日期、序列号、设备名、设备化学属性、设计容量、设计电压伏特数、SBDS版本号、电池数据的最大错误百分比、SBDS序列号、SBDS制造日期、SBDS设备化学属性、设计容量倍增因子、特定于OEM的信息。系统引导信息(Type 32):保留域(00h)、引导状态描述(10字节)。引导状态描述主要有“没有检测到错误”、“没有可引导的媒介”、“操作系统载入失败”、“BIOS硬件检测失败”、“操作系统硬件检测失败”、“用户请求引导(通过一个按键)”、“违反系统安全”、“预先请求映像(通过PXE引导)”、“系统监控记时器激活,导致系统重启”,特定于厂商引导状态描述等。IPMI设备信息(Type 38):BMC接口类型、IPMI规范修改版本、I2C从地址、NV存储设备地址、基地址、基地址修饰符/中断信息、中断号。不活动指示(Type 126):用来表明某个SMBIOS结构当前不活动,因此不应用被上层的软件使用。它没有字符串区域,只有结构头部(即三个头部域类型、长度、句柄)。表格结束指示(Type 127):表示整个SMBIOS结构表的结束。它也只有结构头部,没有字符串区域。可以看出,很多设备都包含一些类似的信息域,比如制造商、产品ID(SKU号)、产品名称、版本、出厂日期、序列号、资产标签号、设备类型等。应用软件可以使用下面的方法来解析基于表格的SMBIOS结构。FindStructure函数用于查找指定类型的第一个结构(注意同一个类型的结构可能会多个),返回这个结构的句柄,如果没找到,则返回0xFFFF。TableAddress和StructureCount的值可以通过在内存中定位EPS表来获得,EPS中偏移18h处即为TableAddress的值,偏移1Ch处即为StructureCount的值。3.Windows API获取SMBIOS流程Windows提供了直接API GetSystemFirmwareTable来获取SMBIOS信息。该函数从firmware table provider中检索特定的firmware table信息。3.1 调用GetSystemFirmwareTable获取信息buffer大小DWORD iSignature = R; iSignature = iSignature 8 | S;iSignature = iSignature 8 | M;iSignature = iSignature SMBIOSTableData = (BYTE *)(buff + 8);/跳过前面8个字节SMBIOSTableData可以理解为 格式区+数据内容 两部
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演出经纪人之《演出经纪实务》能力测试B卷含答案详解【预热题】
- 2025年教师招聘之《幼儿教师招聘》检测卷包附参考答案详解(能力提升)
- 2025年教师招聘之《幼儿教师招聘》通关练习题和答案附参考答案详解【培优】
- 花烟草养护知识培训内容课件
- 教师招聘之《小学教师招聘》题库检测模拟题(必刷)附答案详解
- 2025年教师招聘之《小学教师招聘》通关试卷提供答案解析审定版附答案详解
- 教师招聘之《小学教师招聘》能力测试备考题含完整答案详解(网校专用)
- 教师招聘之《小学教师招聘》题库(得分题)打印附完整答案详解(易错题)
- 教师招聘之《幼儿教师招聘》复习提分资料及参考答案详解【b卷】
- 2025年教师招聘之《幼儿教师招聘》模拟考试题库B卷及答案详解(必刷)
- GB 31644-2018食品安全国家标准复合调味料
- 26个英文字母(课堂PPT)
- 《生产与运作管理(第四版)》整套教学课件
- Unit 1 Reading B A letter to my daughte课件-高中英语上教版(2020)必修第一册
- 空白教案模板(表格形式-已排版)
- 常用抗肿瘤中药简介课件
- 配网识图、绘图课件
- 硫化氢考试题库
- 途虎八步及10大保养质检流程试题及答案
- 舒尔特训练方格 可打印(5×5)
- 中国文化概论·第3章·第1节
评论
0/150
提交评论