Wi-Fi implementação de emparelhamento direto
Esta seção fornece diretrizes de design e requisitos para que um dispositivo periférico participe dos casos de uso Tocar e Configurar e Tocar e Reconectar.
Observação
Atualmente, há suporte para a implementação de emparelhamento descrita neste tópico em Windows 8.1, apenas para emparelhamento com dispositivos de impressora.
Windows 10 e posteriores dão suporte à NFC para Wi-Fi a entrega de conexão estática direta por meio do registro de configuração de operadora P2P Wi-Fi da aliança Wi-Fi. Para obter mais informações, consulte Wi-Fi Alliance.
Emparelhamento de dispositivo direto Wi-Fi periférico
Durante o toque, o NFP recebe informações de emparelhamento do dispositivo de conexão. O NFP passa as informações de emparelhamento para o Windows. Wi-Fi Dispositivos Diretos seguem o procedimento de emparelhamento OOB (Wi-Fi Alliance Out-Of-Band) e as recomendações do Fórum NFC. O Windows depende de uma mensagem de emparelhamento proprietária, conforme definido abaixo.
O Windows solicitará consentimento ao usuário e, se for fornecido, o Windows tentará se conectar a cada um dos endereços, em ordem, até que um seja bem-sucedido. Não há mais interação entre um provedor NFP no computador e o dispositivo de conexão.
Usando NFC como exemplo, a instalação unidirecional é realizada armazenando as informações de emparelhamento em uma marca NFC estática ou passiva (uma marca NFC ativa no modo de emulação estática também pode ser usada). O Windows assina essas informações de emparelhamento. Um provedor NFP habilitado para NFC no computador recebe as informações de conexão da marca e passa isso para o Windows como assinante. Após o recebimento das informações de conexão, o Windows executa a instalação real do dispositivo em banda usando técnicas específicas da classe de dispositivo.
Requisitos de interoperabilidade
Para garantir a interoperabilidade entre provedores NFP, as informações de emparelhamento devem ser encapsuladas em um formato de mensagem específico do provedor.
Conforme descrito em outro lugar neste documento, não há requisitos específicos para tecnologias de proximidade que não sejam para provedores NFP habilitados para NFC.
O Windows exige que os provedores NFP habilitados para NFC ofereçam suporte a um mecanismo específico definido pelo Fórum NFC para transmitir as informações de emparelhamento OOB direto Wi-Fi para emparelhamento unidirecional. A mensagem NDEF contém um primeiro registro com um valor de campo TNF de 0x01 e um campo TYPE igual a "Hs" e um registro de operadora alternativo que aponta para um Wi-Fi registro de configuração de operadora direta. Nesse método, somente o PAYLOAD do registro NDEF será usado.
Emparelhamento unidirecional usando NFC para Wi-Fi Direct
Esta seção fornece mais detalhes sobre como NFC, Wi-Fi Direct e Windows funcionam juntos para dar suporte ao emparelhamento sem fio unidirecional para dispositivos Wi-Fi Direct, como impressoras.
Referências do provedor NFP
Wi-Fi emparelhamento direto é realizado usando um tipo de mensagem Selecionar Seleção de Entrega de Conexão padronizada do Fórum NFC. O gráfico abaixo fornece uma visão geral de como uma mensagem Seleção de Entrega de Conexão é aplicada para Wi-Fi emparelhamento de dispositivo direto, especificamente registros NDEF 3 e 4. A mensagem Seleção de Entrega descreve um ou mais registros "ac" ou "Operadora Alternativa". Esses registros seguem o registro Handover Select sequencialmente e cada um tem um tipo bem definido. Por fim, a mensagem conterá um registro de emparelhamento de dispositivo definido pela Microsoft que fornece ao Windows informações sobre como processar a operação de emparelhamento.
Wi-Fi mensagem de emparelhamento de dispositivo direto
Nos casos de uso de exemplo a seguir, as marcas do tipo NFC 2 são usadas como um exemplo ilustrativo. Se for necessário usar um tipo de marca NFC diferente, a mensagem NDEF deverá ser encapsulada corretamente de acordo com essa definição de marca.
Campo | Valor | Descrição |
---|---|---|
TNF | 0x02 | Formato do campo Tipo a seguir. Tipo de mídia conforme definido no RFC 2046. |
Tipo | 'application/vnd.ms-windows.wfd.oob' | Nova cadeia de caracteres de tipo que definimos para esse cenário. |
Tamanho dos dados OOB | WORD | Há suporte para até 64 KB de dados OOB. |
Wi-Fi dados OOB diretos | <blob de tamanho indicado pelo campo anterior> | Wi-Fi dados OOB diretos, conforme definido abaixo. |
Wi-Fi formato OOB Direto
A tabela a seguir descreve o formato dos dados OOB diretos do WiFi. Os Dados Unidirecionais OOB podem ser transmitidos por qualquer dispositivo OOB P2P unidirecional.
Atributos | ID do atributo | Obrigatório/Opcional | Observação |
---|---|---|---|
Cabeçalho OOB Consulte tabela de formato de atributo de cabeçalho OOB. |
N/D | Obrigatório | O atributo Cabeçalho OOB deve estar presente no blob de dados OOB P2P e ter seu valor de Tipo OOB definido como "Dados de Provisionamento Unidirecional OOB". |
Informações do dispositivo OOB Consulte tabela de formato de atributo de informações do dispositivo OOB. |
1 | Obrigatório | Esse atributo deve estar presente. Ele fornece informações sobre este dispositivo P2P. |
Informações de provisionamento de OOB | 2 | Obrigatório | Esse atributo deve estar presente. Ele fornece informações de provisionamento que este dispositivo P2P espera usar. |
Tempo limite de configuração do OOB | 5 | Obrigatório | Esse atributo deve estar presente. Ele fornece informações sobre quanto tempo esse dispositivo P2P aguardará uma resposta sobre Wi-Fi Direct. |
Formato de atributo de cabeçalho OOB
Nome do campo | Tamanho (octetos) | Valor | Descrição |
---|---|---|---|
Tamanho total dos dados | 2 | Variável | Comprimento de todo o Blob de Dados OOB (incluindo o cabeçalho). |
Comprimento | 2 | Variável | Comprimento dos campos a seguir no cabeçalho OOB. |
Versão | 1 | 0x10 | Valor que identifica a versão deste registro OOB P2P. |
Tipo OOB | 1 | Variável | Valor que identifica o tipo de transação OOB. O valor específico é definido na tabela Tipos de Transação OOB . |
OUI | 0 ou 3 | Variável | OUI específica do fornecedor. Esse é um valor opcional. Só deve estar presente quando o tipo OOB for Específico do Fornecedor. |
Tipo DEI | 0 ou 1 | Variável | Tipo específico do fornecedor. Esse é um valor opcional. Só deve estar presente quando o tipo OOB for Específico do Fornecedor. |
Tipos de transação OOB
Tipo OOB (Hex) | Descrição |
---|---|
0x00 | Dados de provisionamento unidirecional OOB |
0x01 | Dados do ouvinte de provisionamento OOB |
0x02 | Dados do conector de provisionamento OOB |
0x03 | Dados de Reinvoke OOB |
0x04-0xDC | Reservado |
0xDD | Específico do fornecedor |
0xDE-0xFF | Reservado |
Formato de atributo de informações do dispositivo OOB
Nome do campo | Tamanho (octetos) | Valor | Descrição |
---|---|---|---|
ID do atributo | 1 | 1 | Identificando o tipo de atributo OOB P2P. O valor específico é definido na tabela Atributos OOB P2P. |
Comprimento | 2 | Variável | Comprimento dos campos a seguir no atributo . |
Endereço do dispositivo P2P | 6 | Conforme definido em Especificação P2P. | Um identificador usado para referenciar exclusivamente um dispositivo P2P. |
Métodos de configuração | 2 | Conforme definido em Especificação P2P. | Os métodos WSC compatíveis com esse dispositivo. Nota: A ordenação de bytes no campo Métodos de Configuração será big-endian. |
Tipo de dispositivo primário | 8 | Conforme definido em Especificação P2P. | Tipo de dispositivo primário do dispositivo P2P. Contém apenas a parte Dados do atributo Tipo de Dispositivo Primário do WSC (exclui os campos ID do Atributo e Comprimento). Nota: A ordenação de bytes no campo Tipo de Dispositivo Primário deve ser big-endian. |
Bitmap de funcionalidade do dispositivo | 1 | Conforme definido em Especificação P2P. | Um conjunto de parâmetros que indicam os recursos do dispositivo P2P. |
Nome do dispositivo | Variável | Conforme definido em Especificação P2P. | Nome amigável do dispositivo P2P. Contém todo o formato TLV do atributo nome do dispositivo WSC. Nota: A ordenação de bytes no campo Nome do Dispositivo será big-endian. |
Atributos OOB P2P
Tipo OOB (Hex) | Descrição |
---|---|
0x00 | OOB Status |
0x01 | Informações do dispositivo OOB |
0x02 | Informações de provisionamento de OOB |
0x03 | ID do grupo OOB |
0x04 | OOB Listen Channel |
0x05 | Tempo limite de configuração do OOB |
0xDC 0x06 | Reservado |
0xDD | Atributo específico do fornecedor |
0xDE-0xFF | Reservado |
Formato de atributo de informações de provisionamento OOB
Nome do campo | Tamanho (octetos) | Valor | Descrição |
---|---|---|---|
ID do atributo | 1 | 1 | Identificando o tipo de atributo OOB P2P. O valor específico é definido na tabela Atributos OOB P2P . |
Comprimento | 2 | Variável | Comprimento dos campos a seguir no atributo . |
Bitmap de Configurações de Provisionamento | 1 | Variável | Um conjunto de opções de configurações de provisionamento, conforme definido na tabela Configurações de provisionamento . |
Método Config selecionado | 2 | Conforme definido em Especificação P2P. | O Método WSC que foi selecionado por este dispositivo P2P para provisionamento. |
Comprimento do pino | 1 | 0 - 8 | Número de bytes no campo Dados do PIN a seguir. Esse campo definido como 0 não indica dados de PIN adicionais. |
Fixar dados | Variável | n | Esse campo é opcional. Esse campo só estará presente se o campo Comprimento do PIN não for 0 e contiver uma matriz de octetos que representam um PIN a ser usado para provisionamento. |
Configurações de provisionamento
Bits(s) | Informações | Observações |
---|---|---|
0 | Criar novo grupo | O bit Criar Novo Grupo será definido como 1 se essas informações de provisionamento forem para formar um novo grupo com o dispositivo P2P de destino. Caso contrário, essas informações de provisionamento são para ingressar em um grupo existente. |
1 | Impor configuração de tipo de grupo | O bit Impor Configuração de Tipo de Grupo será definido como 1 se o bit Tipo de Grupo Desejado precisar ser imposto; caso contrário, o bit Tipo de Grupo Desejado é simplesmente uma preferência. |
2 | Tipo de grupo desejado | O bit Tipo de Grupo Desejado deverá ser definido como 0 se o Tipo de Grupo Desejado for transitório e será definido como 1 se o Tipo de Grupo Desejado for persistente. |
3 - 7 | Reservado |
Formato de atributo de tempo limite de configuração OOB
Nome do campo | Tamanho (octetos) | Valor | Descrição |
---|---|---|---|
ID do atributo | 1 | 5 | Identificando o tipo de atributo OOB P2P. O valor específico é definido na tabela Atributos OOB P2P . |
Comprimento | 2 | 1 | Comprimento dos campos a seguir no atributo . |
Tempo limite de configuração do ouvinte | 1 | 0 - 255 | Quantidade de tempo que esse dispositivo P2P gastará aguardando Wi-Fi comunicação direta após a transferência de dados OOB, em unidades de 100 milissegundos. (Máximo de 25,5 segundos). |
Registro de emparelhamento de dispositivos Windows
O Registro de Emparelhamento de Dispositivos Windows segue a especificação NDEF. Ele fornece informações adicionais ao Windows sobre como processar a mensagem Seleção de Entrega de Conexão. Os campos TNF e Type devem ser especificados de acordo com a especificação NDEF. Os outros campos abaixo serão listados sequencialmente no campo Carga do registro NDEF.
Nome do campo | Valor | Valor de comprimento | Descrição |
---|---|---|---|
TNF | 0x02 | 3 bits | Formato do campo Tipo a seguir. Tipo de mídia conforme definido no RFC 2046. |
Tipo | 'application/vnd.ms-windows.devicepairing' | bytes 0x28 | Nova cadeia de caracteres de tipo que definimos para esse cenário. |
MajorVersion | 0x1 | 2 bytes | A versão principal é necessária para ser 0x1. |
MinorVersion | 0x0 | 2 bytes | A versão secundária é necessária para ser 0x0. |
Flags | 0x0 ou 0x01 | 4 bytes | Defina como 0x0 para experimentar todos os transportes. Defina como 0x1 para tentar a instalação sequencialmente e parar após o primeiro êxito. A preferência por transportes é indicada por sequência de registros de operadora alternativos. Nota Os valores 0x0002 por meio de 0x0064 são reservados. |
Comprimento do nome amigável do dispositivo | Comprimento do campo nome amigável do dispositivo. | 1 byte | Comprimento do nome amigável do dispositivo. |
Nome amigável do dispositivo | Cadeia de caracteres codificada em UTF-8 até 255 bytes. | Comprimento do nome amigável do dispositivo | Nome amigável para o dispositivo que será mostrado na interface do usuário de consentimento no cliente. |
Wi-Fi direct apenas funciona cerimônia, formato de marca de entrega de conexão estática
Por exemplo, o seguinte é uma implementação típica para uma marca passiva NFC. Isso corresponde a um caso de entrega de conexão estática com um registro de operadora Wi-Fi Direct, uma impressora de compartilhamento de rede e o registro de emparelhamento ms-device.
Esta primeira tabela ilustra o formato da parte de emparelhamento Wi-Fi Direct da marca.
Deslocamento | Conteúdo | Comprimento | Explicação |
---|---|---|---|
0 | 0x91 | 1 | Cabeçalho de registro NDEF: MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b |
1 | 0x02 | 1 | Comprimento do tipo de registro: 2 octetos |
2 | 0x0A | 1 | Comprimento do tipo de registro: 10 octetos |
3 | 0x48 0x73 | 2 | Tipo de registro: "Hs" |
5 | 0x12 | 1 | Número da versão: Major = 1, Minor = 2 |
6 | 0xD1 | 1 | Cabeçalho de registro NDEF: MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b |
7 | 0x02 | 1 | Comprimento do tipo de registro: 2 octetos |
8 | 0x04 | 1 | Comprimento da carga: 4 octetos |
9 | 0x61 0x63 | 2 | Tipo de registro: "ac" |
11 | 0x01 | 1 | Sinalizadores de transportadora: CPS=1, "ativo" |
12 | 0x01 | 1 | Comprimento de referência de dados da operadora: 1 octeto |
13 | 0x30 | 1 | Referência de dados da operadora: "0" |
14 | 0x00 | 1 | Contagem de referência de dados auxiliares: 0 |
15 | 0x1A | 1 | Cabeçalho de registro NDEF: MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b |
16 | 0x22 | 1 | Comprimento do nome do tipo de registro: 34 octetos |
17 | 0x3E | 1 | Comprimento da carga: 62 octetos |
18 | 0x01 | 1 | Comprimento da ID: 1 octeto |
19 | 0x61 0x70 0x70 0x6C 0x69 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2F 0x76 0x6E 0x64 0x2E 0x6D 0x73 0x2D 0x77 0x69 0x6E 0x64 0x6F 0x77 0x73 0x2E 0x77 0x66 0x64 0x2E 0x6F 0x6F 0x62 |
34 | Nome do Tipo de Registro: 'application/vnd.ms-windows.wfd.oob' |
53 | 0x30 | 1 | Id: "0" |
54 | 0x3E 0x00 | 2 | Wi-Fi comprimento de dados OOB Direto: 62 octetos. O comprimento é lido como um curto sem sinal e é inclusivo de todo o blob. Inclui octetos de 2 comprimentos. Esse valor deve ser armazenado no formato little-endian. |
56 | 0x02, 0x00 | 2 | Comprimento do cabeçalho: 2 octetos |
58 | 0x10 | 1 | Versão: 0x10 |
59 | 0x00 | 1 | Tipo de OOB: 0x00 (unidirecional) |
60 | 0x01 | 1 | Atributo: 0x01 (atributo Informações do dispositivo) |
61 | 0x22 0x00 | 2 | Comprimento das informações do dispositivo: 34 octetos |
63 | 0x01 0x23 0x34 0xab 0xcd 0xef |
6 | Wi-Fi endereço MAC do dispositivo P2P Direto: "01:23:34:ab:cd:ef" |
69 | 0x01 0x00 | 2 | Tipo de configuração |
71 | 0x00 0x01 0x00 0x50 0xF2 0x00 0x00 0x00 |
8 | Tipo de dispositivo primário |
79 | 0x12 | 1 | Funcionalidade |
80 | 0x10 0x11 | 2 | Atributo: Nome do dispositivo |
82 | 0x00 0x0d | 2 | Comprimento do nome do dispositivo: 13 octetos |
84 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x4d 0x6f 0x75 0x73 0x65 |
13 | Nome amigável do dispositivo em UTF-8. Observe que não há nenhum caractere de terminação NULL e que UTF-8 pode ser um ou dois bytes por caractere. Este exemplo diz "Contoso Mouse" |
97 | 0x02 | 1 | Atributo: informações de provisionamento |
98 | 0x0c 0x00 | 2 | Comprimento das informações de provisionamento: 12 octetos |
100 | 0x07 | 1 | Configurando bitmap: novo grupo, impor persistente |
101 | 0x01 0x00 | 2 | Método Config: entrada de pino |
103 | 0x08 | 1 | Comprimento do pino: 8 octetos |
104 | 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 |
8 | Fixar: "12345678" |
112 | 0x05 | 1 | Atributo: informações de tempo limite de configuração |
113 | 0x01 0x00 | 2 | Tempo limite de configuração |
115 | 0x64 | 1 | 10 segundos, em unidades de 100 milissegundos |
Esta segunda tabela ilustra o formato da parte de emparelhamento da impressora de rede da marca.
Deslocamento | Conteúdo | Comprimento | Explicação |
---|---|---|---|
116 | 0x12 | 1 | Cabeçalho do registro NDEF: MB=0b,ME=0b, CF=0b, SR=1b, IL=0b,TNF=010b |
117 | 0x29 | 1 | Campo comprimento do tipo |
118 | 0x19 | 1 | Campo comprimento do conteúdo |
119 | 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x6e 0x77 0x73 0x2e 0x6e 0x77 0x70 0x72 0x69 0x6e 0x74 0x69 0x6e 0x67 0x2e 0x6f 0x6f 0x6e 0x74 0x69 0x6e 0x62 0x62 0x62 0x62 |
41 | Nome do tipo de registro: "application/vnd.ms-windows.nwprinting.oob" |
160 | 0x5c 0x5c 0x70 0x72 0x69 0x6e 0x74 0x53 0x65 0x72 0x76 0x65 0x72 0x5c 0x70 0x72 0x69 0x6e 0x74 0x65 0x72 0x4e 0x61 0x6d 0x65 |
25 | Nome da impressora: "\printServer\printerName" |
Esta terceira tabela ilustra o formato da parte de emparelhamento MS-Device da marca.
Deslocamento | Conteúdo | Comprimento | Explicação |
---|---|---|---|
185 | 0x52 | 1 | Cabeçalho do registro NDEF: MB=0b, ME=1b, CF=0b, SR=1b, IL=0b,TNF=010b |
186 | 0x28 | 1 | Campo comprimento do tipo |
187 | 0x15 | 1 | Campo de comprimento da carga |
188 | 0x61 0x70 0x70 0x6c 0x69 0x63 0x61 0x74 0x69 0x6f 0x6e 0x2f 0x76 0x6e 0x64 0x2e 0x6d 0x73 0x2d 0x77 0x69 0x6e 0x64 0x6f 0x77 0x73 0x2e 0x64 0x65 0x76 0x69 0x63 0x65 0x70 0x61 0x69 0x72 0x69 0x6E 0x67 |
40 | Nome do tipo de registro: "application/vnd.ms-windows.devicepairing" |
228 | 0x00 0x01 0x00 0x00 |
4 | Versão: Major = 1, Minor = 0 |
232 | 0x00 | 1 | Sinalizadores: defina como 0, experimente todos os transportes |
233 | 0x0F | 1 | Comprimento do nome amigável do dispositivo |
234 | 0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20 0x50 0x72 0x69 0x6e 0x74 0x65 0x72 |
15 | O nome amigável do dispositivo exibido para o usuário: "Impressora Contoso" |
Wi-Fi requisitos de conectividade direta
Dispositivos e clientes devem ter o rádio Wi-Fi ativado. Caso contrário, o emparelhamento falhará.
Tratamento de casos de borda
Se um usuário emparelhou um dispositivo anteriormente, mas remove manualmente o dispositivo da lista de dispositivos, tocar novamente resultará em uma tentativa de instalar ou emparelhar.
Se um usuário entrar no intervalo de atuação, mas, de repente, sair antes que as informações de OOB (fora de banda) sejam transferidas, o dispositivo poderá se tornar conectável, mas o computador não procurará o dispositivo. Nesse caso, não haverá nenhuma interface do usuário de consentimento do computador e o usuário precisará tocar novamente. Se o dispositivo já estiver detectável quando for tocado novamente, ele deverá permanecer detectável e deve redefinir o período de tempo limite.
Para dispositivos Wi-Fi Direct, se o Wi-Fi rádio desativar, a instalação não será bem-sucedida.
Se um usuário tocar em dois dispositivos aproximadamente ao mesmo tempo, somente o emparelhamento para as primeiras informações OOB recebidas será tentado.
Qualquer tentativa de tocar no dispositivo em um sistema que executa um sistema operacional que não dá suporte a Toque para Instalação ou Toque para Reconectar pode resultar na entrada do dispositivo no modo conectável, mas o emparelhamento não ocorrerá. Os usuários precisarão usar uma interface do usuário de emparelhamento fornecida para Bluetooth e usar o botão de emparelhamento para iniciar o emparelhamento.