共用方式為


藍牙驅動程式堆疊

藍牙驅動程式堆疊包含 Microsoft 針對藍牙通訊協定所提供的支援核心部分。 透過此堆疊,已啟用藍牙的裝置可以彼此找到並建立連線。 透過這類連線,裝置可以交換資料,並透過各種應用程式彼此互動。

下圖顯示藍牙驅動程式堆疊內的模組,以及 Windows Vista 和更新版本中未包含的可能自定義使用者模式和內核模式驅動程式。 這些自定義驅動程式稱為配置檔驅動程式。

顯示藍牙驅動程式堆疊架構的圖表。

  • 使用者模式

    • 使用者模式應用程式 - 透過已發佈 API 存取藍牙驅動程式堆疊的使用者模式應用程式。 如需詳細資訊,請參閱 Windows SDK 檔中 關於藍牙

      使用者模式應用程式應該連結到 BthProps.lib,而不是 IrProps.lib,才能使用 API,例如 BluetoothSetLocalServiceInfo

  • 配置檔驅動程式的範例

    • WAP 核心模式驅動程式 - 無線應用程式通訊協定 (WAP) 元件是設定檔驅動程式的範例,該驅動程式會在 Windows 網路堆棧與 BthPort 之間通訊、存取 L2CAP 介面,以及選擇性地存取 L2CAP 中包含的 SDP 介面。 其他可能的配置檔包括進階音頻散發配置檔 (A2DP) 、A/V 遠端控制配置檔 (AVRCP) 、一般 A/V 散發配置檔 (GAVDP) ,以及常見的 ISDN 存取 (CIP) 配置檔。

    • 音訊核心模式驅動程式 - 配置檔驅動程式的範例,該驅動程式會在Windows 音訊堆疊與 BthPort 之間通訊,並存取後者所包含的 SCO 介面。 可能的配置檔包括 HFP) (、頭戴式裝置設定檔 (HSP) 、無電話電話語音配置檔 (CTP) ,以及 () 的通訊配置檔。 此配置檔驅動程序隨附於 Windows,從 Windows 8 開始。

    • 藍牙 LE 活動速率監視器配置檔 - 藍牙 LE 配置檔驅動程式的範例,與藍牙低能源 (LE) API 通訊。

  • 藍牙驅動程式堆疊元件

    • IrProps- 元件,用於針對第一版藍牙驅動程式堆疊所建立之配置文件驅動程式的回溯相容性。 IrProps 僅供回溯相容性使用。 使用 BthProps 元件進行新的開發。

    • BthProps - 元件,包含藍牙使用者介面的實作,以及使用者模式應用程式存取之藍牙 API 的實作。 此元件會透過 RPC) (遠端過程調用,將查詢傳送至 BthServ。 此外,BthProps 會透過私人 IOCTL 與 BthPort 執行針腳交換。 請注意,BthProps 會在任何已啟用藍牙的無線電系統上執行。

    • BthServ- 負責將查詢數據快取和轉送至 Bthport 的服務。

    • BthCi - 藍牙類別安裝程式。

    • WshBth - 藍牙 Windows 套接字協助程式元件。 WshBth 是由 Windows 套接字層呼叫,以執行套接字作業。 WshBth 主要透過 TDI 介面呼叫 RfComm。 WshBth 也會呼叫 BthServ 來執行遠端裝置查詢,以及呼叫 BthPort 來執行本機無線電查詢。

    • FSquirt - 不可擴充的物件 Exchange (OBEX) 元件,可讓使用者透過開啟的藍牙連線傳送和接收檔案。 OBEX 會透過使用 WshBth 元件的 RFCOMM 與遠端裝置通訊。

    • BthPrint - 實作硬式複製纜線取代配置檔 (HCRP) 的元件。 此元件可讓印表系統將數據傳送至已啟用藍牙的印表機,並從啟用藍牙的印表機接收數據。 BthPrint 會與 BthPort 中的 SDP 介面通訊,以查詢遠端印表機和 BthPort 中的 L2CAP 介面來傳送和接收數據。

    • HidBth - 實作 Human Interface Device (HID) 配置檔的元件。 HidBth 也會與 BthPort 中的 L2CAP 和 SDP 介面通訊。 HidBth 會連線到 HID 堆疊,就像 USB HID 模組一樣。

    • BthPan - 實作個人局域網路 (PAN) 配置檔的元件,可在開啟的藍牙連線之間提供 TCP 連線。 在 Windows Vista 和 Windows XP 中,BthPan 僅支援連出連線。 BthPan 也是 BthPort 元件的用戶端,同時使用 L2CAP 和 SDP 介面。

    • RfComm- 實作藍牙序列纜線模擬通訊協定的元件。 RfComm 也會使用 BthPort 中找到的 L2CAP 和 SDP 介面。 RfComm 的上邊緣會公開 TDI 介面,讓此元件顯示為網路傳輸。 這就是WshBth 連線到藍牙的方式,以從使用者模式 API 傳送和接收數據。

      使用者模式應用程式可以使用 Windows SDK 中所述的 Winsock 介面來存取 RfComm。

    • BthModem - 實作虛擬 COM 連接埠和撥號網路 (DUN) 的元件。 BthModem 會透過 TDI 介面將所有 I/O 和控制作業導向 RfComm。 BthModem 的上邊緣會與 Serial.sys 通訊,以提供無線 COM 埠的外觀。

    • BthEnum - 藍牙總線驅動程式。 BthEnum 會與 隨插即用 (PnP) 管理員通訊,以建立和終結用來啟用藍牙服務的裝置物件。 BthEnum 會為每個連線遠端裝置所支援的服務建立 PDO。 例如,當用戶連線已啟用藍牙的滑鼠時,Windows 會發現滑鼠支援藍牙 HID 服務,併為 HID 服務建立 PDO,讓 PnP 管理員載入 HidBth。

      注意

      BthEnum 不會為在 Bth.inf 中指定的 UnsupportedServices 登錄機碼中顯示的服務建立 PDO。

    • BthLEEnum - 藍牙低能源 (LE) 總線驅動程式。 BthLEEnum 會實作 ATT 通訊協定和 GATT 配置檔。 它也負責建立 PDO 來代表遠端裝置及其主要服務。

    • BthPort - 由 BthUsb 迷你埠載入的迷你驅動程式。 BthPort 提供四個元件:

      1. HCI 元件會透過藍牙規格中定義的 HCI (HCI 介面) ,與已啟用藍牙的本機藍牙無線電通訊。 由於所有已啟用藍牙的無線電都會實作 HCI 規格,因此 BthPort 能夠與任何已啟用藍牙的無線電通訊,而不論製造商或型號為何。
      2. SCO 元件會實作同步 Connection-Oriented (SCO) 通訊協定。 此通訊協議支援建立遠端裝置的點對點連線。 SCO 用戶端會 藉由建置及傳送 藍牙要求區塊來與 SCO 介面通訊, (BR) 。
      3. L2CAP 會實作藍牙邏輯連結控制和調適通訊協定。 此通訊協議支援建立遠端裝置的無遺失信道。 L2CAP 用戶端會建置和傳送藍牙要求區塊,以與 L2CAP 介面通訊, (BR) 。
      4. SDP 會實作藍牙服務探索通訊協定。
    • BthUsb.sys- 從 BthPort 擷取總線介面的迷你埠。