Listen_Interupt.c源程序
//应包含的头文件
#include ″../../include/windrvr.h″
#include ″../../include/windrvr_int_thread.h″
#include
//设置自己的中断号,这个例子为中断12
enum {MY_IRQ=12};
//建立全局的WinDriver句柄
HANDLE hWD;
//建立中断结构
WD_INTERRUPT Intrp;
Static char line[256];
//中断处理过程,你可以用pData来传递从InterruptThreadEnable()得来的信息
VOID interrupt_handler(PVOID pData)
{
//在这里加入你要做的中断处理代码
printf(″截获中断的数目为%dn″,Intrp.dwCounter);
}
//主函数
int main()
{
WD_CARD_REGISTER cardReg;//建立插卡登记项目的一个实例
WD_VERSION verBuf;
hWD=WD_Open();//获得驱动程序的句柄
if(hWD==INVALID_HANDLE_VALUE)
{
printf(″打开WINDRVR出现错误!n″);
return0;
}
BZERO(verBuf);
WD_Version(hWD,&verBuf);
if(verBuf.dwVer
{
printf(″WINDRVR版本不正确,这里需要的版本为:%dn″,WD_VER);
return0;
}
//初始化cardReg,这是程序的重要部分
BZERO(cardReg);
cardReg.Card.dwItems=1;
cardReg.Card.Item[0].item=ITEM_INTERRUPT;
cardReg.Card.Item[0].fNotSharable=True;
cardReg.Card.Item[0].I.Int.dwInterrupt=MY_IRQ;
cardReg.Card.Item[0].I.Int.dwOptions=1;
cardReg.fCheckLockOnly=True;