Compartilhar via


Wi-Fi implementação de impressão direta

Este tópico fornece informações sobre os requisitos de dispositivo para uma implementação de impressão direta Wi-Fi.

Requisitos do dispositivo

Para que um dispositivo WFD-WSD obtenha a experiência de conectividade perfeita, conforme descrito em Wi-Fi Direct visão geral da impressão, o dispositivo precisa cumprir os seguintes requisitos:

Como a ID do contêiner do WFD corresponderá à UUID da impressora, a ID do contêiner PnP-X não será necessária nos metadados do dispositivo. No entanto, ainda é recomendável que o dispositivo dê suporte a metadados PnP-X nos metadados do dispositivo e anuncie uma ID de contêiner PnP-X como parte dos metadados PnP-X nos metadados do dispositivo. Essa ID de Contêiner deve corresponder à ID do Contêiner do WFD.

Ter a mesma ID de contêiner na camada WFD, bem como a camada WSD, garante o seguinte:

  • A interface do usuário de emparelhamento, como o assistente adicionar um dispositivo, pode entender que vários dispositivos lógicos coexistem em um único dispositivo físico e lidam com o emparelhamento de maneira mais lógica para o usuário. (por exemplo, o usuário não precisa emparelhar o WFD e imprimir dispositivos manualmente em operações separadas.)

  • As Impressoras & do dispositivo podem mostrar um único ícone de dispositivo para o dispositivo, embora haja dois conjuntos de devnodes instalados no sistema (um conjunto de devnodes WFD e um conjunto de devnodes WSD).

  • Observe que a implementação de ID de contêiner adequada é necessária para que os testes do kit de Certificação de Hardware do Windows sejam executados corretamente. A implementação inadequada fará com que os testes reconheçam cada dispositivo lógico como um dispositivo físico separado.

Se um dispositivo WFD-WSD não estiver em conformidade com os requisitos acima, a experiência de conectividade descrita nesta implementação não se aplicará a esses dispositivos.

Os dispositivos devem implementar Grupos Persistentes e Grupos de Connection-Multiple Simultâneos, conforme especificado no White paper Aliança Wi-Fi - Wi-Fi Direct Industry.

Como publicar o UUID do contêiner Wi-Fi Direct para impressoras

O Windows descobre impressoras por Wi-Fi Direct usando uma solicitação/resposta de investigação de acordo com a Wi-Fi Alliance "Especificação ponto a ponto (P2P) de Wi-Fi v1.1" Seção 3.1.2.1.2 (Fase de Verificação). O Dispositivo, Impressora neste caso responderá ao computador usando o Quadro de Solicitação/Resposta de Investigação apropriado.

Os quadros de resposta da solicitação de investigação & investigação podem ser estendidos usando IEs personalizados. A Microsoft definiu um IE Personalizado com vários atributos para habilitar várias extensões.

Como construir um IE personalizado do Microsoft 802.11 para UUID de contêiner

Um IE Personalizado consiste em uma ID de Fornecedor & Dados do Fornecedor, conforme mostrado na ilustração de extensão de fornecedor do WFD a seguir.

Extensão do fornecedor wfd.

A Microsoft usa a ID do fornecedor 0x137 para representar IEs pertencentes à Microsoft. O bloco de dados do fornecedor que está nas extensões de fornecedor de cada fornecedor contém um bloco arbitrário de dados definido pelo fornecedor. O bloco de dados do fornecedor nas extensões de fornecedor da Microsoft consiste em uma ou mais estruturas TLV (Type-Length-Value). A organização da estrutura TLV é mostrada na ilustração de Dados do Fornecedor do WFD a seguir.

dados do fornecedor wfd.

Definição de TLV para UUID de contêiner

Há duas TLVs relevantes para a ID Contida. Há uma "Solicitação de atributos" que o Windows envia para o dispositivo & há um TLV "UUID do contêiner" com o qual os dispositivos respondem.

Definições:

Nome/descrição Tipo (2 bytes) Comprimento (2 bytes) Valor (definido por comprimento)
Solicitação de Atributos da Microsoft (isso é enviado pelo computador na solicitação de investigação durante a descoberta) 0x1005 0x0002 0x0001 = A Microsoft está solicitando UUID independente
UUID do contêiner (isso é enviado pela impressora na resposta da investigação durante a descoberta) 0x1006 0x0010 Para ser definido pela impressora

Implementando o blob de dados de emparelhamento vertical

O Blob de Dados de Emparelhamento Vertical permite que o computador entenda o serviço de Impressão WSD antes de se conectar à Impressora. Esse mecanismo é um substituto simples para a descoberta de serviço, pois foi implementado antes da especificação de descoberta de serviço para Wi-Fi Direct foi gravado.

Assim como o UUID do Contêiner, o Blob de Dados de Emparelhamento Vertical também é um atributo do Microsoft IE. Ao contrário do atributo ID do Contêiner, isso deve ser publicado na mensagem WPS M7/M8 (durante Wi-Fi Emparelhamento Direto) do Dispositivo, dependendo de sua função.

Como construir um IE personalizado do Microsoft 802.11 para emparelhamento vertical

Um IE personalizado consiste em uma ID do fornecedor & dados do fornecedor, conforme mostrado na ilustração da Extensão de Fornecedor do WFD a seguir.

Extensão do fornecedor wfd.

A Microsoft usa a ID do fornecedor 0x137 para representar IEs pertencentes à Microsoft. O bloco de dados do fornecedor que está nas extensões de fornecedor de cada fornecedor contém um bloco arbitrário de dados definido pelo fornecedor. O bloco de dados do fornecedor nas extensões de fornecedor da Microsoft consiste em uma ou mais estruturas TLV (Type-Length-Value). A organização da estrutura TLV é mostrada na ilustração de Dados do Fornecedor do WFD a seguir:

dados do fornecedor wfd.

Definição de TLV para blob de emparelhamento vertical

Dois tipos TLV específicos são definidos para o Emparelhamento Vertical do Rally. Esses tipos de TLV são listados na tabela a seguir.

Nome/descrição Tipo (2 bytes) Comprimento (2 bytes) Valor (definido por comprimento)
Identificador de emparelhamento vertical (comunica a topologia interna do dispositivo) 0x1001 0x0002 Veja "TLV DO IDENTIFICADOR DE EMPARELHAMENTO VERTICAL" abaixo.
UUID de transporte (o valor UUID de transporte do dispositivo) 0x1002 0x0010 Confira "Definição de TLV para UUID do Contêiner" acima.

TLV do identificador de emparelhamento vertical

O TLV (Identificador de Emparelhamento Vertical) comunica a topologia interna de um dispositivo, que especifica como o Windows pode se comunicar com os serviços do dispositivo. Pelo menos uma VPI é necessária para dar suporte a extensões de Emparelhamento Vertical do Rally, mesmo que o Emparelhamento Vertical não seja implementado no dispositivo. Nessa situação, a VPI especificaria que nenhum transporte é usado. O TLV da VPI deve ser enviado como parte da extensão de fornecedor da Microsoft na mensagem do WPS M1.

Os dados incluídos com um TLV de VPI têm 2 bytes de comprimento e consistem em dois campos diferentes: um campo Transporte e um campo solicitação de perfil, conforme mostrado na ilustração a seguir dos dados do WFD incluídos com um TLV de VPI (cada campo tem 1 byte de comprimento).

dados wfd incluídos com um vpi tlv.

Campo Transporte de VPI

O campo Transporte especifica o transporte que o Windows pode usar para se comunicar com o dispositivo. Somente um transporte pode ser especificado por VPI. Se o dispositivo der suporte a vários transportes PnP-X, ele poderá comunicar isso incluindo várias TLVs de VPI (uma para cada transporte) na extensão de fornecedor da Microsoft. Os valores válidos para o campo Transporte de VPI são listados na tabela a seguir.

Valor Transporte
0x00 Nenhum
0x01 DPWS
0x02 UPnP
0x03 DPWS seguro
0x04-0xFF Reservado

Observação

O Windows 7 fornece suporte para DPWS (0x01) ou DPWS Seguro (0x03), mas não ambos.

Se um dispositivo não implementar o Emparelhamento Vertical de Rally, ele deverá especificar apenas uma VPI com um valor transport de 0x00 (Nenhum). Nessa situação, o dispositivo não deve especificar um TLV UUID de transporte. Isso notifica o Windows de que ele não deve esperar emparelhar com o dispositivo. Portanto, o Windows não tenta emparelhar previamente com o dispositivo enquanto ele define as configurações de Wi-Fi do dispositivo.

Campo Solicitação de Perfil de VPI

A VPI permite que um dispositivo use o protocolo WPS para provisionar os serviços do dispositivo. Nessa situação, um serviço de dispositivo pode solicitar que o Windows envie informações para configurar o serviço. Essas informações são conhecidas como um perfil. O segundo campo da VPI especifica se o dispositivo está solicitando que o Windows envie um perfil a ele. Os valores válidos para o campo Solicitação de Perfil de VPI são listados na tabela a seguir.

Valor Descrição
0x01 Wi-Fi perfil solicitado. Esse é o único valor atualmente compatível com o Windows 7.
0x00, 0x02–0xFF Reservado

O valor do campo Solicitação de Perfil de VPI de 0x00 é considerado reservado porque atualmente não tem suporte do Windows 7. O campo Solicitação de Perfil de VPI só deve ser definido como um valor de 0x01 (perfil Wi-Fi solicitado), mesmo que um valor de 0x00 (nenhum) seja especificado para o transporte.

TLV UUID de transporte

O TLV UUID de Transporte especifica que um transporte específico (DPWS ou UPnP) tem um valor UUID base diferente do UUID do WPS. O TLV UUID de Transporte é opcional. Se o TLV UUID de Transporte não estiver incluído, o UUID do WPS será usado para formar uma identidade para o transporte especificado.

Se um TLV UUID de Transporte estiver incluído, ele deverá seguir imediatamente o TLV da VPI que identifica o transporte. Se mais de um TLV de VPI estiver incluído, um TLV UUID de Transporte poderá ser incluído após cada TLV de VPI.

O valor de dados TLV de UUID de transporte deve estar na ordem de bytes de rede.

Se o dispositivo especificar um valor de Transporte de VPI de 0x00 (nenhum), não inclua um TLV UUID de Transporte.

Exemplo de WPS

Para este exemplo, suponha que um dispositivo de impressora use DPWS e implemente a interface WS Print. O dispositivo usa os valores UUID na tabela a seguir:

Serviço Identidade
WPS (sigla em inglês) ec742c0d-5915-4bcb-b969-008132afec5e
Impressão DPWS urn:uuid:00010203-0405-0607-0809-0a0b0c0e0e0f

Valores UUID de serviço de exemplo do WPS

Os valores UUID são especificados em todas as letras minúsculas e a cadeia de caracteres de identidade DPWS usa o formato urn:uuid:uuid_value.

Observação

Os valores UUID neste exemplo são fictícios e não devem ser usados em um dispositivo real.

Quando o dispositivo envia suas mensagens M7/M8 do WPS, ele inclui a extensão de fornecedor da Microsoft mostrada no exemplo a seguir de detalhes da extensão do fornecedor do WFD:

exemplo de detalhes da extensão do fornecedor wfd.

Neste exemplo, a extensão do fornecedor contém um valor de ID do fornecedor de 0x137, que a identifica como uma extensão de fornecedor da Microsoft. Dentro do campo de dados do fornecedor da extensão de fornecedor há duas estruturas TLV.

O primeiro TLV tem um valor Type de 0x1001, que identifica o TLV como uma VPI. O comprimento dos dados no primeiro TLV é de 2 bytes, que contêm um valor de 0x0101. Isso especifica que o dispositivo dá suporte ao transporte DPWS (0x01) e que está solicitando um perfil (0x01).

O segundo TLV tem um valor Type de 0x1002, que identifica o TLV como um UUID de transporte. O comprimento dos dados no segundo TLV é de 16 bytes, que contêm a versão binária do valor UUID 00010203-0405-0607-0809-0a0b0c0e0e0e0f.

Quando um cliente emparelha verticalmente a impressora, o Windows primeiro configura o rádio Wi-Fi do dispositivo com as configurações apropriadas. Em seguida, ele emparelha o dispositivo DPWS do dispositivo usando o valor UUID de transporte especificado.

Depois que o dispositivo se conecta à rede Wi-Fi e anuncia seus serviços DPWS, o Windows cria os nós de dispositivo PnP apropriados e instala e carrega os drivers apropriados.