演示如何在物理内存中如何获得所须的BIOS信息

利用BIOS中断获取内存容量 通过BIOS的0x15中断来获取物理内存大小。 阅读详情
有时候VCKBASE常有人问到怎么去获一些细节系统信息。其实从BIOS中是可以获得大量系统的信息的。SMBios,即System Management BIOS以结构的方式保存了用于管理的系统信息。对于OS,BIOS的研究是须要先掌握大量相关知识的,不过方法也很重要。下面是我写的一个例子,在windows下(我用的XP)对物理内存进行访问,通过找到SMBIOS Structure Table Entry Point这一结构来定位BIOS结构表的位置,从而获得所须的系统信息。 关于信息的细节可以去看SMBios的相关规范。
        我的例子代码主要是两个文件组成:SMStdFun.cpp中为用户提供函数用于获取所需要信息;PhyMemFu.cpp则是用来在物理内存中进行操作,实现具体的功能。
        可以用下面的语句测试这个例子代码,
if(0 != GetSMTableEntryPoint(&g_TableEntry, g_dwEntryPhyAddress))
  return FALSE;
if(0 != GetAllType(g_TableEntry.dStructTableAddress))
  return FALSE; 
        它取出结构信息的Type0~Type6,当然代码中给出了其后面的类型信息的格式,自已根据须可以去使用.
         Type0: BIOS Information
         Type1:System Information
         Type2:Base Board Information
         Type3:System Enclosure or Chassis
         Type4:Processor Information
         Type5:Memory Controller Information
         Type6:Memory Module Information
         ......
    例子代码见:
http://blog.vckbase.com/Files/zyq654321/SMViewer.rar
在Windows中读取bios信息_shortuco_Vc_ 利用VC++编写的一个小程序,用于读取在Windows中读取基本输入输出BIOS里的内容。 立即下载

相关推荐

详细对比模型训练和模型精调

当我们进行模型精调(Fine-Tuning)和模型训练时,我们需要考虑到不同的步骤和目标。

pumpkin84514的博客 1852

获取电脑硬件信息

获取设备硬件信息

CAir2的专栏 6115

ARKit面部动画实战:如何用blend shape让数字人表情更自然(附中文对照表)

本文深入探讨了如何利用ARKit的blend shape技术驱动数字人面部动画,以实现更自然生动的表情。文章提供了详细的blend shape中文对照表,并分享了实战技巧,包括构建复合表情动画序列、处理不对称性与微表情,以及性能优化策略,旨在帮助开发者高效提升数字人的表情表现力。

weixin_29292535的博客 324

如何在windows程序中读取bios内容

文章标题:如何在windows程序中读取bios内容原 作 者:火翼[CCG]原 出 处:www.chat001.com发 布 者:loose_went发布类型:转载发布日期:2004-01-04今日浏览:9总 浏 览:1212 下载本文所附源代码 今天和夜月兄讨论了一下在windows nt/2000/xp下如何读取bios信息,现在把 结果向大家汇报一下。   大家都知道,wi

回家念经(kv300)--编程之禅 1727

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1302

SpringBoot+Vue实现图片上传

SpringBoot+Vue实现图片上传

叶♥璃 2730

uniapp微信小程序开发:解决Video播放m3u8视频流非卡顿问题,使用video视频标签播放M3U8视频流或直播流总是加载一卡一卡的体验非常差的情况【多种优化方案提升流畅度和缓冲方案示例源码】

uniapp微信小程序video播放m3u8视频流卡,uniapp video在微信小程序播放m3u8格式视频总是加载频繁卡顿,Uniapp微信小程序苹果ios真机播放m3u8很卡加载不流畅怎么办,uni-App如何解决小程序端video播放视频流M3U8格式出现卡顿情况,uniapp播放m3u8直播流卡顿如何优化?uniapp m3u8格式视频加载,.m3u8监控视频,uniapp微信小程序使用video组件播放M3U8视频卡顿,uniapp微信小程序视频播放卡顿如何解决,uniapp 打包微信小程序播放

✅ 精选推荐文章 2987

关于BIOS的入口地址0xFFFF0

一直都说开机加电之后,将CS设置为0xFFFF,IP设置为0x0000,这样组成的地址就是0xFFFF0,而这个就是BIOS的入口地址,之后CPU读取这个地址的代码,然后就巴拉巴拉的开始执行下去了。 现在想知道这个地址0xFFFF0是在主板上呢,还是在内存上。想着如果是统一编址的话,就可能是去读取主板上的ROM,但是看书上的图,有像是在RAM中,如果是在 内存 中,那是什么时候,由哪段...

aiyun1242的博客 542

cartographer如何使用2个反光柱子作为一个landmark

2个反光柱的摆放要求:靠着墙摆,因为我们只能从一侧看到2个反光柱,从两侧都看到至少需要3个反光柱来定位。 landmark检测原理:因为我们是从一侧看到2个反光柱,所以看到2个反光柱在一帧激光数据中会有顺序,有2种情形,如下图 这两种情形,我们发现 情形1: 这种情形2个反光柱子被检测到的激光角度小于180,我们认为大一些激光角度的是原点。 情形2: 这种情形2个反光柱子被检测到的激光角度大于180,我们认为小一些激光角度的是原点。 这样原点就固定下来,并是唯一的。2个反光柱构成的坐标系也就确定了。和激光坐

南北粉面馆 3827

实现基于 Python 和 xterm.js 的 Web 交互终端demo

前端 (HTML):使用 xterm.js 作为前端终端模拟器库。创建了一个 WebSocket 连接到 ws://localhost:8765,这与后端服务器的地址和端口匹配。监听 WebSocket 消息,并将数据写入终端。同时监听用户输入并发送到服务器。后端 (Python):使用 websockets 库来创建 WebSocket 服务器,监听端口 8765。使用 paramiko 库来创建 SSH 客户端并连接到指定的远程服务器。

u010674101的专栏 876

BIOS关于获取内存信息的调用

OS开机获取当前计算机的内存信息是一件很重要的事情,因为分页机制要用到它。来看看Linux是怎么做的吧 。读了0.11内核的人应该注意到了,linus使用int 0x15 ah = 0x88中断调用获取扩展内存的大小,代码极其简洁: mov  ah, 0x88int  0x15mov  [2], ax 这个方法真得很简单,而且不用担心BIOS不支持(该调用从28

axx1611的专栏 6116

微信小程序 - 解决web-view嵌套H5网页白屏问题,将h5网页嵌套在webview页面出现无法加载一片空白,详解微信小程序<web-view>页面跳转出现白屏情况(无论本地还是线上H5都能解决)

微信小程序解决web-view打开网页在手机上出现白屏的问题,小程序web-view嵌套H5项目白屏问题分析及解决,使用web-view组件加载H5网页链接后白屏情况,小程序嵌套的h5网页中跳转页面时也有可能出现白屏问题,嵌套webview页面时,出现白屏,WebView 加载不出网页,微信小程序<web-view>页面跳转出现白屏解决方法,解决WebView白屏空白,H5内嵌第三方小程序打开白屏,微信小程序嵌入h5页面加载空白,微信小程序web-view跳转h5白屏,解决微信小程序web-view打开网页

🏆 前端领域优质创作者 1万+

物理内存探测

在内核建立相应的内存管理区之前,先要进行物理内存的探测,获取相关的内存信息。对于X86架构,内核在void main()中调用detect_memory()来进行物理内存的探测。 void main(void) { ... ... /* Detect memory layout */ detect_memory(); ... ... }

vanbreaker的专栏 6263

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

如何获取BIOS信息

2 {// 结构类型// 该类型结构的格式化区域长度(请注意,长度取决于主板或系统支持的具体版本)// 结构句柄(0~0xFEFF范围内的数字)这里以Type 1 BIOS 系统信息为例2 // 系统信息(Type 1)SMBIOS结构的格式化区域的完整定义4 {// SMBIOS结构头SMBIOSHeader// Manufacturer字符串的编号// Product Name字符串的编号// Version字符串的编号。

【微软MVP】zhaotianff的专栏 1686

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

获得机器硬件信息 BIOS CPUID Harddisk MAC

最近由于工作原因,需要获得CPUID与BIOS信息与硬盘序列号与网卡MAC,当时心里还想,从网上down下的code不就成了。于是从网上搜索到一批源代码,绝大多数都一样。代码如下:以下代码可以取得系统特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)    BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码    UINT uSyste

超级无敌小地主 3996

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

13种BIOS报错信息及排除方法

13种BIOS报错信息及排除方法 在电脑开机自检时,主板BIOS报错信息解析如发现故障会显示相关的信息,用户在得知信息后可了解到故障所在。现列出一些常见的BIOS报错信息,以供大家参考。  (1)BIOS ROM checksum error-System halted   翻译:BIOS信息在进行检查(checksum)时发现错误,因此无法开机。   解析:通常是因为BIO...

weixin_34226706的博客 4035

Windows 读取BIOS信息

源代码说明: 大家都知道,windows接管了对物理内存的直接存取,而bios信息存在物理内存 的f000:0000处,关键就是如何读取物理内存。 查阅了msdn的文章后,发现以下有几个函数和物理内存访问有关: NTSTATUS ZwOpenSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess,IN PO

憨憨小姐的ITBlog 1830

BIOS入知识枝桠——SMBIOS

OVERVIEW SMBIOS全拼System Management BIOS, 是通过系统固件传递管理信息的标准。应用在PC上,即是主板或系统制造厂商以标准格式显示产品信息所遵循的统一规范。 主板厂商或OEM厂商生产的PC,出厂前都会按照SMBIOS标准将相关信息写入BIOS中。比如OEM客制化信息等。 SMBIOS信息也会记录很多硬件信息, 比如CPU型号, 缓存, 内存大小等等 SMBIOS由DMTF组织管理和维护。DMTF是一个工业化组织,通过与领先科技公司的开放与协作简化网络访问技术的

这里是为我所统率的战场 1万+

如何从硬件获得内存布局(E820)

E820如何从硬件获得内存布局 背景 在操作系统开始管理内存之前,首先要获取物理内存的信息,比如共有多少物理地址是可用的? 有哪些物理地址是被ACPI(Advanced Configuration and Power Interface)数据使用? 这些信息从何而来? e820就是BIOS像x86架构(包括x86_64)上的操作系统引导程序提供物理内存信息的功能。当请求BIOS中断号15H,并且置操作码AX=E820H的时候,BIOS就会向调用者报告可用的物理地址区间等信息,e820由此得名。 什么是E82

Oliverlyn的专栏 3541

BIOS提示信息是什么意思

BIOS提醒信息是什么意念 (7)Hard disk install Failure    翻译:软盘装置得成。    解析:碰到这种情形,请后检查硬盘的电源线、数据线是可装置妥善,或硬盘跳线是可设错(例如二台都设为Master或Slave),家用电脑的维护三部曲!。    (8)Hard disk?s disagnosis fail    翻译:履行硬盘诊断时产生错误

bo-jwolf的专栏 1736

手写简易操作系统(五)--获得物理内存容量

此方法虽然简单,但功能也不强大,最大只能识别4GB内存,不过这对咱们32位地址总线足够了。BIOS中断 0x15的子功能0xE820能够获取系统的内存布局,由于系统内存各部分的类型属性不同,BIOS就按照类型属性来划分这片系统内存,所以这种查询呈迭代式,每次BIOS只返回一种类型的内存信息,直到将所有内存类型返回完毕。这节我们讲述了如何检测物理内存的大小,下节课我们对内存进行处理,内存现在是一个线性的空间,谁想去哪儿就去哪儿,这并不利于我们管理,而且会导致内存的碎皮化问题,下节我们讲内存的分段与分页。

Lyajpunov的博客 1146

动手学操作系统(六、获取物理内存容量)

在上一节中,我们介绍了保护模式和实模式的区别,保护模式的最大特点是“大”,“大”是指寻址空间大,在进入保护模式之后,我们还将要接触虚拟内存、内存管理等,但这些和内存有关的概念都是建立在物理内存之上的,所以无论理论上的概念有多高大上,最终还是要落实到物理内存上才行,所以这一节我们来学习如何获取物理内存容量。

Shen Mu Xin's Blog 957

一步步编写操作系统 34 内核利用bios中断获取物理内存大小

接上文,另一个获取内存容量的方法是bios 0x15中断的子功能0xE801。 此方法虽然简单,但功能也不强大,最大只能识别4G内存,不过这对咱们32位地址总线足够了。稍微有点不便的是,此方法检测到的内存是分别存放到两组寄存器中的。低于15MB的内存是以1KB为单位大小来记录,单位数量在寄存器AX和CX中记录,其中AX和CX的值是一样的,所以在15MB空间以下的实际内存容量=AX*1024。AX...

sinolover的专栏 1222
上一篇: 写个自己的调试器
下一篇: 如何"借他人之手"实现可执行文件的自我删除
pll621
博客等级 码龄25年 27粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值