阅读:1702回复:17
NT架构还有软件中断机制吗?急啊
就是象DOS时的INT的东西。
98下VXD用VTOOLS开发包,也有EXEC_VXD_INT相对应。 那么2000或XP下到底还有没有软件中断呢?如果有对应的函数是什么呢? 大家帮帮我吧,急用啊 |
|
沙发#
发布于:2004-01-16 16:19
IoConnectInterrupt
|
|
|
板凳#
发布于:2004-01-16 16:24
终于有人理我了,不过情况有点不太一样,我并不需要做软件中断的响应或处理,而是在我的驱动程序中发出这个软件中断即可
|
|
地板#
发布于:2004-01-16 16:28
不太明白,直接INT或INTO不行吗?
|
|
|
地下室#
发布于:2004-01-16 16:32
就是不行啊,INT不行的啊,我是怕DDK又做了什么工作,不让我用INT
|
|
5楼#
发布于:2004-01-16 16:36
不让用?比如?
__asm int 2eh 不行? 编译不过还是运行出错? |
|
|
6楼#
发布于:2004-01-16 16:39
会不会需要用IDT来做呢
|
|
7楼#
发布于:2004-01-16 18:18
老兄还在不?我断网了,我用INT时没任何反应,所以我不知道是我没用对还是NT架构下根本不让我这么用,另外,有没有工具可以看到中断发生呢(监视中断)?
|
|
8楼#
发布于:2004-01-16 18:38
我也断了,到现在才很连上。
首先你得弄明白你要调用的软中断是不是有效的(大多数就一个iret),而且,NT下面的中断号已经不是原来DOS的那些了,9x和NT还不一样,具体情况我手头没资料,也说不上哪个中断号是干什么的,但调用方式一定是用int或into. |
|
|
9楼#
发布于:2004-01-16 19:46
问题是你做什么用?把代码拿出来看看吧。。。。。
|
|
|
10楼#
发布于:2004-01-17 08:43
做什么用?是这样,我们做了一块ISA板,为这块板这驱动,另外还有个设备,这个设备不是我们做的,有个看门狗,这个看门狗的触发是我们自己的设备驱动来做,而响应处理,是看门狗自己的事。
至于代码,根本就只有条件满足时调用软件一行。软中断号是15h,整个东西就是这样。平台我们用的是嵌入式XP 我又试了,ABCDX被我照他们的说明赋上值后,我一调INT就黑屏重启 |
|
11楼#
发布于:2004-01-17 10:11
XP里INT 15H有自己的用途,你不能使用,可以使用INT 20~30H中的中断,这里的空的IDT项,可以添加你自己的处理函数。。。。
|
|
|
12楼#
发布于:2004-01-18 13:01
win9x的EXEC_VXD_INT是用来调实模式的dos和bios中断。如果用INT X指令调的就是保护模式的中断。两个不一样的。
NT下面不知道是否提供象EXEC_VXD_INT这样的服务。 好像没有吧 :D |
|
13楼#
发布于:2004-01-26 14:11
试试改用调用门!不必非用int
|
|
|
14楼#
发布于:2004-02-11 11:01
楼上的,什么是调用门,说一下啊,NT下就是没有类似EXEC_VXD_INT这样的东西啊
|
|
15楼#
发布于:2004-02-11 12:59
建议不要用调用门之类的方法进RING0,我测试过,同样的代码,在调用门方法的时候,很容易使系统崩溃,而驱动本身则没这个问题,可能微软做了手脚,除非你生成并采用自己的RING0 CS,而不是系统的08H。
|
|
|
16楼#
发布于:2004-02-13 09:44
你的狗驱动是什么样的?注册了中断服务吗?
VDDSimulateInterrupt是用来在模拟Dos的VM中用的 |
|
17楼#
发布于:2004-02-13 13:05
哇,楼上这位火气好大
|
|