static extern bool SetupDiEnumDeviceInterfaces(
    IntPtr DeviceInfoSet,
    IntPtr DeviceInfoData,
    ref GUID lpHidGuid,
    UInt32 MemberIndex,
    ref SP_DEVICE_INTERFACE_DATA lpDeviceInterfaceData
 );
 static extern bool SetupDiGetDeviceInterfaceDetail(
    IntPtr DeviceInfoSet,
    ref SP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
    IntPtr DeviceInterfaceDetailData,
    UInt32 DeviceInterfaceDetailDataSize,
    ref UInt32 RequiredSize,
    IntPtr DeviceInfoData);
 public bool SetupDiEnumDeviceInterfaces(UInt32 memberIndex)
 {
    _deviceInterfaceData = new SP_DEVICE_INTERFACE_DATA();
    _deviceInterfaceData.cbSize = Marshal.SizeOf(_deviceInterfaceData);
    bool bResult = SetupDiEnumDeviceInterfaces(_hDevInfo, IntPtr.Zero, ref _guid, memberIndex, ref _deviceInterfaceData);
    return bResult;
 }