我正在开发一个使用D2XX drivers中FTDI chip的项目。
我们正在提供ftd2xx.dll文件作为我们的应用程序的一部分。据我所知,其他文件(例如ftdibus.sys)安装在应用程序运行的系统上(至少对于Windows)。 Linux也是我们的目标,但是现在让我们忽略它。
我的问题是关于这些文件之间的关系?例如,如果我升级随应用程序提供的ftd2xx.dll文件,用户是否必须安装最新的驱动程序?如果他们不这样做怎么办?
除了特定的FTDI驱动程序之外,此领域的任何一般信息来源也非常受欢迎。
答案 0 :(得分:0)
我曾经在一个使用FTDI的D2XX库的项目上工作。
ftd2xx.dll和ftdibus.sys的确切版本之间没有紧密耦合。我相信ftd2xx.dll和内核模式驱动程序之间的接口在基本功能级别上是独立于版本的(至少从版本2.04.06开始)。 DLL中甚至还有函数来分别查询DLL和驱动程序版本。
因此,它们可能会“不同步”。即ftd2xx.dll可能是比ftdibys.sys更新版本的版本之一,反之亦然。这不是问题。
您当然可以完全控制ftd2xx.dll版本,但是如何安装驱动程序包?它是作为应用程序的一部分安装的,还是依赖于用户从其他来源获取驱动程序?如果您的应用程序有安装程序,则可以选择在安装中包含FTDI的驱动程序包。因此,您将知道哪个驱动程序版本可用。
如果PC上有其他设备使用FTDI的芯片,那么真正棘手的问题(以及令我头痛的是什么)。如果为此类设备提供包含较旧版本驱动程序的介质,并且用户选择安装此驱动程序,则只会覆盖驱动程序的任何现有版本(例如,安装程序提供的版本)。这是回归的潜在原因,因为FTDI多年来解决了驱动程序中的许多错误。
如果我是你,我会在运行时检查驱动程序版本,并将其与已知可用的版本(您测试应用程序的版本)进行比较。如果驱动程序较旧,建议用户升级它。否则我会认为它是兼容的。