共用方式為


Wi-Fi 直接列印實作

本主題提供 Wi-Fi 直接列印實作裝置需求的相關信息。

裝置需求

若要讓WFD-WSD裝置獲得順暢的連線體驗,如 Wi-Fi Direct 印表概觀中所述,裝置必須遵循下列需求:

由於WFD容器標識碼會符合印表機的 UUID,因此裝置元數據中不需要 PnP-X 容器識別碼。 不過,仍建議裝置支援裝置元數據中的 PnP-X 元數據,並在裝置元數據中將 PnP-X 容器標識元公告為 PnP-X 元數據的一部分。 此容器標識碼應符合 WFD 容器標識碼。

在 WFD 層和 WSD 層擁有相同的容器識別碼可確保下列各項:

  • 配對UI,例如Add-a-device 精靈,可以瞭解多個邏輯裝置共存於單一實體裝置中,並以更邏輯的方式處理使用者配對。 (例如,使用者不需要在個別作業中手動配對WFD和列印裝置。)

  • 裝置 & 印表機可以顯示裝置的單一裝置圖示,即使系統上已安裝兩組 devnode, (一組 WFD devnodes 和一組 WSD devnodes) 。

  • 請注意,需要適當的容器標識碼實作,Windows 硬體認證套件測試才能正確執行。 不正確的實作會導致測試將每個邏輯裝置辨識為個別的實體裝置。

如果WFD-WSD裝置不符合上述需求,則此實作中所述的連線體驗不適用於這些裝置。

裝置應該如 Wi-Fi聯盟 - Wi-Fi 直接產業白皮書中所指定,實作持續性群組和並行 Connection-Multiple 群組。

如何透過印表機的 Wi-Fi Direct 發佈容器 UUID

Windows 會根據 Wi-Fi 聯盟的「Wi-Fi 點對點 (P2P) 規格 v1.1」第 3.1.1. (2.1.2 節) ,使用探查要求/回應,透過 Wi-Fi 直接印表機。 在此情況下,裝置、印表機將會使用適當的探查要求/回應框架回復計算機。

探查要求 & 探查回應框架都可以使用自定義 IE 來擴充。 Microsoft 已定義具有數個屬性的自訂 IE,以啟用各種擴充功能。

如何建構適用於容器 UUID 的 Microsoft 802.11 自定義 IE

自定義 IE 是由廠商標識碼 & 廠商數據所組成,如下列 WFD 廠商延伸模組圖所示。

wfd廠商延伸模組。

Microsoft 會使用廠商標識碼0x137來代表 Microsoft 所擁有的 IES。 位於每個廠商廠商延伸模組中的廠商數據區塊包含廠商所定義的任意數據區塊。 Microsoft 廠商延伸模組中的廠商數據區塊包含一或多個 Type-Length-Value (TLV) 結構。 TLV 結構的組織會顯示在下列 WFD 廠商數據 圖例中。

wfd 廠商數據。

容器 UUID 的 TLV 定義

有兩個與自主標識碼相關的TLV。 Windows 傳送至裝置的「要求屬性」& 裝置有裝置回應的「容器 UUID」TLV。

定義:

名稱/描述 輸入 (2 個字節) 長度 (2 個字節) 長度) 定義的值 (
Microsoft 屬性的要求 (此要求是由探查要求中的計算機在探索期間傳送) 0x1005 0x0002 0x0001 = Microsoft 正在要求自主 UUID
容器 UUID (探索期間由探查回應中的印表機傳送) 0x1006 0x0010 要由印表機定義

實作垂直配對數據 Blob

垂直配對數據 Blob 可讓電腦先瞭解 WSD 印表服務,再連線到印表機。 這項機制是簡單的服務探索替代方式,因為它是在撰寫 Wi-Fi Direct 的服務探索規格之前實作的。

如同容器 UUID,垂直配對數據 Blob 也是 Microsoft IE 的屬性。 不同於容器標識碼屬性,這必須在裝置 Wi-Fi 直接配對) 期間,於 M7/M8 WPS 訊息 (中發佈,視其角色而定。

如何建構 Microsoft 802.11 自定義 IE 以進行垂直配對

自定義 IE 包含廠商標識碼 & 廠商數據,如下列 WFD 廠商擴充功能圖所示。

wfd廠商延伸模組。

Microsoft 會使用廠商標識碼0x137來代表 Microsoft 所擁有的 IES。 位於每個廠商廠商延伸模組中的廠商數據區塊包含廠商所定義的任意數據區塊。 Microsoft 廠商延伸模組中的廠商數據區塊包含一或多個 Type-Length-Value (TLV) 結構。 TLV 結構的組織會顯示在下列 WFD 廠商資料圖例中:

wfd 廠商數據。

垂直配對 Blob 的 TLV 定義

Rally Vertical Pairing 定義了兩個特定的 TLV 類型。 下表列出這些TLV類型。

名稱/描述 輸入 (2 個字節) 長度 (2 個字節) 長度) 定義的值 (
垂直配對標識子 (通訊裝置的內部拓撲) 0x1001 0x0002 請參閱下方的「垂直配對標識碼 TLV」。
傳輸 UUID (裝置的傳輸 UUID 值) 0x1002 0x0010 請參閱上述「容器 UUID 的 TLV 定義」。

垂直配對標識碼 TLV

垂直配對標識子 (VPI) TLV 會傳達裝置的內部拓撲,這會指定 Windows 如何與裝置的服務通訊。 至少需要一個 VPI 才能支援 Rally 垂直配對延伸模組,即使裝置中未實作垂直配對也一樣。 在此情況下,VPI 會指定不使用任何傳輸。 VPI TLV 必須在WPS M1 訊息中傳送為 Microsoft 廠商延伸模組的一部分。

VPI TLV 隨附的數據長度為 2 個字節,且包含兩個不同的欄位:傳輸欄位和配置檔要求欄位,如下圖所示,VPI TLV 隨附的 WFD 數據 (每個欄位都是 1 位元組長) 。

vpi tlv 隨附的 wfd 數據。

VPI 傳輸欄位

[傳輸] 欄位會指定 Windows 可用來與裝置通訊的傳輸。 每個 VPI 只能指定一個傳輸。 如果裝置支援多個 PnP-X 傳輸,則可以藉由在 Microsoft 廠商擴充功能中的每個傳輸) 包含多個 VPI TLV (一個傳輸來通訊。 下表列出 VPI Transport 欄位的有效值。

傳輸
0x00
0x01 DPWS
0x02 UPnP
0x03 安全 DPWS
0x04-0xFF 保留

注意

Windows 7 提供 DPWS (0x01) 或安全 DPWS (0x03) 的支援,但不支援兩者。

如果裝置未實作 Rally Vertical Pairing,它必須只指定一個 VPI,且傳輸值為 0x00 (None) 。 在此情況下,裝置不應該指定 Transport UUID TLV。 這會通知 Windows 它不應該與裝置配對。 因此,Windows 不會在設定裝置的 Wi-Fi 設定時,嘗試預先與裝置配對。

[VPI 設定檔要求] 欄位

VPI 可讓裝置使用WPS通訊協定來布建裝置的服務。 在此情況下,裝置服務可以要求 Windows 傳送它資訊以設定服務。 這項資訊稱為配置檔。 VPI 的第二個字段會指定裝置是否要求 Windows 傳送配置檔。 下表列出 [VPI 配置檔要求] 欄位的有效值。

Description
0x01 要求 Wi-Fi 配置檔。 這是 Windows 7 目前唯一支援的值。
0x00,0x02–0xFF 保留

0x00的 VPI 設定檔要求域值會被視為保留,因為它目前不受 Windows 7 支援。 [VPI 設定檔要求] 字段應該只設定為0x01 () 要求的Wi-Fi設定檔值,即使未針對傳輸指定任何) 值0x00 (也一样。

傳輸 UUID TLV

Transport UUID TLV 指定特定傳輸 (DPWS 或 UPnP) 的基底 UUID 值與 WPS UUID 不同。 傳輸 UUID TLV 是選擇性的。 如果未包含 Transport UUID TLV,則會使用 WPS UUID 來形成指定傳輸的身分識別。

如果包含 Transport UUID TLV,它必須緊接在識別傳輸的 VPI TLV 之後。 如果包含多個 VPI TLV,可以在每個 VPI TLV 之後包含傳輸 UUID TLV。

Transport UUID TLV 資料值必須依網路位元組順序排列。

如果裝置指定0x00 (无) 的 VPI Transport 值,請勿包含 Transport UUID TLV。

WPS 範例

在此範例中,假設印表機裝置使用 DPWS 並實作 WS 列印介面。 裝置使用下表中的 UUID 值:

服務 身分識別
Wps ec742c0d-5915-4bcb-b969-008132afec5e
DPWS 列印 urn:uuid:00010203-0405-0607-0809-0a0b0c0e0e0f

WPS 範例服務 UUID 值

所有小寫都會指定 UUID 值,而 DPWS 識別字串會使用 urn:uuid:uuid_value 格式。

注意

此範例中的 UUID 值是虛構的,不得用於實際裝置。

當裝置傳送其WPS M7/M8 訊息時,它包含下列 WFD 廠商擴充功能詳細數據範例所示的 Microsoft 廠商擴充功能:

範例 wfd 廠商擴充功能詳細數據。

在此範例中,廠商延伸模組包含0x137的廠商標識符值,可將其識別為 Microsoft 廠商延伸模組。 在廠商延伸模組的廠商數據欄位中,有兩個 TLV 結構。

第一個 TLV 的 Type 值為 0x1001,會將 TLV 識別為 VPI。 第一個 TLV 中的數據長度是 2 個字節,其中包含值 0x0101。 這會指定裝置支援 DPWS 傳輸 (0x01) ,而且要求配置檔 (0x01) 。

第二個 TLV 的 Type 值為 0x1002,會將 TLV 識別為傳輸 UUID。 第二個 TLV 中的數據長度是 16 個字節,其中包含 UUID 值的二進位版本 00010203-0405-0607-0809-0a0b0c0e0f。

當客戶垂直配對印表機時,Windows 會先使用適當的設定來設定裝置的 Wi-Fi 無線電。 然後,它會使用指定的傳輸 UUID 值來配對裝置的 DPWS 裝置。

當裝置連線到 Wi-Fi 網路並宣佈其 DPWS 服務之後,Windows 會建立適當的 PnP 裝置節點,並安裝並載入適當的驅動程式。