阅读:2760回复:13
请教,为何打开USB的鼠标、键盘设备会失败
SetupDiGetClassDevs
SetupDiEnumDeviceInterfaces SetupDiGetInterfaceDeviceDetail 这几个调用时都没问题,但是一调用CreateFile,就会失败,错误是Access is denied.(拒绝访问)。 请问,应该不是HID类设备不允许打开吧?困惑中... [编辑 - 10/11/04 by fgf1014] |
|
沙发#
发布于:2004-10-11 23:11
// 开放与设备的通信
HANDLE hCom = CreateFile(m_strPath, GENERIC_WRITE, FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if (hCom == INVALID_HANDLE_VALUE) { AfxMessageBox(_T("无法打开通信端口")); SetupDiDestroyDeviceInfoList(hDevInfo); return; } 这样修改就可以了 |
|
板凳#
发布于:2004-10-12 18:00
谢谢!CreateFile是可以了,但是WriteFile会返回False,而readFile还是拒绝访问,这又是怎么回事。请大侠赐教!!!
|
|
地板#
发布于:2004-10-12 18:40
// 开放与设备的通信 都加上吗 GENERIC_WRITE|GENERIC_READ FILE_SHARE_READ|FILE_SHARE_WRITE |
|
|
地下室#
发布于:2004-10-12 20:16
如果都加上,CreateFile就出错了,错误是Access is denied.(拒绝访问)。
|
|
5楼#
发布于:2004-10-12 21:15
请教搂主,你的SetupDiEnumDeviceInterfaces中使用的guid是怎么获得的,我在该函数中使用HidD_GetHidGuid()获得的guid,结果总是返回ERROR_NO_MORE_ITEMS。多谢
|
|
6楼#
发布于:2004-10-12 22:41
我现在的情况跟fgf1014的一样,也是Write会失败。
fgf1014,你write的数据是什么? |
|
7楼#
发布于:2004-10-13 09:18
请教搂主,你的SetupDiEnumDeviceInterfaces中使用的guid是怎么获得的,我在该函数中使用HidD_GetHidGuid()获得的guid,结果总是返回ERROR_NO_MORE_ITEMS。多谢 在注册表里找的 |
|
8楼#
发布于:2004-10-13 09:41
我现在的情况跟fgf1014的一样,也是Write会失败。 BYTE bits[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0xFF, 0x00, }; for( int i=0; i<sizeof(bits)/sizeof(BYTE); i++) { if( !WriteFile( hDevice, &bits, 1, &dwLen, NULL)) { ShowErrorText(); } } 疑问:为什么CreateFile时不能设置GENERIC_READ 呢? |
|
9楼#
发布于:2004-10-13 09:53
那跟我的做法差不多,我也不知道为什么不能设READ :(
|
|
10楼#
发布于:2004-10-13 12:00
我找到一段话,可能跟这个问题有关,供大家参考:
Why do I receive "Access denied" when attempting to access my HID? Windows 2000 and Windows XP have exclusive read/write access to HIDs that are configured as a system keyboards or mice. An application can obtain a handle to a system keyboard or mouse by not requesting READ or WRITE access with CreateFile. Communications can then use HidD_SetFeature and HidD_GetFeature (assuming the device supports Feature reports). |
|
11楼#
发布于:2004-10-13 13:16
你是在哪里找到的,是DDK之类的文档中吗?看这段话的意思应该是不能用这种方法访问了。
|
|
12楼#
发布于:2004-10-13 13:30
就在这个网址,你也看看,有什么成果别忘了说一下:D :D
http://www.lvr.com/hidpage.htm |
|
13楼#
发布于:2004-10-13 17:01
多谢!!!
以后多交流!!! |
|