WD_CardRegister(hWD,&cardReg);
if(cardReg.hCard==0)
{
printf(″无法锁定设备!″);
}
else
{
HANDLE thread_handle;
BZERO(Intrp);
Intrp.hInterrupt=cardReg.Card.Item[0].I.Int.hInterrupt;
Intrp.Cmd=NULL;
Intrp.dwCmds=0;
Intrp.dwOptions=0;
printf(″开始中断线程n″);
//这里调用WD_IntEnable(),并且建立一个中断处理的线程
if(!InterruptThreadEnable(&thread_handle,hWD,&Intrp,&interrupt_handler,NULL))
{
printf(″中断使能失败!n″);
}
else
{
//callyourdrivercodehere
printf(″敲回车键不再进行中断截获n″);
gets(line);
//这里调用禁止截获中断的函数:WD_IntDisable()
InterruptThreadDisable(&thread_handle);
}
//释放所登记的资源
WD_CardUnregister(hWD,&cardReg);
}
//删除驱动程序的句柄。
WD_Close(hWD);
return0;
}
按照本文给出的技术方案,掌握必要的Windows编程技术,即可以成功地实现Windows环境下对硬件中断的直接控制,很方便地在不同系统下进行移植。实践证明,这种方法是切实可行,行之有效的。