求usb编程高手帮忙。
本人想和特定的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通讯呢?我又该怎么办?