补充:设备为HID设备,协议为通用协议。
解决方案 »
- 【重载ListBox】自绘DrawItem、排序CompareItem参数总是不对
- sqlite数据库如何创建ODBC数据源呢?
- access文件格式问题
- 做图像算法的用那种语言比较好?
- 如何在调试过程中自动搜索所在文件???
- UDP出错,懂winsock编程的进来看看
- 求direct draw 的sdk,或者directx sdk7.0
- vc窗体上放置一个静态控件,在另一个程序,如何模拟鼠标单击事件
- [高分求教]关于访问数据库和生成XML文档的性能优化问题!
- 求教关于AfxBeginThread()的问题
- 请大家帮忙看一下,这个VC程序有问题吗?怎么收不到数据啊?只把2,3针短接可以吗?
- 有谁研究过opensg的,他的api文档太滥了
配置描述符
接口描述符
端点描述符
然后打开某个固定的端点
进行数据传输。
我用二层循环查找的办法,查出了设备的描述符,
就是上面函数中的pNodeKeyName,值为:\\.\\HCD2\{36FC9E60-C465-11CF-8056-444553540000}\0035,
(对应注册表里的Driver值)
用上面CreateFile后,返回句柄为hNodeDevice,
我单步跟踪,其返回值为:0x00000740。
(注册表里还有一个HardWareId值为USB\Vid_0471&Pid_1011&Rev_0001 USB\Vid_0471&Pid_1011,是不是要用它阿?)
而后,我定义往设备中写的内容:
char inbuf[10];
PCHAR pInput;
DWORD sendSize;
LPDWORD pSendSize;
char outbuf[50];
PCHAR pOutBuff;
DWORD returnSize;
LPDWORD pReturnSize;strcpy(inbuf, "00");
pInput = inbuf;
sendSize = 2;
pSendSize = &sendSize;
pOutBuff = outbuf;
returnSize = 8;
pReturnSize = &returnSize;bSend = DeviceIoControl(hDevice,
FILE_WRITE_ACCESS,
pInput,
inputSize,
pOutBuf,
sizeof(outbuf),
pReturnSize,
NULL);
结果DeviceIoControl返回失败换用WriteFile:
bSend = WriteFile(hDevice,
pInput,
inputSize,
pInputSize,
NULL);
也是失败.不知道错在哪里,是不是参数FILE_WRITE_ACCESS不对?
还是哪里有错误?