WinAPI - CreateFile завершается неудачно, неверный путь для службы Bluetooth LE
У меня есть небольшая программа, которая перечисляет устройства BLE и их услуги. Используя SetupDiGetDeviceProperty, я смог получить дочерние сервисы этих устройств BLE или, точнее, их пути к экземплярам устройств, как здесь:
BTHLEDevice {00001801-0000-1000-8000-00805f9b34fb} _dbc664e1783f \ 9 & 1b8d685b & с &0008
Теперь, как мне использовать этот путь с CreateFile? Я попытался поместить "\\?\" В начале, но это не работает, CreateFile завершается ошибкой и GetLastError возвращает 3, что указывает на то, что указанный путь не существует.
HANDLE handle = CreateFile(L"\\\\?\\BTHLEDevice{00001801-0000-1000-8000-00805f9b34fb}_dbc664e1783f\\9&1b8d685b&c&0008",
GENERIC_WRITE | GENERIC_READ,
FILE_SHARE_WRITE | FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
NULL,
NULL);
if (handle == INVALID_HANDLE_VALUE) printf("Error: 0x%X\n", GetLastError());
1 ответ
Решение
Оказывается, пути, указанные DEVPKEY_Device_Children, не могут быть использованы с CreateFile. Я смог проверить это, перечислив все интерфейсы по GUID и выведя их пути. Задача решена.