关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > Windows9x/NT及2000下中断驱动程序的统一化处理

Windows9x/NT及2000下中断驱动程序的统一化处理

作者: 时间:2009-05-13 来源:网络 收藏

  Listen_Interupt.c源程序

  //应包含的头文件

  #include ″../../include/windrvr.h″

  #include ″../../include/windrvr_int_thread.h″

  #include

  //设置自己的号,这个例子为12

  enum {MY_IRQ=12};

  //建立全局的WinDriver句柄

  HANDLE hWD;

  //建立结构

  WD_IERRUPT 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_IERRUPT;

  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;



关键词: Windows 2000 NT 中断

评论


相关推荐

技术专区

关闭