我在Win2000下做内核模式驱动,有这样一个问题:
我需要在ISR里调用令一个中断,所以我这样写:
void _cdecl InterruptFunction()
{
_asm sti; // 开中断
_asm int 76h;
_asm iretd; }
这样一来,当中断频繁时就会bug check ,我想原因是由于中断重入引起的。
但不开中断,又不能调用 int 76h ,所以请教高手,有没有解决的办法。
我需要在ISR里调用令一个中断,所以我这样写:
void _cdecl InterruptFunction()
{
_asm sti; // 开中断
_asm int 76h;
_asm iretd; }
这样一来,当中断频繁时就会bug check ,我想原因是由于中断重入引起的。
但不开中断,又不能调用 int 76h ,所以请教高手,有没有解决的办法。
具体实现我就不是很清楚了,但是我再做别得多线程程序中遇到过这样的问题,主要是多个线程或进程共享数据或寄存器引起的,所以到加锁