baojj
驱动牛犊
驱动牛犊
  • 注册日期2002-03-03
  • 最后登录2002-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2029回复:14

高手指点!如何让vxd中的一个控制函数独占cpu运行,屏蔽所有中断???

楼主#
更多 发布于:2002-03-06 09:41
flyfox
驱动中牛
驱动中牛
  • 注册日期2001-04-05
  • 最后登录2012-08-03
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望22点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-06 11:44
_asm cli;
while(1){}
但没有必要!也不可能完全真正实现!
一剑西来,天外飞仙
baojj
驱动牛犊
驱动牛犊
  • 注册日期2002-03-03
  • 最后登录2002-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-06 12:59
为什么不能真正实现呢,难道所有的中断处理程序都有被打断的可能吗?请指教
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-07 13:13
你是说在VxD中吗?
应该很简单。
第一,VxD只能是用于单CPU的Win9x系统。
第二,VxD处于Ring0。
所以,只要一句:
_asm cli
但是有可能在调用Windows提供的函数的时候,又被使能中断。
另外,你还可以通过8259的屏蔽寄存器禁止所有中断。
这两种方法都是由Intel的CPU规范和IBM的PC规范决定的,微软也不能超越,故肯定可靠。
chimian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-10
  • 最后登录2002-04-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-08 15:05
    
    \"中断控制器 8259 \"又叫\"可屏蔽中断控制器 8259 \". 外部中断里边一部分是可屏蔽中断, 一部分是不可屏蔽中断. 内部中断都是不可屏蔽中断.

    所以, 通过 8259 , 无法, 也不可能禁止所有中断.
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-08 18:57
拜托你看看书,什么情况下会发生“不可屏蔽中断”。
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-08 19:03
还有,cli也只能屏蔽“可屏蔽中断”。
chimian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-10
  • 最后登录2002-04-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-03-09 15:22
    不可屏蔽中断, 就是不能由软件屏蔽的中断. \"屏蔽所有中断\" 是不可能的.

    \"掉电\"就是不可屏蔽的外部中断, 怎样编程屏蔽了它?  再就是 CPU 内部中断, 都是不可屏蔽的. 如除法出错, 一般保护异常, page fault,  如果以上中断发生, 任何程序都得被 CPU 强行中止, 而转向相应的中断处理程序. (当然, 有些程序自己替换了系统的相应的中断处理程序, 再自己主动引发相应的中断, 从而人为的引起程序的转移, 这当然是他的程序还没有结束了. 比如 CIH 病毒, 和某些加密软件.)
wilton
驱动牛犊
驱动牛犊
  • 注册日期2001-04-23
  • 最后登录2005-03-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-03-11 09:53
在掉电或者奇偶校验错的时候,你的计算机还能正常运行吗?
对于INT指令,是你自己发出的,你不发出,它会执行吗?
对于异常,在NT下,所有未被截获的异常都会“BSOD”,此时,你的机器已经死了。再说,你认为驱动应该产生异常吗?还有,你知道怎样在驱动里截获异常吗?
我再次正告你:“拜托多看点书”。
在你的水平到达我值得回答问题的程度以前,我不会再同你沟通。
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-03-11 10:22
什么叫电脑?
请问你可以让你的大脑只想一件事,毫无杂念?两种情况:
1、你是佛祖;
2、你死掉了。
所以要解决你的问题,两种途径:
1、你的CPU就像佛祖一样不与尘世打交道,谁也不知它在干嘛;
2、将你的电脑断电。 :D :D :D
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
chimian
驱动牛犊
驱动牛犊
  • 注册日期2002-02-10
  • 最后登录2002-04-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-03-13 03:43
wilton ,我只是发表自己的看法, 不是针对您. 我水平很菜, 请您及其他前辈以后多多指教, 我会继续努力学习的, 谢谢指教.
流氓兔
驱动老牛
驱动老牛
  • 注册日期2001-06-27
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-03-13 09:02
好多的高手也!!!
我要学!!!
 :D :D :D
我是流氓!!!我怕谁!!! 不!!应该是我是老流氓!!!我怕谁!!![img]http://202.98.116.70:888/cgi-bin/newmov/bbs/attachment.cgi?forum=4&topic=25473&postno=1&type=.jpg[/img]
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-04-05 09:48
我非常同意wilton的观点!!!
~~ :D :D :D
Oh,My God!
xqf
xqf
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2002-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-04-05 10:08
_asm cli
即可!当然首先得保证你的程序不产生异常。
对于NMI发生了,那系统还能工作吗?
所以,不用讨论这个无聊的情况!

 :P
Oh,My God!
lvhaow
驱动小牛
驱动小牛
  • 注册日期2001-10-31
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分44分
  • 威望35点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
  • 社区居民
14楼#
发布于:2002-04-07 00:25
wilton
大哥好厉害,人家说说自己的看法你就不带人家玩呀,怎么象当年我们幼儿园的老大??人都有不懂的东西才会来这里,也都会遇到比自己水平差的人,高兴了您就帮一把,不高兴您就龇牙一乐,干嘛打击人信心呢??只显得您的水平比不上您的清~~~~高,脾气要比本事还大!
算了,不跟你玩了! :D
lvhaow
游客

返回顶部