首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

HidD_GetAttributes 为啥总返回FALSE.该怎么处理

2012-01-15 
HidD_GetAttributes为啥总返回FALSE.HANDLEhCreateFile(m_list[i].m_linkname,0,FILE_SHARE_READ|FILE_SH

HidD_GetAttributes 为啥总返回FALSE.
HANDLE   h=CreateFile(m_list[i].m_linkname,0,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
TRACE(m_list[i].m_linkname);
if(h==   INVALID_HANDLE_VALUE)
continue;
HIDD_ATTRIBUTES   attr={sizeof(HIDD_ATTRIBUTES)};
BOOL   oKay=HidD_GetAttributes(h,&attr);
CloseHandle(h);
if(!oKay)   continue;
if(attr.VendorID!=HID_VID   ||
attr.ProductID   !=HID_PID)
continue;
以上是照搬MSDN的源码.
并且有提及   Only   user-mode   applications   与   Kernel-mode   drivers

上面的代码是要生成EXE的.user-mode
请问要如何才能成功返回TRUE.

[解决办法]
保证设备确实存在,文件名正确。
另外,
CreateFile(m_list[i].m_linkname,0, ...);
改为下面试下:
CreateFile(m_list[i].m_linkname, ENERIC_READ | GENERIC_WRITE, ...);
[解决办法]
嗯。
是 HID 类设备?
[解决办法]
不读就不好判断打开的是否为你所要操作的设备了。

我读从没出过问题呀,你用GetLastError()取一下错误代码看。

热点排行