Windows9x/NT及2000下中斷驅動(dòng)程序的統一化處理
Listen_Interupt.c源程序
//應包含的頭文件
#include ″../../include/windrvr.h″
#include ″../../include/windrvr_int_thread.h″
#include
enum {MY_IRQ=12};
//建立全局的WinDriver句柄
HANDLE hWD;
//建立中斷結構
WD_INTERRUPT Intrp;
Static char line[256];
//中斷處理過(guò)程,你可以用pData來(lái)傳遞從InterruptThreadEnable()得來(lái)的信息
VOID interrupt_handler(PVOID pData)
{
//在這里加入你要做的中斷處理代碼
printf(″截獲中斷的數目為%dn″,Intrp.dwCounter);
}
//主函數
int main()
{
WD_CARD_REGISTER cardReg;//建立插卡登記項目的一個(gè)實(shí)例
WD_VERSION verBuf;
hWD=WD_Open();//獲得驅動(dòng)程序的句柄
if(hWD==INVALID_HANDLE_VALUE)
{
printf(″打開(kāi)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;
評論