阅读:1742回复:4
我的guid设置也是正确的,为什么我的应用程序找不到usb设备?谢谢
我的guid设置也是正确的,为什么我的应用程序找不到usb设备?谢谢!!!
HDEVINFO HardwareDeviceInfo; SP_INTERFACE_DEVICE_DATA deviceInfoData; int NumberDevices; HardwareDeviceInfo = SetupDiGetClassDevs( &GUID_CLASS_ATLAS_BULK,//{6bdd1fc6-810f-11d0-bec7-08002be2092f} NULL, NULL, (DIGCF_PRESENT|DIGCF_INTERFACEDEVICE) ); NumberDevices = 4; deviceInfoData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA); for(int i=0;i < NumberDevices;i++) { SetupDiEnumDeviceInterfaces(HardwareDeviceInfo, 0, &GUID_CLASS_ATLAS_BULK, i, &deviceInfoData); } PSP_INTERFACE_DEVICE_DETAIL_DATA functionClassDeviceData = NULL; ULONG predictedLength = 0; ULONG requiredLength = 0; SetupDiGetInterfaceDeviceDetail(HardwareDeviceInfo, &deviceInfoData, NULL, 0, &requiredLength, NULL); predictedLength = requiredLength; functionClassDeviceData = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(predictedLength); if(!SetupDiGetInterfaceDeviceDetail(HardwareDeviceInfo, &deviceInfoData, functionClassDeviceData, predictedLength, &requiredLength, NULL)) { AfxMessageBox("Get Device Path Failed"); //return 0;//INVALID_HANDLE_VALUE; } else { AfxMessageBox("Get Device Path Success"); } HANDLE hDeviceHandle; hDeviceHandle = CreateFile( functionClassDeviceData->DevicePath, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING,0, NULL ); if(hDeviceHandle == INVALID_HANDLE_VALUE) AfxMessageBox("Get Device Handle Failed"); else { AfxMessageBox("Get Device Handle Success"); } char completeDeviceName[256] =""; strcat(completeDeviceName,functionClassDeviceData->DevicePath); strcat(completeDeviceName,"\\PIPE2"); hIntfHandle = CreateFile( completeDeviceName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hIntfHandle == INVALID_HANDLE_VALUE) AfxMessageBox("Get Interface Handle Failed"); else { AfxMessageBox("Get Interface Handle Success"); } |
|
沙发#
发布于:2005-05-17 17:20
设备选择驱动程序是根据VID和PID来确定的
你有两个,肯定不行的,建议删除一个试一试。 |
|
板凳#
发布于:2004-09-06 15:04
DEFINE_GUID(GUID_CLASS_MODEM_BULK,
0x4D36E96D, 0xE325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); 我已 |
|
地板#
发布于:2004-09-04 17:18
执行到SetupDiGetClassDevs()就有问题了,error code 是ERROR_IO_PENDING(Overlapped I/O operation is in progress.)。我的理解是我的设备有多种功能,使用一个guid,但有不同种驱动程序,我如何定位驱动程序使得我的应用程序可以和我希望的驱动程序通信?谢谢!!!
|
|
地下室#
发布于:2004-09-01 21:17
执行到哪里出错或失败了,跟踪一下吗
|
|
|