阅读:1597回复:5
请大侠们过来看看!!“无法进入驱动程序进行读操作”
if (!DeviceIoControl(m_hDevice,
PCI9054_IOCTL_800_ReadBase0, bufInput, 2*sizeof(USHORT), bufOutput, IOCTL_OUTBUF_SIZE*sizeof(USHORT), &nOutput, NULL)) { MessageBox("无法进入驱动程序进行读操作","错误",MB_OK|MB_ICONHAND); } 应用程序执行到上述代码的时候,就提示“无法进入驱动程序进行读操作”,请大侠们看看是不是 DeviceIoControl使用错误? 其中PCI9054_IOCTL_800_ReadBase0是在PCI9054ioctl.h中定义的,其全文如下: #ifndef __PCI9054ioctl__h_ #define __PCI9054ioctl__h_ #define PCI9054_IOCTL_800_ReadBase0 CTL_CODE(FILE_DEVICE_UNKNOWN, 0xE8200000, METHOD_IN_DIRECT, FILE_READ_DATA) #define PCI9054_IOCTL_801_WriteBase0 CTL_CODE(FILE_DEVICE_UNKNOWN, 0x801, METHOD_OUT_DIRECT, FILE_WRITE_DATA) #define PCI9054_IOCTL_802_ReadBase2 CTL_CODE(FILE_DEVICE_UNKNOWN, 0x802, METHOD_IN_DIRECT, FILE_READ_DATA) #define PCI9054_IOCTL_803_WriteBase2 CTL_CODE(FILE_DEVICE_UNKNOWN, 0x803, METHOD_OUT_DIRECT, FILE_WRITE_DATA) |
|
|
沙发#
发布于:2007-11-02 15:23
PCI设备工作正常,驱动也没有问题,调试通过了
卡在这两三天了,郁闷 新手上路,请多指点! |
|
|
板凳#
发布于:2007-11-07 10:21
达人指点一二啊~~~~~~~
|
|
|
地板#
发布于:2007-11-07 11:24
你这里的“无法进入驱动程序进行读操作”是你自己打印的,没用
调完DeviceIoControl后,再调用GetLastError函数获取详细的错误码,查查MSDN看看具体原因 是不是m_hDevice句柄CreateFile时传的参数不对? |
|
地下室#
发布于:2007-11-07 17:18
里面的代码是自己添加的吗?我自己添加的代码也出了这个问题,自动生成的是好的,为什么?
你的问题解决了吗? |
|
5楼#
发布于:2007-11-10 15:27
#define PCI9054_IOCTL_800_ReadBase0 CTL_CODE(FILE_DEVICE_UNKNOWN, 0xE8200000, METHOD_IN_DIRECT, FILE_READ_DATA)
是不是这句错了 ,CTL_CODE默认是从0x800开始的,其他的部分是留给系统的,你把0xE8200000改成0x800试下 |
|