| 本帖最后由 大洋芋 于 2011-10-30 15:13 编辑 
 现在简单做了一个VC上位机程序访问驱动,获取数据。
 因为交到我这里的时候就是用的EZUSB,所以我也是用的EZUSB.SYS。不过我想应该没什么问题的。完全仿造EZMR这个工程看了一遍,写出的来得程序只能写数据而不能读数据,怪哉啊!怪哉!
 bResult = DeviceIoControl (hDevice,
 IOCTL_EZUSB_BULK_WRITE,
 &bulkControl,
 sizeof (BULK_TRANSFER_CONTROL),
 buffer,
 length,
 (unsigned long *)&nBytes,
 NULL);
 ——————这是写的调用,完全参照control panel里的程序。
 但是为什么完全仿照这个的读数据却返回不了值呢?
 bResult = DeviceIoControl (hDevice,
 IOCTL_EZUSB_BULK_READ,
 &bulkControl,
 sizeof (BULK_TRANSFER_CONTROL),
 buffer,
 length,
 (unsigned long *)&nBytes,
 NULL);——————我用VC调试,看到所有的参数都与control panel一样,但是传进去都一样,为什么传出来的就是false呢?
 读与写有什么配置上的差异呢?头都快想破了都没想出来。
 另:
 因为control panel里的create File里的申明是这样的:
 CreateFile(   completeDeviceName,
 GENERIC_WRITE,
 FILE_SHARE_WRITE,
 NULL,
 OPEN_EXISTING,
 0,
 NULL);
 我看到没有GENERIC_READ,
 我自己的申明如下:
 WhDevice = CreateFile("[url=]\\\\.\\ezusb-0[/url]",
 GENERIC_READ|GENERIC_WRITE,
 FILE_SHARE_READ|FILE_SHARE_WRITE,
 NULL,
 OPEN_EXISTING,
 0,//FILE_ATTRIBUTE_NORMAL,
 NULL);
 也读不出来啊。为什么他没有read能读出来,而我有没有read都读不出来呢?
 哭死!!!
 |