Windows9x/NT及2000下中斷驅(qū)動(dòng)程序的統(tǒng)一化處理
WD_CardRegister(hWD,cardReg);
if(cardReg.hCard==0)
{
printf(″無法鎖定設(shè)備!″);
}
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″);
//這里調(diào)用WD_IntEnable(),并且建立一個(gè)中斷處理的線程
if(!InterruptThreadEnable(thread_handle,hWD,Intrp,interrupt_handler,NULL))
{
printf(″中斷使能失敗!n″);
}
else
{
//callyourdrivercodehere
printf(″敲回車鍵不再進(jìn)行中斷截獲n″);
gets(line);
//這里調(diào)用禁止截獲中斷的函數(shù):WD_IntDisable()
InterruptThreadDisable(thread_handle);
}
//釋放所登記的資源
WD_CardUnregister(hWD,cardReg);
}
//刪除驅(qū)動(dòng)程序的句柄。
WD_Close(hWD);
return0;
}
按照本文給出的技術(shù)方案,掌握必要的Windows編程技術(shù),即可以成功地實(shí)現(xiàn)Windows環(huán)境下對(duì)硬件中斷的直接控制,很方便地在不同系統(tǒng)下進(jìn)行移植。實(shí)踐證明,這種方法是切實(shí)可行,行之有效的。
評(píng)論