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 и выведя их пути. Задача решена.

Другие вопросы по тегам