藍牙和WM_DEVICECHANGE訊息

藍牙 包含特定WM_DEVICECHANGE訊息,可讓開發人員在 藍牙 裝置進行狀態變更時取得訊息。 本主題描述如何接收 藍牙 特定WM_DEVICECHANGE訊息,並列出 藍牙 特定訊息。

接收特定 藍牙 WM_DEVICECHANGE訊息

若要接收 WM_DEVICECHANGE 訊息,必須先開啟本機無線電的句柄。 若要執行此工作,請使用下列的其中一個方法:

開啟 藍牙 無線電句柄時,呼叫 RegisterDeviceNotification 函式,並使用 DBT_DEVTYP_HANDLE 作為 devicetype 註冊句柄上的通知。 註冊時,會傳送下列 GUID,且 DEV_BROADCAST_HANDLE::dbch_data 成員是相關聯的緩衝區。

藍牙 特定訊息

下表列出 藍牙 特定WM_DEVICECHANGE訊息。

GUID 緩衝區 描述
GUID_BLUETOOTH_HCI_EVENT BTH_HCI_EVENT_INFO 當遠端 藍牙 裝置在 ACL 層級連線或中斷連線時,就會傳送此訊息。
GUID_BLUETOOTH_L2CAP_EVENT BTH_L2CAP_EVENT_INFO 建立或終止本機無線電與遠端 藍牙 裝置之間的 L2CAP 通道時,會傳送此訊息。 對於多任務器,例如 RFCOMM 的 L2CAP 通道,此訊息只會在建立基礎通道時傳送,而不是建立或終止每個多任務通道,例如 RFCOMM 通道時。
GUID_BLUETOOTH_PIN_REQUEST 不適用。 應用程式應該忽略此訊息。 如果應用程式必須接收 PIN 要求,則應該使用 藍牙 RegisterForAuthentication 函式。
GUID_BLUETOOTH_RADIO_IN_RANGE BTH_RADIO_IN_RANGE 當遠端 藍牙 裝置的任何屬性變更時,就會傳送此訊息:裝置已探索、裝置類別、名稱、連線狀態或裝置記住狀態。 設定或清除這些屬性時,也會傳送此訊息。
GUID_BLUETOOTH_RADIO_OUT_OF_RANGE BLUETOOTH_ADDRESS 在上次查詢完成之後,找不到先前探索到的裝置時,就會傳送此訊息。 此訊息不會針對記住的裝置傳送。 BTH_ADDRESS結構是找不到之裝置的位址。

 

藍牙 FindFirstRadio

藍牙 FindNextRadio

藍牙 FindRadioClose

RegisterDeviceNotification

SetupDiDestroyDeviceInfoList

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs

BLUETOOTH_ADDRESS

BTH_HCI_EVENT_INFO

BTH_L2CAP_EVENT_INFO

BTH_RADIO_IN_RANGE

DEV_BROADCAST_HANDLE

WM_DEVICECHANGE