I found bug in FT900 - D2XX library. Problem is when I change number of interfaces. Problem is reproducible.
When I change number of interfaces in ft900_d2xx_default_config.inc it results in wrong number of interfaces in Win7 and finish as Win blue dead. Blue dead occur when I open device in device manager or use function FT_CreateDeviceInfoList in c++/qt application. Sometimes it occurs when I unconnected USB cable.
Detailed description:
Kit: MM900EV1B
FW: D2XX Example 1 without significant changes (added more info in debug output)
Driver: FTDI 2.12.28, (verified on 2.12.26)
Win7 64bit SP1
1.
I set (in D2XX Example 1) NumOfD2XXInterfaces to 1 and correct XORchecksum from function xorChecksum(const char str[], uint16_t length). Debug output show number of interfaces 1, but Win in device manager shows two "USB Serial Converter A" and "USB Serial Converter B". See in the image. "USB Serial Converter A" can be open normally and show all driver informations. But opening USB device "USB Serial Converter B" results in win blue dead.
2.
I set NumOfD2XXInterfaces to 2 and correct XORchecksum from function xorChecksum(const char str[], uint16_t length). Debug output show number of interfaces 2, but Win in device manager shows three "USB Serial Converter A", "USB Serial Converter B" and "USB Serial Converter C". "USB Serial Converter A" and "USB Serial Converter B" can be open normally and show all driver informations. But opening USB device "USB Serial Converter C" results in win blue dead.
3.
I set NumOfD2XXInterfaces to 3 and correct XORchecksum from function xorChecksum(const char str[], uint16_t length). Everything is fine.
4.
I set NumOfD2XXInterfaces to 0 and correct XORchecksum from function xorChecksum(const char str[], uint16_t length). D2XX_Init() gets error -5 as expected.
Note:
1. If the XORchecksum is incorrect, driver ignore NumOfD2XXInterfaces and shows always all 3 devices in win device manager