SetupDiEnumDeviceInterfaces不会返回我们的蓝牙设备的接口

时间:2017-07-18 19:23:55

标签: c++ visual-studio bluetooth windows-10 bluetooth-lowenergy

当我们的程序到达for循环时,SetupDiEnumDeviceInterfaces立即返回false,因此永远不会运行for循环。这告诉我们SetupDiEnumDeviceInterfaces没有找到我们的蓝牙设备的接口,即使我们通过应用程序蓝牙LE Explorer检查我们的设备是否与我们的计算机配对。我们已经检查过AGuid是我们设备的正确UUID。我们在Windows 10上使用带有BluetoothApis.h的Visual Studio Community 2017。我们如何让SetupDiEnumDeviceInterfaces返回我们设备的接口?

处理GetBLEHandle(GUID AGuid中的__)

{

HDEVINFO hDI;

SP_DEVICE_INTERFACE_DATA did;

SP_DEVINFO_DATA dd;

GUID BluetoothInterfaceGUID = AGuid;

HANDLE hComm = NULL;


hDI = SetupDiGetClassDevs(&BluetoothInterfaceGUID, NULL, NULL, DIGCF_DEVICEINTERFACE | DIGCF_PRESENT);

if (hDI == INVALID_HANDLE_VALUE) return NULL;

did.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);

dd.cbSize = sizeof(SP_DEVINFO_DATA);



for (DWORD i = 0; SetupDiEnumDeviceInterfaces(hDI, NULL, &BluetoothInterfaceGUID, i, &did); i++) {

1 个答案:

答案 0 :(得分:1)

很可能你有错误的GUID 我有同样的问题。

我指出了类的GUID而不是接口。 我使用 {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}

但我需要 的 {0850302A-B344-4fda-9BE9-90576B8D46F0}

试试这个:)