调用SetupDiEnumDeviceInterfaces枚举USB设备失败解决方法
c_a_3();
调用SetupDiEnumDeviceInterfaces枚举USB设备失败
我最近在做一个操作USB设备的程序,但在打开设备时遇到了问题.步骤如下,
1.调用SetupDiGetClassDevs.这一部正常获得句柄
2.调用SetupDiEnumDeviceInterfaces,枚举设备.在调用时无论如何返回值也是false.
3.两次调用SetupDiGetDeviceInterfaceDetail,获取设备详细信息,设备名.
4.调用CreateFile,打开设备句柄.
这里3和4因为步骤2不能正确获取信息,而不能进行.
因为这段代码在VC下运行正常,所以我怀疑是我在vb.net下的调用不对.
代码如下
//函数原型
WINSETUPAPI
BOOL
WINAPI
SetupDiEnumDeviceInterfaces(
__in HDEVINFO DeviceInfoSet,
__in_opt PSP_DEVINFO_DATA DeviceInfoData,
__in CONST GUID *InterfaceClassGuid,
__in DWORD MemberIndex,
__out PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);
'''vb.net中的调用
DllImport( setupapi.dll , CharSet:=CharSet.Auto, SetLastError:=True) _
Public Shared Function SetupDiEnumDeviceInterfaces(ByVal hDevInfo As IntPtr, _
ByVal devInfo As IntPtr, ByRef interfaceClassGuid As Guid, ByVal memberIndex As UInt32, _
ByRef deviceInterfaceData As SP_DEVICE_INTERFACE_DATA) As Boolean
End Function
'''SP_DEVICE_INTERFACE_DATA 结构体
StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto) Public Class
SP_DEVICE_INTERFACE_DATA
Public cbSize As Integer
Public classGuid As Guid
Public devInst As Integer
Public reserved As Integer
End Class
希望有经验的朋友可以帮忙看一下,问题出在哪里
------解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
--------------------------------------------------------
C#