社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 646|回复: 2

[求助] 使用WinDriver的WDC_IntEnable函数 不能把设置好的传输命令传递给内核。为什么..

[复制链接]

2

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-1-5 11:05:26 | 显示全部楼层 |阅读模式
代码如下:

  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);依然能收到中断,不能清除中断。
        看来这三条传输命令根本没有执行,我想问下怎么能让这个传输命令生效啊? 。另外三条传输命令的内容是没有错误的。
此帖出自编程基础论坛


回复

使用道具 举报

469

TA的帖子

78

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2018-1-5 18:09:43 | 显示全部楼层
@辛昕 @汤权 @chenzhufly

点评

哦,no,我不认识这个东西。是WDF?  详情 回复 发表于 2018-1-6 16:51


回复

使用道具 举报

7675

TA的帖子

54

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-1-6 16:51:39 | 显示全部楼层
高进 发表于 2018-1-5 18:09
@辛昕 @汤权 @chenzhufly

哦,no,我不认识这个东西。是WDF?
没有一件事情是容易的,所以,起念头时,一定要好好琢磨


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-7-17 13:41 , Processed in 0.116644 second(s), 17 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表