|
使用WinDriver的WDC_IntEnable函数 不能把设置好的传输命令传递给内核。为什么..
[复制链接]
代码如下:
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);依然能收到中断,不能清除中断。
看来这三条传输命令根本没有执行,我想问下怎么能让这个传输命令生效啊? 。另外三条传输命令的内容是没有错误的。
|
|