Я пишу программное обеспечение, которое автоматически подключает устройство Bluetooth с помощью Windows Bluetooth API . При подключении Windows автоматически начинает установку драйвера устройства Bluetooth HID, как и ожидалось:
Это занимает около 10-15 секунд, после чего Windows отображает известное сообщение «готов к использованию»:
Проблема в том, что BluetoothSetServiceState()
возвращается, как только начинается установка драйвера , а не когда устройство фактически готово к использованию. Это вызывает некоторые проблемы для моего кода, потому что он вызывает отдельную библиотеку для связи с устройством, как только он «подключен». Первые несколько вызовов терпят неудачу, потому что драйверы еще не закончили установку, и выполнение этих попыток подключения, по-видимому, мешает установке драйвера, потому что, если я пытаюсь использовать библиотеку связи до завершения установки драйвера, Windows захочет перезагрузиться, прежде чем устройство сможет использоваться.
То, что я ищу, - это способ перехватить это событие «готов к использованию», когда установка драйвера фактически завершена, поэтому я не выполняю преждевременно вызовы из моей библиотеки связи. Есть ли какой-нибудь вызов Windows API, который я могу использовать для регистрации обратного вызова функции или непосредственного опроса состояния установки драйвера?
Я пишу это на ванильном C / C ++, нет .NET. Спасибо за вашу помощь!