使用WinDriver的WDC_IntEnable函数 不能把设置好的传输命令传递给内核。为什么会这样??

knightk123 2018-01-04 10:33:25
代码如下:

WD_TRANSFER trans[3];
BZERO(trans);

trans[0].cmdTrans=RP_BYTE; //从INTCSR I / O端口读取一个BYTE
trans[0].dwPort=((RECVPARAM *)pParam)->deviceInfo.Card.Item[3].I.IO.dwAddr;
trans[0].fAutoinc=FALSE;
trans[0].dwOptions=0;

trans[1].cmdTrans=CMD_MASK;
trans[1].Data.Byte=0x3;
trans[1].fAutoinc=FALSE;
trans[1].dwOptions=0;

trans[2].cmdTrans=WP_BYTE;
trans[2].dwPort = ((RECVPARAM *)pParam)->deviceInfo.Card.Item[3].I.IO.dwAddr;
trans[2].Data.Byte=0x1;
trans[2].fAutoinc=FALSE;
trans[2].dwOptions=0;

int_satatus = WDC_IntEnable(((RECVPARAM *)pParam)->hDev, trans, 3, 0,IntTest1, (LPVOID)par1, FALSE);

while (WaitForSingleObject(phOsEvent, 0)!=WAIT_OBJECT_0)//等待事件发生
{
};


这个传输命令trans是为了确认并清除中断的,但是放在WDC_IntEnable()里却没有起作用。
我把 trans 删了只写一句WDC_IntEnable(((RECVPARAM *)pParam)->hDev, trans, 3, 0,IntTest1, (LPVOID)par1, FALSE);依然能收到中断,不能清除中断。
看来这三条传输命令根本没有执行,我想问下怎么能让这个传输命令生效啊? 。另外三条传输命令的内容是没有错误的。
...全文
598 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
knightk123 2018-01-08
  • 打赏
  • 举报
回复
顶。。。。。。
knightk123 2018-01-05
  • 打赏
  • 举报
回复
顶!求神仙指点

21,595

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧