(这是一个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。如果您认为值得支持,请考虑投票。
最好的方法是创建一个UMDF HID驱动程序(https://docs.microsoft.com/en-us/windows-hardware/drivers/wdf/creating-umdf-hid-minidrivers),该驱动程序安装在为设备的自定义服务创建的bthleenum设备节点上,并使用新的蓝牙LE UWP api(https://docs.microsoft.com/en-us/uwp/api/windows.devices.bluetooth.genericattributeprofile)。
关于非商店应用程序使用UWP Apis存在一些含糊之处,但这是不正确的。这些Apis可用于几乎所有条件。如果您需要设置项目的帮助,这里有一个C ++ / UWP示例,可以帮助您入门。
我希望这有帮助!阿兰
关于WDK 8.0中的BLE GATT Profile驱动程序示例,您可以按照here的步骤使用VS2017 / WDK10进行编译
我能够编译WpdHealthHeartRateService。