本節提供周邊裝置參與「點接和設定」和「點接並重新連線」使用案例的設計準則和需求。
備註
本主題中所述的配對實作目前在 Windows 8.1 中受支援,僅適用於配對至印表機裝置。
Windows 10 和更新版本支援 NFC,以透過 Wi-Fi 聯盟的 Wi-Fi P2P 電信業者組態記錄 Wi-Fi 直接靜態連線切換。 如需詳細資訊,請參閱 Wi-Fi 聯盟。
外圍設備 Wi-Fi 直接裝置配對
在點擊過程中,NFP 會從連接裝置接收配對資訊。 NFP 會將配對資訊傳遞至 Windows。 Wi-Fi Direct 裝置遵循 Wi-Fi 聯盟輸出Of-Band (OOB) 配對程式和 NFC 論壇建議。 Windows 依賴專屬配對訊息,如下所述。
Windows 會提示使用者同意,如果給予同意,Windows 會嘗試依序連線到每個位址,直到其中一個位址成功為止。 電腦中的 NFP 提供者與連線裝置之間沒有進一步的互動。
以 NFC 為例,單向安裝是通過將配對信息存儲在靜態或被動 NFC 標籤中來完成的(也可以使用靜態模擬模式下的主動 NFC 標籤)。 Windows 會訂閱此配對資訊。 電腦上已啟用 NFC 的 NFP 提供者會從標籤接收連線資訊,並將此資訊傳遞至 Windows 作為訂閱者。 收到連線資訊之後,Windows 會使用裝置類別特定的技術來執行裝置頻內的實際安裝。
互通性需求
若要確保 NFP 提供者之間的互通性,配對資訊應該封裝為提供者特定的訊息格式。
如本文檔其他部分所述,除了具有 NFC 功能的 NFP 供應商之外,對於鄰近技術沒有特定要求。
Windows 需要已啟用 NFC 的 NFP 提供者支援 NFC 論壇所定義的特定機制,以傳達單向配對的 Wi-Fi Direct OOB 配對資訊。 NDEF 訊息包含第一個記錄,其 TNF 欄位值為 0x01,且 TYPE 欄位等於 “Hs” ,以及指向 Wi-Fi 直接承運人配置記錄的替代承運人記錄。 在此方法中,只會使用 NDEF 記錄的 PAYLOAD。
使用 NFC 進行 Wi-Fi Direct 的單向配對
本節提供 NFC、Wi-Fi Direct 和 Windows 如何協同運作以支援印表機等 Wi-Fi Direct 裝置的單向無線配對的詳細資訊。
NFP 提供者的參考資料
Wi-Fi 直接配對是使用 NFC 論壇標準化的連線切換選擇訊息類型來完成的。 下圖概述了如何將連線切換選擇訊息應用於 Wi-Fi 直接裝置配對,特別是NDEF記錄3和4。 「移交選取」訊息描述一或多個「ac」或「替代承運人」記錄。 這些記錄依序遵循「移交選取」記錄,且每個記錄都有明確定義的類型。 最後,訊息會包含 Microsoft 定義的裝置配對記錄,可為 Windows 提供如何處理配對作業的相關資訊。
Wi-Fi 直接裝置配對訊息
在下列範例使用案例中,NFC 類型 2 標籤會用作說明性範例。 如果需要使用不同的 NFC 標籤類型,則必須根據該標籤定義正確封裝 NDEF 訊息。
| 領域 | 價值觀 | 說明 |
|---|---|---|
| TNF | 0x02 | 後面的 Type 欄位的格式。 媒體類型,如 RFC 2046 中定義。 |
| 類型 | '應用程序/vnd.ms-windows.wfd.oob' | 我們為此案例定義的新類型字串。 |
| OOB 資料的大小 | 詞 | 支援高達 64 KB 的 OOB 資料。 |
| Wi-Fi 直接 OOB(頻外)資料 | <由上一個欄位所指定大小的 blob> | Wi-Fi 直接 OOB 資料,定義如下。 |
Wi-Fi 直接 OOB 格式
下表描述 WiFi Direct OOB 數據的格式。 OOB 單向資料可由任何單向 P2P OOB 裝置傳輸。
| 屬性 | 屬性標識碼 | 必要/選擇性 | 備註 |
|---|---|---|---|
| OOB 標頭 請參閱 OOB 標頭屬性格式資料表。 |
N/A | 為必填項目 | OOB 標頭屬性應該存在於 P2P OOB 資料 Blob 中,並將其 OOB 類型值設定為「OOB 單向布建資料」。 |
| OOB 裝置資訊 請參閱 OOB 裝置資訊屬性格式資料表。 |
1 | 為必填項目 | 此屬性必須存在。 它提供了有關此 P2P 設備的信息。 |
| OOB 佈建資訊 | 2 | 為必填項目 | 此屬性必須存在。 它提供此P2P裝置預期使用的調配資訊。 |
| OOB 設定逾時 | 5 | 為必填項目 | 此屬性必須存在。 它提供有關此 P2P 裝置將等待 Wi-Fi Direct 回應的時間的資訊。 |
OOB 標頭屬性格式
| 欄位名稱 | 大小(八位元組) | 價值觀 | 說明 |
|---|---|---|---|
| 總資料長度 | 2 | 變數 | 整個 OOB 資料 Blob 的長度 (包括標頭)。 |
| 長度 | 2 | 變數 | OOB 標頭中下列欄位的長度。 |
| 版本 | 1 | 0x10 | 識別此 P2P OOB 記錄版本的值。 |
| OOB 類型 | 1 | 變數 | 識別 OOB 交易類型的數值。 特定值是在 OOB 交易類型 資料表中定義。 |
| OUI | 0 或 3 | 變數 | 廠商特定的組織唯一識別碼 (OUI)。 這是選用值。 只有在 [OOB 類型] 為 [廠商特定] 時才必須存在。 |
| OUI 類型 | 0 或 1 | 變數 | 供應商特定類型 這是選用值。 只有在 [OOB 類型] 為 [廠商特定] 時才必須存在。 |
OOB 交易類型
| OOB 類型(十六進位) | 說明 |
|---|---|
| 0x00 | OOB 單向佈建資料 |
| 0x01 | OOB 配置監聽程式資料 |
| 0x02 | OOB 佈建連接器資料 |
| 0x03 | OOB 重新調用資料 |
| 0x04-0xDC | 已保留 |
| 0xDD | 廠商特定 |
| 0xDE-0xFF | 已保留 |
OOB 裝置資訊屬性格式
| 欄位名稱 | 大小(八位元組) | 價值觀 | 說明 |
|---|---|---|---|
| 屬性標識碼 | 1 | 1 | 識別 P2P OOB 屬性的類型。 特定值定義在 P2P OOB 屬性資料表中。 |
| 長度 | 2 | 變數 | 屬性中下列欄位的長度。 |
| P2P 裝置位址 | 6 | 如 P2P 規範中所定義。 | 用於唯一識別 P2P 裝置的標識符。 |
| 配置方法 | 2 | 如 P2P 規範中所定義。 | 此裝置支援的 WSC 方法。 注意: 「Config Methods」欄位內的位元組順序應為大端序。 |
| 主要裝置類型 | 8 | 如 P2P 規範中所定義。 | P2P 裝置的主要裝置類型。 僅包含 WSC 主要設備類型屬性的 [資料] 部分(不包括 [屬性識別碼] 和 [長度] 欄位)。 注意: [主要設備類型] 欄位內的位元組順序應該是大端。 |
| 裝置功能點陣圖 | 1 | 如 P2P 規範中所定義。 | 一組參數,表示 P2P 裝置的功能。 |
| 裝置名稱 | 變數 | 如 P2P 規範中所定義。 | P2P 裝置的易記名稱。 包含整個 WSC 裝置名稱屬性 TLV 格式。 注意: 裝置名稱欄位內的位元組順序應該是大端。 |
P2P OOB 屬性
| OOB 類型(十六進位) | 說明 |
|---|---|
| 0x00 | OOB 狀態 |
| 0x01 | OOB 裝置資訊 |
| 0x02 | OOB 佈建資訊 |
| 0x03 | OOB 群組識別碼 |
| 0x04 | OOB 接聽頻道 |
| 0x05 | OOB 設定逾時 |
| 0x06-0xDC | 已保留 |
| 0xDD | 廠商特定屬性 |
| 0xDE-0xFF | 已保留 |
OOB 佈建資訊屬性格式
| 欄位名稱 | 大小(位元組) | 價值觀 | 說明 |
|---|---|---|---|
| 屬性標識碼 | 1 | 1 | 識別 P2P OOB 屬性的類型。 特定值在 P2P OOB屬性 表中定義。 |
| 長度 | 2 | 變數 | 屬性中下列欄位的長度。 |
| 佈建設定點陣圖 | 1 | 變數 | 一組佈建設定的選項,如 佈建設定 資料表中所定義。 |
| 選取的組態方法 | 2 | 如 P2P 規範中所定義。 | 此P2P裝置選擇用於調配的WSC方法。 |
| 引腳長度 | 1 | 0 - 8 | 下列 PIN 資料欄位中的位元組數。 此欄位設定為 0 表示沒有其他 PIN 資料。 |
| 釘選資料 | 變數 | n | 此欄位為選擇性欄位。 只有在PIN長度欄位不是0時,才會出現此欄位,並且包含代表用於配置的PIN的八位元組陣列。 |
佈建設定
| 位元 | 資訊 | 註釋 |
|---|---|---|
| 0 | 建立新群組 | 如果此佈建資訊用於與目標P2P裝置組成新組,則建立新組位設定為1。 否則,此佈建資訊適用於加入現有群組。 |
| 1 | 強制執行群組類型設定 | 如果必須強制執行「所需的群組型別位」設定,「強制執行群組型別設定位元」會設定為 1;否則,「所需的群組型別位」只是偏好設定。 |
| 2 | 所需的群組類型 | 如果所需的群組類型是暫時性的,則所需的群組類型位應設定為 0,如果所需的群組類型是持續性的,則應設定為 1。 |
| 3 - 7 | 已保留 |
OOB 設定逾時屬性格式
| 欄位名稱 | 大小(八位元組) | 價值觀 | 說明 |
|---|---|---|---|
| 屬性標識碼 | 1 | 5 | 識別 P2P OOB 屬性的類型。 特定值在 P2P OOB屬性 表中定義。 |
| 長度 | 2 | 1 | 屬性中下列欄位的長度。 |
| 接聽程式設定逾時 | 1 | 0 - 255 | 此 P2P 裝置在 OOB 資料傳輸之後等候 Wi-Fi 直接通訊所花費的時間量,以 100 毫秒為單位。 (最長 25.5 秒)。 |
Windows 裝置配對記錄
Windows 裝置配對記錄遵循 NDEF 規格。 它為 Windows 提供了如何處理連線交接選取訊息的額外資訊。 必須根據 NDEF 規格指定 TNF 和 類型 欄位。 下列其他欄位將依序列在 NDEF 記錄的 [承載] 欄位中。
| 欄位名稱 | 價值觀 | 長度值 | 說明 |
|---|---|---|---|
| TNF | 0x02 | 3位元 | 後面的 Type 欄位的格式。 媒體類型,如 RFC 2046 中定義。 |
| 類型 | application/vnd.ms-windows.devicepairing | 0x28位元組 | 我們為此案例定義的新類型字串。 |
| 主要版本 | 0x1 | 2 個位元組 | 主要版本必須是0x1。 |
| 次要版本 | 0x0 | 2 個位元組 | 次要版本必須是0x0。 |
| 標誌 | 0x0或0x01 | 4 個位元組 | 設定為0x0以嘗試所有傳輸。 設定為 0x1 以依序嘗試安裝,並在首次成功後停止。 對傳輸的偏好由替代承運人記錄的順序表示。 注意 0x0002 到 0x0064 為保留值。 |
| 裝置易記名稱的長度 | 裝置友好名稱欄位的長度。 | 1 個位元組 | 裝置易記名稱的長度。 |
| 裝置友好名稱 | UTF-8 編碼字串,最多 255 位元組。 | 裝置易記名稱的長度 | 裝置的易記名稱,將顯示在用戶端的同意 UI 中。 |
Wi-Fi 即用儀式,靜態連接交接標籤格式
例如,以下是 NFC 被動標籤的典型實作。 這對應於具有 Wi-Fi Direct 電信業者記錄、網路共用印表機和 ms-device 配對記錄的靜態連線切換案例。
第一個表格說明標籤的 Wi-Fi 直接配對部分的格式。
| Offset | 內容 | 長度 | 說明 |
|---|---|---|---|
| 0 | 0x91 | 1 | NDEF 記錄標頭: MB=1b、ME=0b、CF=0b、SR=1b、IL=0b、TNF=001b |
| 1 | 0x02 | 1 | 記錄類型長度:2 個八位元組 |
| 2 | 0x0A | 1 | 記錄類型長度:10 個八位元組 |
| 3 | 0x48 0x73 | 2 | 記錄類型:「Hs」 |
| 5 | 0x12 | 1 | 版本號:主要版本 (1),次要版本 (2) |
| 6 | 0xD1 | 1 | NDEF 記錄標頭: MB=1b、ME=1b、CF=0b、SR=1b、IL=0b、TNF=001b |
| 7 | 0x02 | 1 | 記錄類型長度:2 個八位元組 |
| 8 | 0x04 | 1 | 有效載荷長度:4 個八位元組 |
| 9 | 0x61 0x63 | 2 | 記錄類型:「ac」 |
| 11 | 0x01 | 1 | 載波標誌:CPS=1,「啟用中」 |
| 12 | 0x01 | 1 | 載波數據參考長度:1 個八位元組 |
| 13 | 0x30 | 1 | 電信業者資料參考:“0” |
| 14 | 0x00 | 1 | 輔助資料參考計數:0 |
| 15 | 0x1A | 1 | NDEF 記錄標頭: MB=0b、ME=0b、CF=0b、SR=1b、IL=1b、TNF=010b |
| 16 | 0x22 | 1 | 記錄類型名稱長度:34 個八位元組 |
| 17 | 0x3E | 1 | 有效載荷長度:62 個八位字節 |
| 18 | 0x01 | 1 | ID 長度:1 個八位元組 |
| 19 | 0x61 0x70 0x70 0x6C 0x69 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2F 0x76 0x6E 0x64 0x2E 0x6D 0x73 0x2D 0x77 0x69 0x6E 0x64 0x6F 0x77 0x73 0x2E 0x77 0x66 0x64 0x2E 0x6F 0x6F 0x62 |
34 | 記錄類型名稱:'application/vnd.ms-windows.wfd.oob' |
| 53 | 0x30 | 1 | 識別碼: "0" |
| 54 | 0x3E 0x00 | 2 | Wi-Fi 直接 OOB 資料長度:62 個八位元組。 長度會被讀取為無符號短整數,並包含整個 Blob。 包括 2 個長度八位元組。 此值必須以小端格式儲存。 |
| 56 | 0x02、0x00 | 2 | 標頭長度:2 個八位元組 |
| 58 | 0x10 | 1 | 版本:0x10 |
| 59 | 0x00 | 1 | OOB 類型:0x00(單向) |
| 六十 | 0x01 | 1 | 屬性:0x01(裝置資訊屬性) |
| 61 | 0x22 0x00 | 2 | 設備信息長度:34 個八位元組 |
| 63 | 0x01 0x23 0x34 0xab 0xcd 0xef |
6 | Wi-Fi 直接 P2P 裝置 MAC 位址: "01:23:34:ab:cd:ef" |
| 69 | 0x01 0x00 | 2 | 組態類型 |
| 71 | 0x00 0x01 0x00 0x50 0xF2 0x00 0x00 0x00 |
8 | 主要裝置類型 |
| 79 | 0x12 | 1 | 能力 |
| 80 | 0x10 0x11 | 2 | 屬性:裝置名稱 |
| 82 | 0x00 0x0d | 2 | 裝置名稱長度:13 個八位元組 |
| 84 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x4d 0x6f 0x75 0x73 0x65 |
13 | UTF-8 中的裝置易記名稱。 請注意,沒有 NULL 終止字元,而且 UTF-8 每個字元可能是一個或兩個位元組。 此範例顯示為「Contoso 滑鼠」 |
| 97 | 0x02 | 1 | 屬性:配置資訊 |
| 98 | 0x0c 0x00 | 2 | 佈建資訊長度:12 個八位元組 |
| 100 | 0x07 | 1 | 設定點陣圖:新組,強制持久化 |
| 101 | 0x01 0x00 | 2 | 配置方式:PIN 輸入 |
| 103 | 0x08 | 1 | 引腳長度:8 個八位字節 |
| 104 | 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 |
8 | PIN碼:“12345678” |
| 112 | 0x05 | 1 | 屬性:配置逾時資訊 |
| 113 | 0x01 0x00 | 2 | 設定逾時長度 |
| 115 | 0x64 | 1 | 10 秒,單位為 100 毫秒 |
第二個表格說明標籤的網路印表機配對部分的格式。
| Offset | 內容 | 長度 | 說明 |
|---|---|---|---|
| 116 | 0x12 | 1 | NDEF 記錄標頭: MB=0b,ME=0b,CF=0b,SR=1b,IL=0b,TNF=010b |
| 117 | 0x29 | 1 | 類型長度欄位 |
| 118 | 0x19 | 1 | 承載長度欄位 |
| 119 | 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x6e 0x77 0x70 0x72 0x69 0x6e 0x74 0x69 0x6e 0x67 0x2e 0x6f 0x6f 0x62 |
41 | 記錄類型名稱:「application/vnd.ms-windows.nwprinting.oob」 |
| 160 | 0x5c 0x5c 0x70 0x72 0x69 0x6e 0x74 0x53 0x65 0x72 0x76 0x65 0x72 0x5c 0x70 0x72 0x69 0x6e 0x74 0x65 0x72 0x4e 0x61 0x6d 0x65 |
25 | 印表機名稱:「\printServer\printerName」 |
第三個表格說明標籤 MS-Device 配對部分的格式。
| Offset | 內容 | 長度 | 說明 |
|---|---|---|---|
| 185 | 0x52 | 1 | NDEF 記錄標頭: MB=0b、ME=1b、CF=0b、SR=1b、IL=0b、TNF=010b |
| 186 | 0x28 | 1 | 型別長度欄位 |
| 187 | 0x15 | 1 | 承載長度欄位 |
| 188 | 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x64 0x65 0x76 0x69 0x63 0x65 0x70 0x61 0x69 0x72 0x69 0x6E 0x67 |
40 | 記錄類型名稱:「application/vnd.ms-windows.devicepairing」 |
| 228 | 0x00 0x01 0x00 0x00 |
4 | 版本:大調 = 1,小調 = 0 |
| 232 | 0x00 | 1 | 旗標:設定為 0,嘗試所有傳輸方式 |
| 233 | 0x0F | 1 | 裝置易記名稱的長度 |
| 234 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x50 0x72 0x69 0x6e 0x74 0x65 0x72 |
15 | 顯示給使用者的裝置易記名稱:「Contoso 印表機」 |
Wi-Fi 直接連線需求
裝置和用戶端必須開啟 Wi-Fi 無線電。 否則,配對將會失敗。
處理邊界案例
如果使用者先前已配對裝置,但隨後手動從裝置清單中移除裝置,則再次點選將導致嘗試安裝或配對。
如果使用者進入驅動範圍,但在傳輸頻外(OOB)資訊之前突然離開,裝置可能會變得能夠連接,但電腦可能不會主動尋找該裝置。 在此情況下,電腦將不會有同意的 UI,使用者必須再次點選。 如果裝置在再次點選時已經可探索,則它應該保持可探索狀態,並應重設逾時期間。
對於 Wi-Fi Direct 設備,如果 Wi-Fi 無線電關閉,則安裝將無法成功。
如果使用者幾乎同時點選兩個裝置,那麼只會嘗試進行第一個收到的 OOB 資訊的配對。
任何嘗試在運行不支援「點擊以設定」或「點擊以重新連線」作業系統的系統上點擊裝置都可能導致裝置進入可連接模式,但不會進行配對。 使用者需要使用為藍牙提供的配對 UI,並使用配對按鈕來啟動配對。