WinAPI – CreateFile失败,蓝牙LE服务无效的path

我有一个列举BLE设备及其服务的小程序。 使用SetupDiGetDeviceProperty我能够获得这些BLE设备的子服务,或者更确切地说是他们的设备实例path,如下所示:

BTHLEDevice {00001801-0000-1000-8000-00805f9b34fb} _dbc664e1783f \ 9 1b8d685b&C&0008

现在,我如何使用CreateFile这个path? 我试着把“\\?\”放在开头但是不起作用, CreateFile失败, GetLastError返回3,表示指定的path不存在。

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()); 

原来DEVPKEY_Device_Children给出的路径不能用于CreateFile。 我能够通过枚举所有GUID的接口并输出路径来验证。 问题解决了。