(这是一个crosspost from the MSDN forums,因为很长一段时间没有任何回复,我想我会在这里得到更好的答案。)
我有一个包含自定义GATT服务的BLE设备,我无法修改固件。我想从该服务中侦听GATT特征事件,并使Windows将它们作为HID报告使用,以使Windows将其识别为另一个设备。我该怎么做呢?
我进行了一些研究,并找到了以下信息:
BthLeEnum
我的问题是,这里需要什么方法才能创建此驱动程序?
GATT配置文件驱动程序是否仍然允许在Windows 10上使用,因为它似乎是not allowed to create filter drivers for BthLeEnum
?
我真的很感激Alain花时间回答这个问题,因此我将答案标记为问题的答案;但对我来说,这个问题还没有完全回答。看到问题已经超过10票,我认为应该得到更广泛的答案。可以改进/添加的要点是:
我认为Alain推荐使用UMFF HID微型驱动器而不是VHF,因为VHF需要编写KMDF驱动程序。 UMDF具有更容易调试(可以在本地PC上调试),安全性(和签名)限制更少的优点,并且当驱动程序中存在错误时没有错误检查机器的风险。
为了能够创建一个注入RadialController事件的客户端应用程序(而不是必须编写一个对私人开发人员来说是一个非常高的障碍的驱动程序),我发布了request for it on Feedback Hub。如果您认为值得支持,请考虑投票。
答案 0 :(得分:1)
最好的方法是创建一个UMDF HID驱动程序(https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/creating-umdf-hid-minidrivers),该驱动程序安装在为设备自定义服务创建的bthleenum设备节点上,并使用新的蓝牙LE UWP apis (https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.genericattributeprofile)。
关于非商店应用程序使用UWP Apis存在一些歧义,但这是不正确的。这些Apis可用于几乎所有条件。如果您需要设置项目的帮助,这里有一个C ++ / UWP示例,可以帮助您入门。
我希望这有帮助! 阿兰
答案 1 :(得分:0)
关于WDK 8.0中的BLE GATT配置文件驱动程序示例,您可以按照here
步骤使用VS2017 / WDK10进行编译。我能够编译WpdHealthHeartRateService。
答案 2 :(得分:0)
我将其作为概念验证工作,但并不可靠。在我有时间进行投资时,开发Windows驱动程序的学习曲线实在太陡了。
此外,作为私人,我永远无法将其分发给其他人,因为驾驶员需要经历签名和发布过程。
为了知识交流: