Поделиться через


Реализация прямой печати Wi-Fi

В этом разделе содержатся сведения о требованиях к устройствам для реализации Wi-Fi прямой печати.

Требования к устройствам

Чтобы устройство WFD-WSD беспрепятственно подключалось, как описано в Wi-Fi Direct обзоре печати, оно должен соответствовать следующим требованиям:

Так как идентификатор контейнера WFD будет соответствовать UUID принтера, идентификатор контейнера PnP-X не потребуется в метаданных устройства. Тем не менее рекомендуется, чтобы устройство поддерживало метаданные PnP-X в метаданных устройства и объявляйте идентификатор контейнера PnP-X как часть метаданных PnP-X в метаданных устройства. Этот идентификатор контейнера должен соответствовать идентификатору контейнера WFD.

Наличие одного и того же идентификатора контейнера на уровне WFD, а также на уровне WSD гарантирует следующее:

  • Пользовательский интерфейс связывания, например мастер надстроек устройств, может понять, что несколько логических устройств сосуществуют в одном физическом устройстве, и обрабатывать связывание более логичным образом для пользователя. (Например, пользователю не нужно связывать устройства WFD и печати вручную в отдельных операциях.)

  • Принтеры устройств & могут отображать один значок устройства для устройства, даже если в системе установлено два набора devnodes (один набор WFD devnodes и один набор WSD devnodes).

  • Обратите внимание, что для правильного выполнения тестов комплекта сертификации оборудования Windows требуется правильная реализация идентификатора контейнера. Неправильная реализация приведет к тому, что тесты распознают каждое логическое устройство как отдельное физическое устройство.

Если устройство WFD-WSD не соответствует указанным выше требованиям, то интерфейс подключения, описанный в этой реализации, не будет применяться к этим устройствам.

Устройства должны реализовывать постоянные группы и параллельные группы Connection-Multiple, как указано в техническом документе "Альянс Wi-Fi — Wi-Fi direct industry".

Публикация UUID контейнера через Wi-Fi Direct для принтеров

Windows обнаруживает принтеры по Wi-Fi direct с помощью запроса или ответа пробы в соответствии с Wi-Fi Alliance "Спецификация однорангового подключения Wi-Fi (P2P) версии 1.1" раздел 3.1.2.1.2 (этап сканирования). Устройство и принтер в этом случае ответит компьютеру с помощью соответствующего кадра запроса или ответа пробы.

Оба запроса пробы & кадры ответа пробы можно расширить с помощью пользовательских ES. Корпорация Майкрософт определила Пользовательский IE с несколькими атрибутами для включения различных расширений.

Создание пользовательского IE Microsoft 802.11 для UUID контейнера

Пользовательский IE состоит из идентификатора поставщика & данные поставщика, как показано на следующем рисунке расширения поставщика WFD.

Расширение поставщика wfd.

Корпорация Майкрософт использует идентификатор поставщика 0x137 для представления IEs, принадлежащих корпорации Майкрософт. Блок данных поставщика, который находится в расширениях поставщика, содержит произвольный блок данных, определяемых поставщиком. Блок данных поставщика в расширениях поставщиков Майкрософт состоит из одной или нескольких структур типа-длины-значения (TLV). Организация структуры TLV показана на следующем рисунке данных поставщика WFD .

Данные поставщика wfd.

Определение TLV для UUID контейнера

Существует два TLV, относящихся к автономному идентификатору. Существует запрос атрибутов, который Windows отправляет на устройство, & имеется TLV Container UUID, который отвечает устройства.

Определения:

Имя и описание Тип (2 байта) Длина (2 байта) Значение (определяется по длине)
Запрос атрибутов Майкрософт (отправляется компьютером в запросе пробы во время обнаружения) 0x1005 0x0002 0x0001 = Корпорация Майкрософт запрашивает автономный UUID
UUID контейнера (отправляется принтером в ответе пробы во время обнаружения) 0x1006 0x0010 Определяется принтером

Реализация большого двоичного объекта данных вертикального связывания

Большой двоичный объект данных вертикального связывания позволяет компьютеру понять службу печати WSD перед подключением к принтеру. Этот механизм является простой заменой обнаружения служб, так как он был реализован до написания спецификации обнаружения служб для Wi-Fi Direct.

Как и UUID контейнера, большой двоичный объект данных вертикального связывания также является атрибутом Microsoft IE. В отличие от атрибута Container ID, он должен быть опубликован в сообщении WPS M7/M8 (во время Wi-Fi прямого связывания) с устройства в зависимости от его роли.

Создание пользовательского IE Microsoft 802.11 для вертикального связывания

Пользовательский IE состоит из идентификатора поставщика & данные поставщика, как показано на следующем рисунке расширения поставщика WFD.

Расширение поставщика wfd.

Корпорация Майкрософт использует идентификатор поставщика 0x137 для представления IEs, принадлежащих корпорации Майкрософт. Блок данных поставщика, который находится в расширениях поставщика, содержит произвольный блок данных, определяемых поставщиком. Блок данных поставщика в расширениях поставщиков Майкрософт состоит из одной или нескольких структур типа-длины-значения (TLV). Организация структуры TLV показана на следующем рисунке данных поставщика WFD:

Данные поставщика wfd.

Определение TLV для большого двоичного объекта вертикального связывания

Для вертикального связывания ралли определены два конкретных типа TLV. Эти типы TLV перечислены в следующей таблице.

Имя и описание Тип (2 байта) Длина (2 байта) Значение (определяется по длине)
Идентификатор вертикального связывания (сообщает внутреннюю топологию устройства) 0x1001 0x0002 См. раздел "TLV ИДЕНТИФИКАТОРА ВЕРТИКАЛЬНОГО СВЯЗЫВАНИЯ" ниже.
UUID транспорта (значение UUID транспорта устройства) 0x1002 0x0010 См. раздел Определение TLV для UUID контейнера выше.

TLV идентификатора вертикального связывания

TLV идентификатора вертикального связывания (VPI) сообщает о внутренней топологии устройства, которая указывает, как Windows может взаимодействовать со службами устройства. Для поддержки расширений вертикального связывания ралли требуется по крайней мере один VPI, даже если вертикальное связывание не реализовано на устройстве. В этом случае VPI указывает, что транспорты не используются. VPI TLV должен быть отправлен как часть расширения поставщика Майкрософт в сообщении WPS M1.

Данные, включенные в TLV VPI, составляют 2 байта и состоят из двух разных полей: поля Транспорта и Запроса профиля, как показано на следующем рисунке данных WFD, включенных в TLV VPI (каждое поле имеет длину 1 байт).

Данные wfd, включенные в vpi tlv.

Поле "Транспорт VPI"

В поле Транспорт указывается транспорт, который Windows может использовать для взаимодействия с устройством. Для каждого VPI можно указать только один транспорт. Если устройство поддерживает несколько транспортов PnP-X, оно может сообщить об этом, включив несколько VPI TLV (по одному для каждого транспорта) в расширение поставщика Майкрософт. Допустимые значения для поля VPI Transport приведены в следующей таблице.

Значение Транспорт
0x00 Нет
0x01 DPWS
0x02 UPnP
0x03 Защита DPWS
0x04 0xFF Зарезервировано

Примечание

Windows 7 поддерживает DPWS (0x01) или Secure DPWS (0x03), но не обе.

Если устройство не реализует вертикальное связывание с ралли, оно должно указать только один VPI со значением Transport 0x00 (None). В этом случае устройство не должно указывать TLV UUID транспорта. Это уведомляет Windows о том, что не следует ожидать связывания с устройством. Поэтому Windows не пытается выполнить предварительную пару с устройством при настройке параметров Wi-Fi устройства.

Поле запроса профиля VPI

VPI позволяет устройству использовать протокол WPS для подготовки служб устройства. В этом случае служба устройств может запросить, чтобы Windows отправляла ей сведения для настройки службы. Эти сведения называются профилем. Второе поле VPI указывает, запрашивает ли устройство, чтобы Windows отправляло ему профиль. Допустимые значения поля запроса профиля VPI перечислены в следующей таблице.

Значение Описание
0x01 запрошенный профиль Wi-Fi. Это единственное значение, которое в настоящее время поддерживается Windows 7.
0x00, 0x02–0xFF Зарезервировано

Значение поля запроса профиля VPI 0x00 считается зарезервированным, так как в настоящее время оно не поддерживается Windows 7. В поле Запрос профиля VPI должно быть задано только значение 0x01 (запрошен профиль Wi-Fi), даже если для транспорта указано значение 0x00 (none).

TLV транспортного UUID

TLV transport UUID указывает, что конкретный транспорт (DPWS или UPnP) имеет другое базовое значение UUID, чем UUID WPS. TLV транспортного UUID является необязательным. Если TLV UUID транспорта не включен, UUID WPS используется для формирования удостоверения для указанного транспорта.

Если включен TLV UUID транспорта, он должен немедленно следовать за VPI TLV, который идентифицирует транспорт. Если включено несколько TLV VPI, после каждого TLV VPI можно включить TLV транспортного UUID.

Значение TLV транспортного UUID должно быть в порядке байтов сети.

Если устройство указывает VPI Transport value 0x00 (none), не включайте TLV UUID транспорта.

Пример WPS

В этом примере предположим, что устройство принтера использует DPWS и реализует интерфейс печати WS. Устройство использует значения UUID, приведенные в следующей таблице:

Служба Идентификация
WPS ec742c0d-5915-4bcb-b969-008132afec5e
Печать DPWS urn:uuid:00010203-0405-0607-0809-0a0b0c0e0e0f

Пример значений UUID службы WPS

Значения UUID указываются во всех строчных регистрах, а строка удостоверения DPWS использует формат urn:uuid:uuid_value.

Примечание

Значения UUID в этом примере являются вымышленными и не должны использоваться на реальном устройстве.

Когда устройство отправляет свои сообщения WPS M7/M8, оно включает расширение поставщика Майкрософт, которое показано в следующем примере сведений о расширении поставщика WFD:

пример сведений о расширении поставщика wfd.

В этом примере расширение поставщика содержит значение идентификатора поставщика 0x137, которое определяет его как расширение поставщика Майкрософт. В поле данных поставщика расширения поставщика находятся две структуры TLV.

Первый TLV имеет значение Type 0x1001, которое определяет TLV как VPI. Длина данных в первом TLV составляет 2 байта, которые содержат значение 0x0101. Это означает, что устройство поддерживает транспорт DPWS (0x01) и запрашивает профиль (0x01).

Второй TLV имеет значение Type 0x1002, которое определяет TLV как транспортный UUID. Длина данных во втором TLV составляет 16 байт, которые содержат двоичную версию значения UUID 00010203-0405-0607-0809-0a0b0c0e0e0e0f.

Когда клиент вертикально связывает принтер, Windows сначала настраивает Wi-Fi радиоустройства с соответствующими параметрами. Затем он связывает устройство DPWS устройства с использованием указанного значения UUID транспорта.

Когда устройство подключается к сети Wi-Fi и объявляет о своих службах DPWS, Windows создает соответствующие узлы устройства PnP, устанавливает и загружает соответствующие драйверы.