共用方式為


安裝藍牙裝置

重要

本主題適用於程式設計人員。 如果您是遇到藍牙裝置安裝問題的客戶,請參閱 在 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。 在應用程式可以呼叫此 API 之前,應用程式必須具有SE_LOAD_DRIVER_NAME安全性許可權。 下列程式代碼範例示範如何取得此許可權。 請注意 ,此範例不會示範錯誤處理。

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& nnnnnn_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