newdm
驱动牛犊
驱动牛犊
  • 注册日期2002-07-23
  • 最后登录2004-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1553回复:2

谁用过plx的 PlxIntrAttach()函数?

楼主#
更多 发布于:2002-11-21 16:59
为什么不能像下面这么用?
while(1)
{
……………………    
rc = PlxIntrAttach(
             hDevice,
             PlxInterrupt,
             &hInterruptEvent
             );
    if (rc != ApiSuccess)
    {
        printf(\"*ERROR* - Attach failed, rc=%d\\n\", rc);
        return 0;
    }
    EventStatus = WaitForSingleObject(
                      hInterruptEvent,
                      INFINITE                    
                      );
    switch (EventStatus)
    {
      case WAIT_OBJECT_0:
      rc = PlxIntrAttach(
               hDevice,
               PlxInterrupt,
               &hInterruptEvent
               );
       break;
……………………………………
     }
}
每次运行时第一次中断总是没问题,可是到了switch里的    
 rc = PlxIntrAttach(
               hDevice,
               PlxInterrupt,
               &hInterruptEvent
              );
也就是准备第二次中断时,就会出错,提示信息为:ApiInvalidHandle,怎么会出现无效设备句柄啊?
而且plx提供的文档里,关于这个函数的例子里也有一个例子是这样的阿?
那位大侠知道原因啊,小弟万分感谢!!
顺便提一下,上面这段程序是在一个中断处理线程中的。


QJE
QJE
驱动小牛
驱动小牛
  • 注册日期2001-08-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分470分
  • 威望49点
  • 贡献值0点
  • 好评度44点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-21 20:39
我起先也是用PLX-SDK,但觉得它的中断服务程序写得不大好(个人意见),所以我现在不用了。
所以你最好winddk自己写驱动。
newdm
驱动牛犊
驱动牛犊
  • 注册日期2002-07-23
  • 最后登录2004-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-22 16:54
没有别的办法了吗? :(
游客

返回顶部