Bluetooth- und WM_DEVICECHANGE-Nachrichten
Bluetooth enthält bestimmte WM_DEVICECHANGE Nachrichten, mit denen Entwickler Nachrichten abrufen können, wenn Bluetooth-Geräte status Änderungen unterzogen werden. In diesem Thema wird beschrieben, wie Sie Bluetooth-spezifische WM_DEVICECHANGE-Nachrichten empfangen und Bluetooth-spezifische Nachrichten auflisten.
Empfangen von Bluetooth-spezifischen WM_DEVICECHANGE-Nachrichten
Um WM_DEVICECHANGE Nachrichten zu empfangen, muss zuerst ein Handle für das lokale Funkgerät geöffnet werden. Hierzu können Sie eine der folgenden Methoden verwenden:
- Verwenden Sie die SetupDiGetClassDevs-Funktion mit den folgenden Parametern: (GUID_BTHPORT_DEVICE_INTERFACE, ..., DIGCF_PRESENT | DIGCF_DEVICEINTERFACE) verwenden Sie dann die Funktionen SetupDiEnumDeviceInterfaces, SetupDiGetDeviceInterfaceDetail, CreateFile und SetupDiDestroyDeviceInfoList .
- Verwenden Sie die Funktionen BluetoothFindFirstRadio, BluetoothFindNextRadio und BluetoothFindRadioClose .
Wenn das Bluetooth-Funkhandle geöffnet ist, rufen Sie die RegisterDeviceNotification-Funktion auf, und registrieren Sie sich für Benachrichtigungen auf dem Handle, indem Sie DBT_DEVTYP_HANDLE als Gerätetyp verwenden. Bei der Registrierung werden die folgenden GUIDs gesendet, und der DEV_BROADCAST_HANDLE::dbch_data Member ist der zugeordnete Puffer.
Bluetooth-spezifische Nachrichten
In der folgenden Tabelle sind Bluetooth-spezifische WM_DEVICECHANGE-Nachrichten aufgeführt.
GUID | BUFFER | Beschreibung |
---|---|---|
GUID_BLUETOOTH_HCI_EVENT | BTH_HCI_EVENT_INFO | Diese Meldung wird gesendet, wenn ein Bluetooth-Remotegerät auf ACL-Ebene eine Verbindung herstellt oder die Verbindung trennt. |
GUID_BLUETOOTH_L2CAP_EVENT | BTH_L2CAP_EVENT_INFO | Diese Nachricht wird gesendet, wenn ein L2CAP-Kanal zwischen dem lokalen Funkgerät und einem Bluetooth-Remotegerät eingerichtet oder beendet wurde. Bei L2CAP-Kanälen, die Multiplexer sind, z. B. RFCOMM, wird diese Nachricht nur gesendet, wenn der zugrunde liegende Kanal eingerichtet oder beendet wird, nicht, wenn jeder multiplexte Kanal, z. B. ein RFCOMM-Kanal, eingerichtet oder beendet wird. |
GUID_BLUETOOTH_PIN_REQUEST | Nicht zutreffend | Diese Meldung sollte von der Anwendung ignoriert werden. Wenn die Anwendung PIN-Anforderungen empfangen muss, sollte die BluetoothRegisterForAuthentication-Funktion verwendet werden. |
GUID_BLUETOOTH_RADIO_IN_RANGE | BTH_RADIO_IN_RANGE | Diese Nachricht wird gesendet, wenn sich eines der folgenden Attribute eines Bluetooth-Remotegeräts geändert hat: Das Gerät wurde ermittelt, die Geräteklasse, der Name, der Verbindungsstatus oder der Zustand des geräts, der sich gespeichert hat. Diese Nachricht wird auch gesendet, wenn diese Attribute festgelegt oder gelöscht werden. |
GUID_BLUETOOTH_RADIO_OUT_OF_RANGE | BLUETOOTH_ADDRESS | Diese Nachricht wird gesendet, wenn nach Abschluss der letzten Anfrage kein zuvor ermitteltes Gerät gefunden wurde. Diese Nachricht wird nicht für gespeicherte Geräte gesendet. Die BTH_ADDRESS-Struktur ist die Adresse des Geräts, das nicht gefunden wurde. |
Zugehörige Themen