Wi-Fi 直接打印实现
本主题提供有关 Wi-Fi 直接打印实现的设备要求的信息。
设备要求
若要使 WFD-WSD 设备获得Wi-Fi Direct打印概述中所述的无缝连接体验,设备必须符合以下要求:
设备必须支持垂直配对,并在 WPS 消息中发送相关的 DPWS (WSD) 数据, (以下) 实现垂直配对数据 blob 中所述的格式。
物理设备中的所有逻辑设备必须在其 PnP-X 扩展中使用相同的 PnP-X 容器 ID。
有关为联网设备实现 PnP-X 容器 ID 的详细信息,请参阅 容器 ID 概述。
有关 PnP-X 扩展的一般信息,请参阅适用于 Windows 的 PnP-X:即插即用扩展规范。
由于 WFD 容器 ID 将与打印机的 UUID 匹配,因此设备元数据中不需要 PnP-X 容器 ID。 但是,仍建议设备支持设备元数据中的 PnP-X 元数据,并在设备元数据中播发 PnP-X 容器 ID 作为 PnP-X 元数据的一部分。 此容器 ID 应与 WFD 容器 ID 匹配。
在 WFD 层和 WSD 层具有相同的容器 ID 可确保满足以下条件:
配对 UI(例如“添加设备向导”)可以了解多个逻辑设备共存于单个物理设备中,并且以更合乎逻辑的方式为用户处理配对。 (例如,用户不必在单独的操作中手动配对 WFD 和打印设备。)
设备 & 打印机可以显示设备的单个设备图标,即使系统上安装了两组开发节点, (一组 WFD 开发节点和一组 WSD 开发节点) 。
请注意,Windows 硬件认证工具包测试需要正确的容器 ID 实现才能正常运行。 不正确的实现将导致测试将每个逻辑设备识别为单独的物理设备。
如果 WFD-WSD 设备不符合上述要求,则此实现中所述的连接体验将不适用于这些设备。
设备应实现 Wi-Fi 联盟 - Wi-Fi Direct Industry 白皮书中指定的持久性组和并发 Connection-Multiple 组。
如何通过 Wi-Fi Direct 为打印机发布容器 UUID
Windows 根据 Wi-Fi 联盟“Wi-Fi 对等 (P2P) 规范 v1.1”第 3.1.2.1.2 节 (扫描阶段) ,使用探测请求/响应通过 Wi-Fi 直接发现打印机。 在这种情况下,设备打印机将使用相应的探测请求/响应帧回复电脑。
探测请求 & 探测响应帧都可以使用自定义 IDE 进行扩展。 Microsoft 定义了具有多个属性的自定义 IE,以启用各种扩展。
如何为容器 UUID 构造 Microsoft 802.11 自定义 IE
自定义 IE 由供应商 ID & 供应商数据组成,如以下 WFD 供应商扩展图所示。
Microsoft 使用供应商 ID 0x137来表示 Microsoft 拥有的 IDE。 每个供应商的供应商扩展中的供应商数据块包含供应商定义的任意数据块。 Microsoft 供应商扩展中的供应商数据块由一个或多个 Type-Length-Value (TLV) 结构组成。 TLV 结构的组织显示在以下 WFD 供应商数据 图示中。
容器 UUID 的 TLV 定义
有两个与包含 ID 相关的 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 的一个属性。 与容器 ID 属性不同,这必须在从设备 Wi-Fi 直接配对) 期间发布在 M7/M8 WPS 消息 (中,具体取决于设备的角色。
如何为垂直配对构建 Microsoft 802.11 自定义 IE
自定义 IE 由供应商 ID & 供应商数据组成,如以下 WFD 供应商扩展图所示。
Microsoft 使用供应商 ID 0x137来表示 Microsoft 拥有的 IDE。 每个供应商的供应商扩展中的供应商数据块包含供应商定义的任意数据块。 Microsoft 供应商扩展中的供应商数据块由一个或多个 Type-Length-Value (TLV) 结构组成。 TLV 结构的组织如以下 WFD 供应商数据图示所示:
垂直配对 Blob 的 TLV 定义
为拉力垂直配对定义了两种特定的 TLV 类型。 下表列出了这些 TLV 类型。
名称/说明 | 键入 (2 个字节) | 长度 (2 个字节) | 由长度) 定义的值 ( |
---|---|---|---|
垂直配对标识符 (传达设备的内部拓扑) | 0x1001 | 0x0002 | 请参阅下面的“垂直配对标识符 TLV”。 |
传输 UUID (设备的传输 UUID 值) | 0x1002 | 0x0010 | 请参阅上面的“容器 UUID 的 TLV 定义”。 |
垂直配对标识符 TLV
垂直配对标识符 (VPI) TLV 传达设备的内部拓扑,该拓扑指定 Windows 如何与设备的服务通信。 至少需要一个 VPI 才能支持 Rally Vertical Pairing 扩展,即使设备中未实现垂直配对也是如此。 在这种情况下,VPI 将指定不使用传输。 必须在 WPS M1 消息中将 VPI TLV 作为 Microsoft 供应商扩展的一部分发送。
VPI TLV 附带的数据长度为 2 个字节,由两个不同的字段组成:“传输”字段和“配置文件请求”字段,如以下 VPI TLV 附带的 WFD 数据图中所示 (每个字段的长度为 1 字节) 。
“VPI 传输”字段
“传输”字段指定 Windows 可用于与设备通信的传输。 每个 VPI 只能指定一个传输。 如果设备支持多个 PnP-X 传输,则它可以通过在 Microsoft 供应商扩展中为每个传输) 包括多个 VPI TLV (一个来进行通信。 下表列出了“VPI 传输”字段的有效值。
值 | 传输 |
---|---|
0x00 | 无 |
0x01 | DPWS |
0x02 | UPnP |
0x03 | 保护 DPWS |
0x04-0xFF | 预留 |
注意
Windows 7 支持 DPWS (0x01) 或安全 DPWS (0x03) ,但不能同时支持这两者。
如果设备未实现 Rally 垂直配对,则它必须仅指定一个传输值为 0x00 (None) 的 VPI。 在这种情况下,设备不应指定传输 UUID TLV。 这会通知 Windows 它不应与设备配对。 因此,Windows 在配置设备的 Wi-Fi 设置时,不会尝试与设备进行预配对。
VPI 配置文件请求字段
VPI 允许设备使用 WPS 协议来预配设备的服务。 在这种情况下,设备服务可以请求 Windows 向其发送配置服务的信息。 此信息称为配置文件。 VPI 的第二个字段指定设备是否请求 Windows 向其发送配置文件。 下表列出了 VPI 配置文件请求字段的有效值。
值 | 说明 |
---|---|
0x01 | 请求 Wi-Fi 配置文件。 这是 Windows 7 当前支持的唯一值。 |
0x02–0xFF 0x00 | 预留 |
0x00 的 VPI 配置文件请求字段值被视为保留,因为它当前不受 Windows 7 支持。 “VPI 配置文件请求”字段仅应设置为0x01 () 请求的 Wi-Fi 配置文件的值,即使没有为传输指定0x00 () 的值也是如此。
传输 UUID TLV
传输 UUID TLV 指定特定传输 (DPWS 或 UPnP) 具有与 WPS UUID 不同的基 UUID 值。 传输 UUID TLV 是可选的。 如果未包含传输 UUID TLV,则 WPS UUID 用于形成指定传输的标识。
如果包含传输 UUID TLV,则必须立即遵循标识传输的 VPI TLV。 如果包含多个 VPI TLV,则可以在每个 VPI TLV 之后包含传输 UUID TLV。
Transport UUID TLV 数据值必须采用网络字节顺序。
如果设备将 VPI 传输值指定为 0x00 (none) ,请不要包含传输 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 供应商扩展:
在此示例中,供应商扩展包含供应商 ID 值 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-0a0b0c0e0e0f 的二进制版本。
当客户垂直配对打印机时,Windows 首先使用适当的设置配置设备的 Wi-Fi 无线电。 然后,它使用指定的传输 UUID 值将设备的 DPWS 设备配对。
设备连接到 Wi-Fi 网络并宣布其 DPWS 服务后,Windows 会创建相应的 PnP 设备节点,并安装和加载相应的驱动程序。