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:
O dispositivo deve dar suporte ao emparelhamento vertical e enviar os dados relevantes do DPWS (WSD) nas mensagens WPS (formatos descritos em Implementando o blob de dados de emparelhamento vertical abaixo).
Todos os dispositivos lógicos no dispositivo físico DEVEM usar a mesma ID de Contêiner PnP-X em sua extensão PnP-X.
Para obter detalhes sobre como implementar IDs de contêiner PnP-X para dispositivos conectados à rede, consulte Visão geral das IDs de contêiner.
Para obter informações gerais sobre extensões PnP-X, consulte PnP-X: Plug and Play extensões para especificação do Windows.
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.
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.
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.
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:
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).
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:
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.