Wi-Fi Implementierung der direkten Kopplung

Dieser Abschnitt enthält Entwurfsrichtlinien und Anforderungen für ein Peripheriegerät für die Teilnahme an den Anwendungsfällen Tap and Setup und Tap and Reconnect.

Hinweis

Die in diesem Thema beschriebene Kopplungsimplementierung wird derzeit in Windows 8.1 nur für die Kopplung mit Druckergeräten unterstützt.

Windows 10 und höher unterstützt NFC zum Wi-Fi der Übergabe der direkten statischen Verbindung über den Wi-Fi P2P Carrier Configuration Record der Wi-Fi Alliance. Weitere Informationen finden Sie unter Wi-Fi Alliance.

Direkte Gerätekopplung Wi-Fi Peripheriegeräte

Während des Tippens empfängt NFP Kopplungsinformationen vom verbindenden Gerät. NFP übergibt die Kopplungsinformationen an Windows. Wi-Fi Direct-Geräte folgen dem Wi-Fi Alliance Out-Of-Band-Kopplungsverfahren (OOB) und den Empfehlungen des NFC-Forums. Windows basiert auf einer proprietären Kopplungsnachricht, wie unten definiert.

Windows fordert den Benutzer zur Zustimmung auf, und wenn dies erteilt wird, versucht Windows, eine Verbindung mit jeder der Adressen herzustellen, bis sie erfolgreich ist. Es gibt keine weitere Interaktion zwischen einem NFP-Anbieter auf dem PC und dem verbindenden Gerät.

Bei Verwendung von NFC als Beispiel erfolgt die unidirektionale Installation, indem die Kopplungsinformationen in einem statischen oder passiven NFC-Tag gespeichert werden (auch ein aktives NFC-Tag im statischen Emulationsmodus kann verwendet werden). Windows abonniert diese Kopplungsinformationen. Ein NFC-fähiger NFP-Anbieter auf dem PC empfängt die Verbindungsinformationen vom Tag und übergibt diese an Windows als Abonnenten. Nach Erhalt der Verbindungsinformationen führt Windows die tatsächliche Installation des Geräts in-Band mit geräteklassenspezifischen Techniken durch.

Interoperabilitätsanforderungen

Um die Interoperabilität zwischen NFP-Anbietern zu gewährleisten, sollten die Kopplungsinformationen in einem anbieterspezifischen Nachrichtenformat gekapselt werden.

Wie an anderer Stelle in diesem Dokument beschrieben, gibt es keine spezifischen Anforderungen für Näherungstechnologien außer für NFC-fähige NFP-Anbieter.

Windows erfordert NFC-fähige NFP-Anbieter, um einen bestimmten mechanismus zu unterstützen, der im NFC-Forum definiert ist, um die Wi-Fi Direct OOB-Kopplungsinformationen für unidirektionale Kopplungen zu übermitteln. Die NDEF-Nachricht enthält einen ersten Datensatz mit dem TNF-Feldwert 0x01 und einem TYPE-Feld, das gleich "Hs" ist, sowie einen alternativen Carrierdatensatz, der auf einen Wi-Fi Direct Carrier Configuration Record verweist. Bei dieser Methode wird nur die NUTZLAST des NDEF-Datensatzes verwendet.

Unidirektionale Kopplung mithilfe von NFC für Wi-Fi Direct

In diesem Abschnitt finden Sie weitere Informationen zur Zusammenarbeit von NFC, Wi-Fi Direct und Windows, um die unidirektionale drahtlose Kopplung für Wi-Fi Direct-Geräte wie Drucker zu unterstützen.

NFP-Anbieterverweise

Wi-Fi direkte Kopplung erfolgt mithilfe eines standardisierten NFC-Forums für die Verbindungshandover-Nachrichtentypauswahl. Die folgende Grafik bietet eine Übersicht darüber, wie eine Connection Handover Select-Nachricht für Wi-Fi direkte Gerätekopplung angewendet wird, insbesondere für die NDEF-Datensätze 3 und 4. Die Übergabeauswahl-Nachricht beschreibt einen oder mehrere Datensätze "ac" oder "Alternate Carrier". Diese Datensätze folgen dem Übergabeauswahldatensatz sequenziell und haben jeweils einen klar definierten Typ. Schließlich enthält die Nachricht einen von Microsoft definierten Gerätekopplungsdatensatz, der Windows Informationen zur Verarbeitung des Kopplungsvorgangs bereitstellt.

Verbindungsübergabe wählen Sie die Nachricht aus.

Wi-Fi Meldung zur direkten Gerätekopplung

In den folgenden Beispielanwendungsfällen werden NFC-Tags vom Typ 2 als veranschaulichendes Beispiel verwendet. Wenn ein anderer NFC-Tagtyp verwendet werden muss, muss die NDEF-Nachricht gemäß dieser Tagdefinition ordnungsgemäß gekapselt werden.

Feld Wert Beschreibung
TNF 0x02 Format des folgenden Felds Typ. Medientyp gemäß RFC 2046.
Typ "application/vnd.ms-windows.wfd.oob" Neue Typzeichenfolge, die wir für dieses Szenario definieren.
Größe der OOB-Daten WORD Bis zu 64 KB OOB-Daten werden unterstützt.
Wi-Fi Direct OOB-Daten <Blob der Größe, die im vorherigen Feld angegeben ist> Wi-Fi Direct OOB-Daten wie unten definiert.

Wi-Fi Direct OOB-Format

In der folgenden Tabelle wird das Format der WiFi Direct-OOB-Daten beschrieben. Unidirektionale OOB-Daten können von jedem unidirektionalen P2P-OOB-Gerät übertragen werden.

Attribute Attribut-ID Erforderlich/Optional Hinweis
OOB-Header

Siehe OOB Header-Attributformattabelle.
Erforderlich Das OOB-Header-Attribut muss im P2P-OOB-Datenblob vorhanden sein und der Wert des OOB-Typs auf "OOB Unidirektionale Bereitstellungsdaten" festgelegt sein.
OOB-Geräteinformationen

Siehe OOB Device Info-Attributformattabelle.
1 Erforderlich Dieses Attribut muss vorhanden sein. Es enthält Informationen zu diesem P2P-Gerät.
OOB-Bereitstellungsinformationen 2 Erforderlich Dieses Attribut muss vorhanden sein. Es stellt Bereitstellungsinformationen bereit, die dieses P2P-Gerät voraussichtlich verwenden wird.
OOB-Konfigurationstimeout 5 Erforderlich Dieses Attribut muss vorhanden sein. Es enthält Informationen dazu, wie lange dieses P2P-Gerät auf eine Antwort über Wi-Fi Direct wartet.

OOB-Header-Attributformat

Feldname Größe (Oktette) Wert Beschreibung
Gesamtdatenlänge 2 Variable Länge des gesamten OOB-Datenblobs (einschließlich Header).
Länge 2 Variable Länge der folgenden Felder im OOB-Header.
Version 1 0x10 Wert, der die Version dieses P2P-OOB-Eintrags angibt.
OOB-Typ 1 Variable Wert, der den Typ der OOB-Transaktion identifiziert. Der spezifische Wert wird in der Tabelle OOB-Transaktionstypen definiert.
OUI 0 oder 3 Variable Anbieterspezifische OUI. Diese Wert ist optional. Darf nur vorhanden sein, wenn der OOB-Typ anbieterspezifisch ist.
OUI-Typ 0 oder 1 Variable Anbieterspezifischer Typ. Diese Wert ist optional. Darf nur vorhanden sein, wenn der OOB-Typ anbieterspezifisch ist.

OOB-Transaktionstypen

OOB-Typ (Hex) BESCHREIBUNG
0x00 Unidirektionale OOB-Bereitstellungsdaten
0x01 OOB-Bereitstellungslistenerdaten
0x02 OOB-Bereitstellungsconnectordaten
0x03 OOB Reinvoke Data
0x04-0xDC Reserviert
0xDD Herstellerspezifisch
0xDE-0xFF Reserviert

OOB-Geräteinformationsattributformat

Feldname Größe (Oktette) Wert Beschreibung
Attribut-ID 1 1 Identifizieren des Typs des P2P-OOB-Attributs. Der spezifische Wert wird in der Tabelle P2P-OOB-Attribute definiert.
Länge 2 Variable Länge der folgenden Felder im Attribut.
P2P-Geräteadresse 6 Wie in P2P-Spezifikation definiert. Ein Bezeichner, der verwendet wird, um eindeutig auf ein P2P-Gerät zu verweisen.
Konfigurationsmethoden 2 Wie in P2P-Spezifikation definiert. Die von diesem Gerät unterstützten WSC-Methoden.

Hinweis: Die Bytereihenfolge im Feld Config Methods muss big-endian sein.
Primärer Gerätetyp 8 Wie in P2P-Spezifikation definiert. Primärer Gerätetyp des P2P-Geräts. Enthält nur den Data-Teil des WSC-Attributs "Primärer Gerätetyp" (ohne Die Felder Attribut-ID und Länge).

Hinweis: Die Bytereihenfolge im Feld Primärer Gerätetyp muss big-endian sein.
Bitmap "Gerätefunktion" 1 Wie in P2P-Spezifikation definiert. Eine Reihe von Parametern, die die Funktionen des P2P-Geräts angeben.
Gerätename Variable Wie in P2P-Spezifikation definiert. Anzeigename des P2P-Geräts. Enthält das gesamte TLV-Format des WSC Device Name-Attributs.

Hinweis: Die Bytereihenfolge im Feld Gerätename muss big-endian sein.

P2P-OOB-Attribute

OOB-Typ (Hex) Beschreibung
0x00 OOB-Status
0x01 OOB-Geräteinformationen
0x02 OOB-Bereitstellungsinformationen
0x03 OOB-Gruppen-ID
0x04 OOB-Listenkanal
0x05 OOB-Konfigurationstimeout
0x06-0xDC Reserviert
0xDD Anbieterspezifisches Attribut
0xDE-0xFF Reserviert

Format des OOB-Bereitstellungsinformationsattributs

Feldname Größe (Oktette) Wert Beschreibung
Attribut-ID 1 1 Identifizieren des Typs des P2P-OOB-Attributs. Der spezifische Wert wird in der Tabelle "P2P OOB Attributes" definiert.
Länge 2 Variable Länge der folgenden Felder im Attribut.
Bitmap für Bereitstellungseinstellungen 1 Variable Eine Reihe von Optionen für Bereitstellungseinstellungen, wie in der Tabelle "Bereitstellungseinstellungen " definiert.
Ausgewählte Config-Methode 2 Wie in P2P-Spezifikation definiert. Die WSC-Methode, die von diesem P2P-Gerät für die Bereitstellung ausgewählt wurde.
Pinlänge 1 0 - 8 Anzahl der Bytes im folgenden PIN-Datenfeld. Dieses auf 0 festgelegte Feld gibt keine zusätzlichen PIN-Daten an.
Anheften von Daten Variable n Dieses Feld ist optional. Dieses Feld ist nur vorhanden, wenn das Feld PIN-Länge nicht 0 ist und ein Array von Oktetten enthält, die eine PIN darstellen, die für die Bereitstellung verwendet werden soll.

Bereitstellungseinstellungen

Bits Information Hinweise
0 Erstellen einer neuen Gruppe Das Bit "Neue Gruppe erstellen" ist auf 1 festgelegt, wenn diese Bereitstellungsinformationen für die Bildung einer neuen Gruppe mit dem P2P-Zielgerät verwendet werden. Andernfalls werden diese Bereitstellungsinformationen für den Beitritt zu einer vorhandenen Gruppe verwendet.
1 Gruppentypeinstellung erzwingen Das Bit "Gruppentypeinstellung erzwingen" ist auf 1 festgelegt, wenn das Bit "Desired Group Type" erzwungen werden muss. Andernfalls ist das Bit "Desired Group Type" einfach eine Einstellung.
2 Gewünschter Gruppentyp Das Bit für den gewünschten Gruppentyp wird auf 0 festgelegt, wenn der typ der gewünschten Gruppe vorübergehend ist, und auf 1, wenn der gewünschte Gruppentyp persistent ist.
3 - 7 Reserviert  

OOB-Konfigurationstimeout-Attributformat

Feldname Größe (Oktette) Wert Beschreibung
Attribut-ID 1 5 Identifizieren des Typs des P2P-OOB-Attributs. Der spezifische Wert wird in der Tabelle "P2P OOB Attributes" definiert.
Länge 2 1 Länge der folgenden Felder im Attribut.
Timeout für die Listenerkonfiguration 1 0–255 Die Zeit, die dieses P2P-Gerät nach der OOB-Datenübertragung auf Wi-Fi direkte Kommunikation in Einheiten von 100 Millisekunden verbringt. (Maximal 25,5 Sekunden).

Windows-Gerätekopplungsdatensatz

Der Windows-Gerätekopplungsdatensatz folgt der NDEF-Spezifikation. Es stellt Windows zusätzliche Informationen zum Verarbeiten der Meldung Verbindungsübergabe auswählen bereit. Die Felder TNF und Type müssen gemäß der NDEF-Spezifikation angegeben werden. Die anderen folgenden Felder werden sequenziell im Feld Nutzlast des NDEF-Eintrags aufgeführt.

Feldname Wert Längenwert Beschreibung
TNF 0x02 3 Bits Format des folgenden Felds Typ. Medientyp, wie in RFC 2046 definiert.
Typ "application/vnd.ms-windows.devicepairing" 0x28 Bytes Neue Typzeichenfolge, die wir für dieses Szenario definieren.
MajorVersion 0x1 2 Bytes Die Hauptversion muss 0x1 sein.
MinorVersion 0x0 2 Bytes Die Nebenversion muss 0x0 sein.
Flags 0x0 oder 0x01 4 Byte Legen Sie auf 0x0 fest, um alle Transporte auszuprobieren.

Legen Sie auf 0x1 fest, um die Installation sequenziell zu versuchen und nach dem ersten Erfolg zu beenden. Die Präferenz für Transporte wird durch die Sequenz von alternativen Trägerdatensätzen angegeben.

Hinweis Werte, die bis 0x0064 0x0002, sind reserviert.
Länge des Anzeigenamens des Geräts Länge des Anzeigenamenfelds des Geräts. 1 Byte Länge des Anzeigenamens des Geräts.
Anzeigename des Geräts UTF-8-codierte Zeichenfolge bis zu 255 Bytes. Länge des Anzeigenamens des Geräts Anzeigename für das Gerät, der in der Zustimmungs-Ui auf dem Client angezeigt wird.

Wi-Fi Direct funktioniert nur Zeremonie, Statisches Verbindungsübergabetagformat

Im Folgenden finden Sie beispielsweise eine typische Implementierung für ein passives NFC-Tag. Dies entspricht einem statischen Verbindungsübergabefall mit einem Wi-Fi Direct-Carrierdatensatz, einem Netzwerkfreigabedrucker und dem ms-device-Kopplungsdatensatz.

Diese erste Tabelle veranschaulicht das Format des Wi-Fi Direkten Kopplungsteils des Tags.

Offset Inhalt Länge Erklärung
0 0x91 1 NDEF-Datensatzheader:

MB=1b, ME=0b, CF=0b, SR=1b, IL=0b, TNF=001b
1 0x02 1 Länge des Datensatztyps: 2 Oktette
2 0x0A 1 Länge des Datensatztyps: 10 Oktette
3 0x48 0x73 2 Datensatztyp: "Hs"
5 0x12 1 Versionsnummer: Major = 1, Minor = 2
6 0xD1 1 NDEF-Datensatzheader:

MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b
7 0x02 1 Länge des Datensatztyps: 2 Oktette
8 0x04 1 Nutzlastlänge: 4 Oktette
9 0x61 0x63 2 Datensatztyp: "ac"
11 0x01 1 Carrier Flags: CPS=1, "aktiv"
12 0x01 1 Referenzlänge für Carrierdaten: 1 Oktett
13 0x30 1 Referenz zu Carrierdaten: "0"
14 0x00 1 Anzahl der zusätzlichen Datenverweis: 0
15 0x1A 1 NDEF-Datensatzheader:

MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b
16 0x22 1 Länge des Datensatztypnamens: 34 Oktette
17 0x3E 1 Nutzlastlänge: 62 Oktette
18 0x01 1 ID-Länge: 1 Oktett
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 Name des Datensatztyps: "application/vnd.ms-windows.wfd.oob"
53 0x30 1 ID: "0"
54 0x3E 0x00 2 Wi-Fi Direct OOB-Datenlänge: 62 Oktette. Die Länge wird als kurz ohne Vorzeichen gelesen und ist inklusive des gesamten Blobs. Enthält 2 Längen oktette. Dieser Wert muss im Little-Endian-Format gespeichert werden.
56 0x02, 0x00 2 Headerlänge: 2 Oktette
58 0x10 1 Version: 0x10
59 0x00 1 OOB-Typ: 0x00 (unidirektional)
60 0x01 1 Attribut: 0x01 (Geräteinformationsattribut)
61 0x22 0x00 2 Länge der Geräteinformationen: 34 Oktette
63

0x01 0x23 0x34 0xab 0xcd 0xef
6 Wi-Fi MAC-Adresse des Direct P2P-Geräts: "01:23:34:ab:cd:ef"
69 0x01 0x00 2 Konfigurationstyp
71

0x00 0x01 0x00 0x50 0xF2 0x00 0x00 0x00
8 Primärer Gerätetyp
79 0x12 1 Funktion
80 0x10 0x11 2 Attribut: Gerätename
82 0x00 0x0d 2 Länge des Gerätenamens: 13 Oktette
84

0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20

0x4d 0x6f 0x75 0x73

0x65
13 Anzeigename des Geräts in UTF-8. Beachten Sie, dass kein NULL-Abbruchzeichen vorhanden ist und UTF-8 ein oder zwei Bytes pro Zeichen sein kann. In diesem Beispiel wird "Contoso Mouse" gelesen.
97 0x02 1 Attribut: Bereitstellungsinformationen
98 0x0c 0x00 2 Länge der Bereitstellungsinformationen: 12 Oktette
100 0x07 1 Festlegen von Bitmap: neue Gruppe, persistent erzwingen
101 0x01 0x00 2 Config-Methode: Pin-Eintrag
103 0x08 1 Stiftlänge: 8 Oktette
104

0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
8 Anheften: "12345678"
112 0x05 1 Attribut: Konfigurationstimeoutinformationen
113 0x01 0x00 2 Länge des Konfigurationstimeouts
115 0x64 1 10 Sekunden in 100 Millisekundeneinheiten

In dieser zweiten Tabelle wird das Format des Netzwerkdruckerpaarungsteils des Tags veranschaulicht.

Offset Inhalt Länge Erklärung
116 0x12 1 NDEF-Datensatzheader:
MB=0b,ME=0b, CF=0b, SR=1b, IL=0b,TNF=010b
117 0x29 1 Typlängenfeld
118 0x19 1 Feld "Nutzlastlänge"
119

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 0x6e



0x77 0x70 0x72 0x69 0x6e 0x74 0x69 0x6e



0x67 0x2e 0x6f 0x6f 0x62

41 Name des Datensatztyps: "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 Druckername: "\printServer\printerName"

Diese dritte Tabelle veranschaulicht das Format des MS-Device Kopplungsteils des Tags.

Offset Inhalt Länge Erklärung
185 0x52 1 NDEF-Datensatzheader:

MB=0b, ME=1b, CF=0b, SR=1b, IL=0b,TNF=010b
186 0x28 1 Typlängenfeld
187 0x15 1 Feld "Nutzlastlänge"
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 Name des Datensatztyps: "application/vnd.ms-windows.devicepairing"
228

0x00 0x01 0x00 0x00
4 Version: Major = 1, Minor = 0
232 0x00 1 Flags: Auf 0 festgelegt, alle Transporte ausprobieren
233 0x0F 1 Länge des Anzeigenamens des Geräts
234

0x43 0x6f 0x6e 0x74 0x6f 0x73 0x6f 0x20

0x50 0x72 0x69 0x6e

0x74 0x65 0x72
15 Der Anzeigename des Geräts, der dem Benutzer angezeigt wird: "Contoso Printer"

anforderungen für Wi-Fi direct connectivity

Auf Geräten und Clients muss das Wi-Fi-Funkgerät aktiviert sein. Andernfalls schlägt die Kopplung fehl.

Behandeln von Edgefällen

Wenn ein Benutzer zuvor ein Gerät gekoppelt hat, das Gerät dann aber manuell aus der Geräteliste entfernt, führt das erneute Tippen zu einem Installations- oder Kopplungsversuch.

Wenn ein Benutzer in den Bereich der Betätigung eintritt, aber dann plötzlich verlässt, bevor die Out-of-Band-Informationen (OOB) übertragen werden, kann das Gerät angeschlossen werden, aber der PC sucht nicht nach dem Gerät. In diesem Fall gibt es keine Zustimmungs-Ui vom PC, und der Benutzer muss erneut tippen. Wenn das Gerät bereits erkannt werden kann, wenn es erneut angetippt wird, sollte es auffindbar bleiben und den Timeoutzeitraum zurücksetzen.

Bei Wi-Fi Direct-Geräten ist die Installation nicht erfolgreich, wenn das Wi-Fi-Funkgerät ausgeschaltet wird.

Wenn ein Benutzer ungefähr zur gleichen Zeit auf zwei Geräte tippt, wird nur die Kopplung für die ersten empfangenen OOB-Informationen versucht.

Jeder Versuch, auf das Gerät auf einem System zu tippen, auf dem ein Betriebssystem ausgeführt wird, das tap to setup oder Tap to Reconnect nicht unterstützt, kann dazu führen, dass das Gerät in den verbindungsfähigen Modus wechselt, aber die Kopplung erfolgt nicht. Benutzer müssen eine für Bluetooth bereitgestellte Kopplungsbenutzeroberfläche verwenden und die Kopplungsschaltfläche verwenden, um die Kopplung zu initiieren.