阅读:1061回复:1
SetupDiEnumDeviceInterfaces的返回值为什么总为0?请指教,谢谢
TCHAR * GUIDString = NULL;
GUIDString=_T("36FC9E60-C465-11CF-8056-444553540000"); GUID CardGuid; ZeroMemory(&CardGuid, sizeof(GUID)); UuidFromString((unsigned char *)GUIDString, &CardGuid); DWORD ReqLength; DWORD Flags=DIGCF_PRESENT|DIGCF_DEVICEINTERFACE; HDEVINFO hCard; PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceDetailData; SP_DEVICE_INTERFACE_DATA DeviceInterfaceData; DeviceInterfaceData.cbSize=sizeof(SP_DEVICE_INTERFACE_DATA); hCard=SetupDiGetClassDevs( &CardGuid, NULL, NULL, Flags); if(hCard==INVALID_HANDLE_VALUE){ ::MessageBox(0,"查找符合cardguid的USB设备失败","Error",MB_OK|MB_ICONERROR); return; } BOOL status=SetupDiEnumDeviceInterfaces( hCard, NULL, &CardGuid, 0, &DeviceInterfaceData); if(!status){ ::MessageBox(0,"查找USB设备接口index失败","Error",MB_OK+MB_ICONERROR); ::CloseHandle(hCard); return; } SetupDiGetInterfaceDeviceDetail( hCard, &DeviceInterfaceData, NULL, 0, &ReqLength, NULL); DeviceDetailData=(PSP_INTERFACE_DEVICE_DETAIL_DATA)new char[ReqLength]; if(DeviceDetailData){ ::CloseHandle(hCard); return; } status=SetupDiGetInterfaceDeviceDetail( hCard, &DeviceInterfaceData, DeviceDetailData, ReqLength, &ReqLength, NULL); if(!status){ ::MessageBox(0,"读取设备路径名失败","Error",MB_OK+MB_ICONERROR); delete DeviceDetailData; DeviceDetailData=NULL; return; } 是不是guid的赋值方式不对?应该怎么赋值? |
|
沙发#
发布于:2007-12-02 08:33
我将
TCHAR * GUIDString = NULL; GUIDString=_T("36FC9E60-C465-11CF-8056-444553540000"); GUID CardGuid; ZeroMemory(&CardGuid, sizeof(GUID)); UuidFromString((unsigned char *)GUIDString, &CardGuid); 改成 GUID CardGuid={0x36FC9E60,0xC465,0x11CF,{0x80,0x56,0x44,0x45,0x53,0x54,0x00,0x00}}; 这样的赋值方式,结果也一样 问题出在哪里呢?请指教 |
|