阅读:1278回复:4
无法得到USB设备的标识,求救各位大虾
我已经通过createfile成功得到USB设备(U盘)的HANDLE(hCom),然后用以下语句读设备状态:
// 开放与设备的通信 HANDLE hCom = CreateFile(strtDetailData->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,NULL); if (hCom == INVALID_HANDLE_VALUE) { AfxMessageBox(_T("无法打开通信端口")); return; } // 查询设备标识 HIDD_ATTRIBUTES strtAttrib; //strtAttrib.Size=sizeof(HIDD_ATTRIBUTES); if (!HidD_GetAttributes(hCom,&strtAttrib)) { ULONG er_no=GetLastError(); AfxMessageBox(_T("查询设备状态时出错!")); } 结果总是出错,GetLastError()返回ERROR_INVALID_FUNCTION,请教各位大虾什么原因啊? |
|
沙发#
发布于:2004-07-28 20:14
好像u盘不是HID类,
不能用HidD_GetAttributes函数 |
|
|
板凳#
发布于:2004-07-29 00:10
U盘是Mass Storage设备,不是Human Interface Device (HID).
但是具体如何使用我就不清楚了。 |
|
地板#
发布于:2004-07-29 09:07
那如何取得U盘的VID和PID呢,用DeviceIoControl吗?
|
|
地下室#
发布于:2004-09-23 14:56
用USB view可以得到 :D
|
|