hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1702回复:17

NT架构还有软件中断机制吗?急啊

楼主#
更多 发布于:2004-01-16 15:44
就是象DOS时的INT的东西。
98下VXD用VTOOLS开发包,也有EXEC_VXD_INT相对应。
那么2000或XP下到底还有没有软件中断呢?如果有对应的函数是什么呢?
大家帮帮我吧,急用啊
cool-net
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2010-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-16 16:19
IoConnectInterrupt
有错误才会有进步,所以我的人生目标是: 错误不断,毁人不倦!
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-16 16:24
终于有人理我了,不过情况有点不太一样,我并不需要做软件中断的响应或处理,而是在我的驱动程序中发出这个软件中断即可
cool-net
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2010-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-16 16:28
不太明白,直接INT或INTO不行吗?
有错误才会有进步,所以我的人生目标是: 错误不断,毁人不倦!
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-16 16:32
就是不行啊,INT不行的啊,我是怕DDK又做了什么工作,不让我用INT
cool-net
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2010-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-16 16:36
不让用?比如?

__asm int 2eh

不行?
编译不过还是运行出错?
有错误才会有进步,所以我的人生目标是: 错误不断,毁人不倦!
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-01-16 16:39
会不会需要用IDT来做呢
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-01-16 18:18
老兄还在不?我断网了,我用INT时没任何反应,所以我不知道是我没用对还是NT架构下根本不让我这么用,另外,有没有工具可以看到中断发生呢(监视中断)?
cool-net
驱动小牛
驱动小牛
  • 注册日期2003-03-18
  • 最后登录2010-01-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-01-16 18:38
我也断了,到现在才很连上。

首先你得弄明白你要调用的软中断是不是有效的(大多数就一个iret),而且,NT下面的中断号已经不是原来DOS的那些了,9x和NT还不一样,具体情况我手头没资料,也说不上哪个中断号是干什么的,但调用方式一定是用int或into.
有错误才会有进步,所以我的人生目标是: 错误不断,毁人不倦!
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
9楼#
发布于:2004-01-16 19:46
问题是你做什么用?把代码拿出来看看吧。。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-01-17 08:43
做什么用?是这样,我们做了一块ISA板,为这块板这驱动,另外还有个设备,这个设备不是我们做的,有个看门狗,这个看门狗的触发是我们自己的设备驱动来做,而响应处理,是看门狗自己的事。
至于代码,根本就只有条件满足时调用软件一行。软中断号是15h,整个东西就是这样。平台我们用的是嵌入式XP
我又试了,ABCDX被我照他们的说明赋上值后,我一调INT就黑屏重启
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
11楼#
发布于:2004-01-17 10:11
XP里INT 15H有自己的用途,你不能使用,可以使用INT 20~30H中的中断,这里的空的IDT项,可以添加你自己的处理函数。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2004-01-18 13:01
win9x的EXEC_VXD_INT是用来调实模式的dos和bios中断。如果用INT X指令调的就是保护模式的中断。两个不一样的。

NT下面不知道是否提供象EXEC_VXD_INT这样的服务。 好像没有吧 :D
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-01-26 14:11
试试改用调用门!不必非用int
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-02-11 11:01
楼上的,什么是调用门,说一下啊,NT下就是没有类似EXEC_VXD_INT这样的东西啊
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
15楼#
发布于:2004-02-11 12:59
建议不要用调用门之类的方法进RING0,我测试过,同样的代码,在调用门方法的时候,很容易使系统崩溃,而驱动本身则没这个问题,可能微软做了手脚,除非你生成并采用自己的RING0 CS,而不是系统的08H。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Kerry80
驱动牛犊
驱动牛犊
  • 注册日期2002-11-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分54分
  • 威望36点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-02-13 09:44
你的狗驱动是什么样的?注册了中断服务吗?
VDDSimulateInterrupt是用来在模拟Dos的VM中用的
hummingbird
驱动牛犊
驱动牛犊
  • 注册日期2003-10-13
  • 最后登录2004-02-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-02-13 13:05
哇,楼上这位火气好大
游客

返回顶部