是时候解释一下我们最终做了什么……
2个加密狗为什么?
- 如果加密狗正在执行扫描,则传输速率会大大减慢
- 一个加密狗只能支持 7 个并发传输,如果你正在扫描,这个会下降到 6 个。如果你想同时发送、接收和扫描,一切都会变慢,非常糟糕,而且你的通道非常有限。
因此,我们的想法是运行一个加密狗连续扫描(以便设备尽快出现),另一个加密狗保留用于传输,并且由于它不扫描,传输既好又快。
我们使用的图书馆
经过大量测试和思考,我们最终选择了来自 BT 框架的 WirelessCommunicationLibrary。
它支持 Widcomm、Windows、BlueSoleil 和东芝堆栈。它支持我们需要的所有服务器端的东西,是一个得到很好支持的商业产品,可以完美运行而不会出错。
哪个栈?
嗯,这是一个复杂的。没有一个堆栈同时支持 2 个加密狗。所以唯一的选择是在一个堆栈上运行一个加密狗,在另一个堆栈上运行另一个加密狗。这就是 WCL 库派上用场的地方!
Microsoft - 如果在扫描期间发生错误,整个堆栈崩溃是很常见的。这并不理想!您必须关闭并重新启动无线电设备,这需要时间并且容易出错。但是......微软堆栈确实很好地处理文件传输。
Widcomm - Widcomm 堆栈不适用于文件传输。Widcomm 安装了一些讨厌的小应用程序,它们一直试图从您的应用程序中获取控制权。您可以杀死 bttray.exe,这会有所帮助,但在传输过程中您仍然会从堆栈中获得一些奇怪的行为。我确信这可以解决,但由于 Windows 无法进行扫描,因此使用 Widcomm 进行扫描是有意义的。
所以...我们将一个加密狗设置为 Widcomm 以反复扫描,一个加密狗设置为 Microsoft 设置为仅处理文件传输(输入和输出)。
让 2 个加密狗工作
我们选择使用 2 个相同的加密狗,我们可以批量订购它们,并将它们全部储存起来,减少混乱。每个出厂的设备只需要 2 个蓝牙适配器,简单。
唯一的问题是,这些是 widcomm 加密狗,我们需要 Windows 堆栈上的一个加密狗。Windows 不会将它们识别为 Windows 加密狗,因此不会将它们注册到 Windows 堆栈。所以...这是您可以对 bt.inf 文件进行的破解,以使其识别 Windows 的加密狗。然后,您需要切换其中一个加密狗的驱动程序以在 Windows 驱动程序上运行,您就完成了。
概括
所以......我们一直都有一个加密狗扫描,一个处理传输,每个都在单独的堆栈上,这一切都很好。这是我发现让 2 个加密狗在 Windows 上顺利运行的唯一方法。如果您有更好的建议,请发表!