Есть странная проблема при сканировании устройств FTDI. Первое сканирование проходит без проблем. Показывается список устройств. Допустим, у нас два устройства. В списке отображаются четыре, так как у микросхемы два порта-устройства. После первого подключения сканирование доступных устройств работает нормально. А вот после второго подключения уже начинаются проблемы. Попытка сканирования устройства приводит к утечке памяти, если судить по показаниям отладчика. И на этом месте останавливается. Странно, что не выдаёт ноль хотя бы, раз больше недоступны.
public TemplateFTDI.InfoDevice[] GetNumberOfDevices()
{
DeviceCount = 0;
DeviceStatus = FTDI.FT_STATUS.FT_OK;
// количество обнаруженных устройств
DeviceStatus = Device.GetNumberOfDevices(ref DeviceCount);
// составление списка устройств
DeviceList = new FTDI.FT_DEVICE_INFO_NODE[DeviceCount];
DeviceStatus = Device.GetDeviceList(DeviceList);
InfoDevice = new TemplateFTDI.InfoDevice[DeviceCount];
for (uint i = 0; i < DeviceCount; i++)
InfoDevice[i] = new TemplateFTDI.InfoDevice()
{
Number = i,
Description = DeviceList[i].Description.ToString(),
Flags = DeviceList[i].Flags.ToString(),
Handle = DeviceList[i].ftHandle.ToString(),
ID = DeviceList[i].ID.ToString(),
LocID = DeviceList[i].LocId.ToString(),
SerialNumber = DeviceList[i].SerialNumber.ToString(),
Type = MessageParse.TypeDevice(DeviceList[i].Type.ToString()),
};
return InfoDevice;
} // получение списка обнаруженных устройств
На месте GetNumberOfDevices происходит утечка памяти.
P.S. Микросхемы работают в режиме Sync FIFO.
Обновление информации. Когда работает одно устройство, то никаких проблем с утечками нет.