共用方式為


安裝藍牙裝置

重要

本主題適用於程式設計人員。 如果您是客戶遇到藍牙裝置安裝問題,請參閱 在 Windows 中配對藍牙裝置

藍牙配置檔驅動程式有兩種安裝類型:

  • 遠端裝置公告其服務和計算機與其連線之遠端裝置的用戶端安裝。 範例包括:滑鼠、鍵盤和印表機。
  • 計算機公告服務和遠端裝置可連線到電腦的伺服器端安裝,以使用這些服務。 例如,廠商可以撰寫伺服器端安裝,讓行動裝置列印到連接至計算機的印表機。

這兩種安裝類型需要不同的安裝程式。

安裝用戶端配置檔驅動程式

想要使用已啟用藍牙裝置的使用者會在計算機範圍內帶入裝置,並使用用戶端配置檔驅動程式的下列安裝順序,起始從電腦到遠端裝置的連線。

  1. 選取 [在 控制台新增藍牙裝置],以尋找計算機範圍內的所有裝置。
  2. 選取要配對的裝置。
  3. 將裝置與本機無線電配對,這可能或可能不涉及 PIN 交換。
  4. 本機無線電會發出 SDP 查詢,以識別遠端裝置上支援的服務。
  5. [找到的新硬體精靈] 會在本機硬碟和 Windows Update 上搜尋適當的驅動程式。
  6. 如果 [找到新硬體精靈 ] 找不到適當的裝置驅動程式,則會提示使用者插入配置檔驅動程式安裝媒體,其中包含配置檔驅動程式的裝置安裝資訊檔案, (INF 檔案) 。

安裝伺服器端配置檔驅動程式

藍牙驅動程式堆疊支援藍牙 SIG 所定義的服務 GUID,以及藍牙 SIG 未定義的自定義 GUID。

注意

Microsoft Windows SDK 所提供的 guidgen.exe工具可用來建立自定義 GUID。

使用者模式安裝應用程式必須寫入,才能公開遠端藍牙裝置可以使用的計算機功能。

安裝應用程式必須與藍牙驅動程式堆棧通訊,才能建立要公開之功能的服務 GUID。 廠商會在應用程式及其裝置安裝 INF 檔案中指定服務 GUID。

安裝應用程式必須呼叫使用者模式 API BluetoothSetLocalServiceInfo。 應用程式必須先具有SE_LOAD_DRIVER_NAME安全性許可權,應用程式才能呼叫此 API。 下列程式代碼範例示範如何取得此許可權。 請注意 ,此範例不會示範錯誤處理。

HANDLE procToken;
LUID luid;
TOKEN_PRIVILEGES tp;

OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &procToken);

LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, &luid);

Tp.PrivilegeCount = 1;
Tp.privileges[0].Luid = luid;
Tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(procToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES) NULL, (PDWORD)NULL)

配置檔驅動程式 INF 檔案

配置檔驅動程式的 INF 檔案包含用戶端安裝藍牙裝置的相關信息。 針對伺服器端安裝,INF 檔案會指定裝置識別碼,該標識符會對應至安裝應用程式所建立的服務 GUID。 所有藍牙裝置都是 藍牙 類別的成員。 藍牙類別安裝程式 (Bthci.dll) 可協助安裝配置檔驅動程式。

如需建立和散發 INF 檔案和安裝驅動程式的詳細資訊,請參閱 建立 INF 檔案INF 檔案區段和指示詞

隨插即用識別碼

藍牙驅動程式堆疊會根據下列範本產生硬體識別碼:

  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn
  • BTHENUM\{ ServiceGUID}_VID& nnnnnnnn_PID& nnnn
  • BTHENUM\{ ServiceGUID}_LOCALMFG& nnnn

藍牙驅動程式堆疊會根據下列範本產生相容的標識碼:

  • BTHENUM\{ ServiceGUID}

ServiceGUID 是擴充至 128 位 GUID 的 16 位 GUID,如藍牙規格所定義。 例如,{00001124-0000-1000-8000-00805F9B34FB} 會對應至 HID 裝置。

  • VID& 後面的八位數會對應至廠商標識碼。
  • PID 後面的四個數位&對應至產品標識碼。
  • LOCALMFG 後面的四位數&對應到本機藍牙無線電製造商。
  • VID/PID 和 LOCALMFG 標籤彼此獨立。

最通用的裝置識別碼本身是 ServiceGUID 。 例如:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}

藍牙驅動程式堆疊可以限制為載入配置檔驅動程式和軟體,只在遠端裝置的特定版本上執行,方法是在遠端裝置和 INF 檔案中使用 隨插即用 標識碼。 只有在裝置發佈堆疊可以使用 SDP 偵測到的 隨插即用 標識符時,藍牙驅動程式堆疊才會產生 VID/PID 配對。 例如:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_VID& nnnnnnnn_PID& nnnn

藍牙驅動程式堆疊可以限制為載入配置檔驅動程式和軟體,只在特定本機藍牙無線電上執行,方法是在 INF 檔案的裝置識別碼中指定 LOCALMFG 捲標。 例如:

BTHENUM\{00001124-0000-1000-8000-00805F9B34FB}_LOCALMFG& nnnn