解析SMBIOS信息详解_第1页
解析SMBIOS信息详解_第2页
解析SMBIOS信息详解_第3页
解析SMBIOS信息详解_第4页
解析SMBIOS信息详解_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档 1欢迎下载 解析解析 SMBIOSSMBIOS 信息详解信息详解 1 SMBIOS1 SMBIOS 简介简介 SMBIOS 是 System Management BIOS 的概念 SMBIOS 是主板或系统制造者 以标准格式显示产品管理信息所需遵循的统一规范 显示有关系统管理 BIOS 主板的信息 SMBIOS 使您能够找出有关的计算机制造商的详细信息 模型类 型 序列号和 BIOS 版本 处理器数量 物理内存 等等 对一些特殊制定需求 如只能针对某一厂商机器使用 往往需要通过获取 SMBIOS 内容解析得到该信息 添加到代码中 实现该自定义定制需求 本章主 要介绍 windows API 获取 SMBIOS 信息的方法 2 SMBIOSSMBIOS 结构信息结构信息 从 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 精品文档 2欢迎下载 系统供电电源 Type 39 附加信息 Type 40 板载设备扩展信息 Type 41 管理控制器主机接口 Type 42 不活动指示 Type 126 表格结束指示 Type 127 SMBIOS 的大部分结构表数据在 CIM 模型中都有对应的实现 比如底架信息 对应 CIM Chassis 处理器信息对应 CIM Processor 内存信息对应 CIM Memory 等 下面介绍主要的结构表 1 1 BIOSBIOS 信息信息 Type Type 0 0 位置名称长度描述 00h TYPE 号 1BYTE 结构的 TYPE 号 此处是 0 01h 长度 1BYTE TYPE 0 格式区域的长度 一般为 14h 也有 13h 02h 句柄 2BYTE 指向本结构的句柄 04h Bios 厂商信息 1BYTE 此处是 bios 卖方的信息 可能是 OEM 厂商名 一般为 01h 代表紧随格式区域后的字符串区域的第一个字符串 05h BIOS 版本 1BYTE BIOS 版本号 一般为 02h 代表字符串区域的第二个字符串 06h Bios 开始地址 段 2BYTE 用于计算常驻 BIOS 镜像大小的计算 方法为 10000h BIOS 开始地址段 16 08h BIOS 发布日期 1BYTE 一般为 03h 表示字符区第三个字符串 09hBIOS ROM size1BYTE 计算方法为 n 1 64K n 为此处读出数值 0Ah BIOS 特征 8BYTE Bios 的功能支持特征 如 PCI PCMCIA FLASH 等 12h BIOS 特征扩展不定从 2 4 版开始包含两个扩展字节 12h 13h 以及字节 14h 17h 14h BIOS 版本主号 1BYTE 若系统不支持此域 则值设为 ffh 15h BIOS 版本从号 1BYTE 若系统不支持此域 则值设为 ffh 16h 内置控制器固件 的版主号 1BYTE 若系统不支持此域 则值设为 ffh 17h 内置控制器固件 的版从号 1BYTE 若系统不支持此域 则值设为 ffh BIOS 特征域表示 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 软盘 精品文档 3欢迎下载 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 2 系统信息 系统信息 Type Type 1 1 SMBIOS 实现只关联一个单一的系统实例 并且包含 且只包含一个系统信息结构 位置名称长度描述 00h TYPE 号 1BYTE 结构的 TYPE 号 此处是 1 01h 长度 1BYTE 格式区域总长度 2 0 版为 08h 2 1 2 3 4 版为 19h 从 2 4 版开始为 1Bh 02h 句柄 2BYTE 指向本结构的句柄 04h 电脑制造商 1BYTE 一般为 01h 表示在字符串区域中的编号 05h 产品名称 1BYTE 在字符串区域中的编号 06h 版本号 1BYTE 在字符串区域中的编号 07h 序列号 1BYTE 在字符串区域中的编号 09hUUID16BYTE 通用唯一标识符 18h 唤醒类型 BYTE 用来标识导致系统开电启动的事件 19h SKU 号 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 为时间戳的高位域 同时还包含 版本号 精品文档 4欢迎下载 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 段组编号 总线编号 设备 函数编号 精品文档 5欢迎下载 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 起始地址 结束地址 存储设备句柄 存储 阵列映射地址句柄 分区行位置 交叉位置 交叉的数据深度 已扩展的起始 地址 已扩展的结束地址 精品文档 6欢迎下载 内置指针设备 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 函数用于查找指定类型的第一个结构 注意同一个类型的结构 可能会多个 返回这个结构的句柄 如果没找到 则返回 0 xFFFF TableAddress 和 StructureCount 的值可以通过在内存中定位 EPS 表 来获得 EPS 中偏移 18h 处即为 TableAddress 的值 偏移 1Ch 处即为 StructureCount 的值 3 WindowsWindows APIAPI 获取获取 SMBIOSSMBIOS 流程流程 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 可以理解为 格式区 数据内容 两部分 而格式区有一个头 类似 structstruct SMBios Thunk 精品文档 8欢迎下载 BYTEBYTE flag BYTEBYTE data offset flag 是硬件类型 data offset 是表示该格式区长度 所有 ty

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论