阅读:1820回复:7
d12的pc机应用程序SetupDiEnumDeviceInterfaces问题!
我做d12的pc机应用程序,但是老是打不开设备。
SetupDiEnumDeviceInterfaces调用错误,使用GetLastError()得到错误码为259。请教各位大虾为什么? 程序如下: HDEVINFO HardwareDeviceInfo; GUID pGuid = {0x4D1E55B2,0xF16F,0x11CF,{0x88,0xCB,0x00,0x11,0x11,0x00,0x00,0x30}}; HardwareDeviceInfo = SetupDiGetClassDevs( &pGuid, NULL, NULL, (DIGCF_PRESENT | DIGCF_INTERFACEDEVICE ) ); if(HardwareDeviceInfo == INVALID_HANDLE_VALUE) { } SP_INTERFACE_DEVICE_DATA DeviceInfoData; DeviceInfoData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA); PSP_INTERFACE_DEVICE_DETAIL_DATA functionClassDeviceData = NULL; ULONG predictedLength = 0; ULONG requiredLength = 0; if(!SetupDiEnumDeviceInterfaces(HardwareDeviceInfo, 0, &pGuid, 0, &DeviceInfoData )) { } if (!SetupDiGetDeviceInterfaceDetail( HardwareDeviceInfo, &DeviceInfoData, NULL, 0, &requiredLength, NULL )) { } predictedLength = requiredLength; functionClassDeviceData = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(predictedLength); if(!SetupDiGetInterfaceDeviceDetail( HardwareDeviceInfo, &DeviceInfoData, functionClassDeviceData, predictedLength, &requiredLength, NULL)) { } HANDLE hDevice; hDevice = CreateFile( functionClassDeviceData->DevicePath, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); if(hDevice==INVALID_HANDLE_VALUE) { AfxMessageBox(\"OpenDevice error\"); return; } else AfxMessageBox(\"OpenDevice success\"); char completeDeviceName[256] = \"\"; strcpy (completeDeviceName,functionClassDeviceData->DevicePath); strcat (completeDeviceName,\"\\\\PIPE01\"); HANDLE hUSBPIPE; hUSBPIPE = CreateFile( completeDeviceName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL ); } |
|
沙发#
发布于:2005-03-07 17:11
希望各位大虾多多指教!急!
另外我想问一下,cypress的2131是不是也可以用这种方法打开,我以前做过2131的,但是应用程序使用GDP写的。 |
|
板凳#
发布于:2005-03-08 10:00
没人理吗?郁闷中!
|
|
地板#
发布于:2005-03-13 15:53
怎么还没有人回贴呀
|
|
|
地下室#
发布于:2005-03-14 09:21
继续问一下
各位写pc端的应用程序采用的是什么方法呀 |
|
|
5楼#
发布于:2005-03-15 09:57
大家难道不写应用程序吗???
QQ:150451048 |
|
|
6楼#
发布于:2005-05-17 16:28
给我分,我帮你解决
首先确定人的GUID是否正确 然后把你的函数改一下: Result = SetupDiEnumDeviceInterfaces _ (DeviceInfoSet, _ 0, _ HidGuid, _ MemberIndex, _ MyDeviceInterfaceData) MemberIndex为你寻找到USB设备的个数。 |
|
7楼#
发布于:2005-05-17 19:47
有没有加\"setupapi.h\"头文件。
好像还要加个库文件 #pragma comment(lib,\"setupapi.lib\") 我是这样就可以了 |
|