注册 登录
编程论坛 VC++/MFC

求usb编程高手帮忙。

myappvc 发布于 2011-08-20 14:43, 524 次点击
本人想和特定的usb端口通讯,我用的是hid设备。一般usb编程的步骤是这样的:HidD_GetHidGuid(&HidGuid)获得HidGuid;DevInfo = SetupDiGetClassDevs(&HidGuid, NULL, NULL, (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE),得到所有hid设备的DevInfo;SetupDiEnumDeviceInterfaces(DevInfo,&HidGuid,Index, &DevData)获得设备的DevData;SetupDiGetDeviceInterfaceDetail(DevInfo,   &DevData,   NULL,         0,          &Length,  NULL)获得设备的Lenght;SetupDiGetDeviceInterfaceDetail(DevInfo,
                                         &DevData,
                                         DevDetail,
                                         Length,
                                         NULL,
                                         NULL
                                         );获得设备的DevDetail。接着就可以通过DevDetail里面的vid 和pid就可以判断该设备是不是你要的设备。再利用 DevHandle = CreateFile(DevDetail->DevicePath,
                           GENERIC_READ | GENERIC_WRITE,
                           FILE_SHARE_READ | FILE_SHARE_WRITE,
                           (LPSECURITY_ATTRIBUTES)NULL,
                           OPEN_EXISTING,
                           0,
                           NULL
                           );得到设备的句柄就可以用writefile和readfile函数了。这样就可以和设备通讯了。



但上面的程序也只能通过设备的vid和pid的不同来找到不同设备的句柄,但是如果相同的设备呢?我该怎么办?如果我就想和电脑usb端口1通讯呢?我又该怎么办?

0 回复
1