能通过代码控制或通知BIOS更改设置吗?
我想如果我们该Windows的时间,那么BIOS也会跟着改,那应该有办法能通过代码控制或通知BIOS更改设置。或者有大神能说一下BIOS的工作原理吗?还有我上面说的例子,Windows是怎么实现更改BIOS的时间的?
[解决办法]
LZ说的应该说CMOS参数,(BIOS是指保存于ROM中,用于引导开机,并提供最基本的硬件操作的程序,比如硬盘的最底层的输入输出(windows似乎不使用它,使用自己的代码实现),键盘扫描,数据显示等等,BIOS中的功能程序一般使用软中断进行调用(int0-int15),win系统不允许直接调用中断,所以windows编程很少使用。)
COM实际上是一个外设,有端口地址,dos年代曾经写过一个读取CMOS密码的程序,主要就是读写端口(年代久远,资料已经丢失,可惜,呵呵)
[解决办法]
读写CMOS端口可以用WinIO.sys
[解决办法]
中断就相当于window里面的api,他有调用方法,类似fastcall 的调用形式,调用中断完成一些特别的操作,一般就是硬件操作
不是到内存中去改什么bios,而是要用驱动,调用中断对bios进行修改;要用驱动的原因是权限问题,这个权限并非是普通的权限而是直接针对cpu的,cpu对代码的执行权限,ring3,ring0 ,去搜搜资料就知道了
[解决办法]
winio.sys和io.sys这样的dos启动文件是两回事.
winio.sys就是驱动程序,按dll使用方法使用就是了,他完成了vb做不了的一些事情.
COMS好像端口是80H,81H,
读取COMS地址1的数据,就写80H端口1H,然后读取81H端口.
写CMOS地址1的数据,就写80H端口1H,然后写数据到81H端口.