Freigeben über


Wi-Fi direkte Kopplungsimplementierung

Dieser Abschnitt enthält Entwurfsrichtlinien und Anforderungen für ein Peripheriegerät, um an den Anwendungsfällen "Tippen und Einrichten" und "Tippen und Erneut verbinden" teilzunehmen.

Hinweis

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

Windows 10 und höher unterstützt NFC zur Wi-Fi direkten statischen Verbindungsübergabe über die Wi-Fi Allianz-Wi-Fi P2P Carrier Configuration Record. Weitere Informationen finden Sie unter Wi-Fi Alliance.

Peripheriegerät Wi-Fi direkte Gerätekopplung

Während des Tippens empfängt NFP Kopplungsinformationen vom verbindungsgerät. NFP übergibt die Kopplungsinformationen an Windows. Wi-Fi Direct-Geräte folgen dem Kopplungsverfahren Wi-Fi Alliance Out-Of-Band (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 die Zustimmung gegeben wird, versucht Windows, nacheinander eine Verbindung mit den einzelnen Adressen herzustellen, bis eine erfolgreich ist. Es gibt keine weitere Interaktion zwischen einem NFP-Anbieter auf dem PC und dem Verbindungsgerät.

Die unidirektionale Installation mit NFC als Beispiel wird erreicht, indem die Pairing-Informationen in einem statischen oder passiven NFC-Tag gespeichert werden. Ein aktives NFC-Tag im statischen Emulationsmodus kann ebenfalls verwendet werden. Windows abonniert diese Kopplungsinformationen. Ein NFC-fähiger NFP-Anbieter auf dem PC empfängt die Verbindungsinformationen vom Tag und übergibt diese als Abonnent an Windows. Nach Erhalt der Verbindungsdaten führt Windows die tatsächliche Installation des Geräts in-band mithilfe von gerätespezifischen Techniken durch.

Anforderungen an die Interoperabilität

Um die Interoperabilität über NFP-Anbieter hinweg sicherzustellen, 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 vom NFC Forum definierten Mechanismus zur Übermittlung der Wi-Fi Direct OOB-Kopplungsinformationen für unidirektionale Kopplung zu unterstützen. Die NDEF-Nachricht enthält einen ersten Datensatz mit einem TNF-Feldwert von 0x01 und einem TYP-Feld, das "Hs" entspricht, und einen alternativen Netzbetreiberdatensatz, der auf einen Wi-Fi Direct Carrier Configuration Record verweist. In dieser Methode wird nur die NUTZLAST des NDEF-Eintrags verwendet.

Unidirektionale Kopplung mit NFC für Wi-Fi Direct

Dieser Abschnitt enthält weitere Informationen dazu, wie NFC, Wi-Fi Direct und Windows zusammenarbeiten, um unidirektionale drahtlose Kopplung für Wi-Fi Direct-Geräte wie Drucker zu unterstützen.

NFP-Anbieterreferenzen

Wi-Fi direkte Kopplung erfolgt über ein standardisiertes NFC-Forum für die Auswahl von Nachrichtentypen für die Verbindung. Die folgende Grafik gibt einen Überblick darüber, wie eine Connection Handover Select-Nachricht für das Direct Device Pairing mit Wi-Fi angewendet wird, insbesondere für die NDEF-Datensätze 3 und 4. Die Nachricht "Handover-Auswahl" beschreibt einen oder mehrere Datensätze "ac" oder "Alternate Carrier". Diese Datensätze folgen dem Handover Select-Datensatz sequenziell und verfügen jeweils über einen gut definierten Typ. Schließlich enthält die Nachricht einen von Microsoft definierten Gerätekopplungsdatensatz, der Windows Informationen zum Verarbeiten des Kopplungsvorgangs bereitstellt.

Nachricht für die Verbindungsübergabe auswählen.

Wi-Fi Nachricht für die direkte Gerätekopplung

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

Feld Wert BESCHREIBUNG
TNF 0x02 Format des folgenden Felds "Typ". Medientyp gemäß definition in RFC 2046.
Typ "application/vnd.ms-windows.wfd.oob" Neue Typzeichenfolge, die wir für dieses Szenario definieren.
Größe von OOB-Daten WORD Unterstützt bis zu 64 KB OOB-Daten.
Wi-Fi Direct OOB-Daten <Blob mit der Größe, die durch das vorherige Feld angegeben wird> 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-Kopfzeile

siehe OOB-Attributformattabelle.
Nicht verfügbar Erforderlich Das OOB-Header-Attribut muss im P2P-OOB-Daten-Blob vorhanden sein und den OOB-Typwert auf "OOB Unidirectional Provisioning Data" festgelegt haben.
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 nutzen wird.
OOB-Konfigurationstimeout 5 Erforderlich Dieses Attribut muss vorhanden sein. Es enthält Informationen darüber, wie lange dieses P2P-Gerät auf eine Antwort über Wi-Fi Direct wartet.

das OOB-Header-Attributformat

Feldname Größe (Oktett) Wert BESCHREIBUNG
Gesamtdatenlänge 2 Variable Länge des gesamten OOB-Daten-Blobs (einschließlich Kopfzeile).
Länge 2 Variable Länge der folgenden Felder in der OOB-Kopfzeile.
Version 1 0x10 Wert, der die Version dieses P2P-OOB-Eintrags identifiziert.
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. Dies ist ein optionaler Wert. Darf nur vorhanden sein, wenn der OOB-Typ anbieterspezifisch ist.
OUI-Typ 0 oder 1 Variable Anbieterspezifischer Typ. Dies ist ein optionaler Wert. Darf nur vorhanden sein, wenn der OOB-Typ anbieterspezifisch ist.

OOB-Transaktionstypen

OOB-Typ (Hex) BESCHREIBUNG
0x00 OOB Unidirektionale Bereitstellungsdaten
0x01 OOB-Bereitstellungslistenerdaten
0x02 OOB-Bereitstellungs-Connectordaten
0x03 OOB-Daten erneut aufrufen
0x04-0xDC Reserviert
0xDD Herstellerspezifisch
0xDE-0xFF Reserviert

OOB-Geräteinformations-Attributformat

Feldname Größe (Oktett) 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.
P2P-Geräteadresse 6 Wie in der P2P-Spezifikation definiert. Ein Bezeichner, der verwendet wird, um eindeutig auf ein P2P-Gerät zu verweisen.
Konfigurationsmethoden 2 Wie in der P2P-Spezifikation definiert. Die von diesem Gerät unterstützten WSC-Methoden.

Anmerkung: Byte-Sortierung innerhalb des Felds "Konfigurationsmethoden" muss "big-endian" sein.
Primärer Gerätetyp 8 Wie in der P2P-Spezifikation definiert. Primärer Gerätetyp des P2P-Geräts. Enthält nur den Datenteil des WSC Primary Device Type-Attributs (schließt Attribut-ID und Längenfelder aus).

Anmerkung: Die Byte-Sortierung innerhalb des Felds "Primärer Gerätetyp" muss "big-endian" sein.
Gerätefähigkeits-Bitmap 1 Wie in der P2P-Spezifikation definiert. Eine Reihe von Parametern, die die Funktionen des P2P-Geräts angeben.
Gerätename Variable Wie in der P2P-Spezifikation definiert. Anzeigename des P2P-Geräts. Enthält das gesamte WSC-Gerätenamen-Attribut im TLV-Format.

Anmerkung: Die Byte-Reihenfolge innerhalb des Felds "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

OOB-Bereitstellungsinformationen-Attributformat

Feldname Größe (Oktett) 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 im Bereitstellungseinstellungen-Tabelle definiert.
Ausgewählte Konfigurationsmethode 2 Wie in der 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. Wird dieses Feld auf 0 festgelegt, bedeutet dies, dass keine zusätzlichen PIN-Daten vorhanden sind.
Daten anheften 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(s) Informationen Hinweise
0 Neue Gruppe erstellen Das Bit "Neue Gruppe erstellen" ist auf 1 festgelegt, wenn diese Bereitstellungsinformationen zum Erstellen einer neuen Gruppe mit dem Ziel-P2P-Gerät dienen. Ansonsten sind diese Bereitstellungsinformationen für den Beitritt zu einer vorhandenen Gruppe vorgesehen.
1 Gruppentyp-Einstellung erzwingen Der Durchsetzen-des-Gruppentyp-Einstellbits wird auf 1 gesetzt, wenn das gewünschte Gruppenbit erzwungen werden muss, andernfalls ist der gewünschte Gruppentyp-Bit lediglich eine Präferenz.
2 Gewünschter Gruppentyp Das Bit des gewünschten Gruppentyps muss auf 0 festgelegt werden, wenn der gewünschte Gruppentyp vorübergehend ist und auf 1 festgelegt wird, wenn der gewünschte Gruppentyp dauerhaft ist.
3 - 7 Reserviert  

OOB-Konfigurationstimeout-Attributformat

Feldname Größe (Oktett) 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.
Listener-Konfigurationstimeout 1 0 - 255 Die Zeitspanne, die dieses P2P-Gerät auf die direkte Kommunikation mit Wi-Fi nach der OOB-Datenübertragung warten wird, wird in Einheiten von 100 Millisekunden gemessen. (Maximal 25,5 Sekunden).

Windows-Gerätekopplungsdatensatz

Der Windows Device Pairing Record folgt der NDEF-Spezifikation. Es liefert zusätzliche Informationen an Windows darüber, wie die Nachricht "Verbindungsübergabe auswählen" verarbeitet werden soll. Die Felder TNF und Type müssen gemäß der NDEF-Spezifikation angegeben werden. Die anderen unten aufgeführten Felder werden sequenziell im Feld "Payload" des NDEF-Eintrags aufgeführt.

Feldname Wert Längenwert BESCHREIBUNG
TNF 0x02 3 Bits Format des folgenden Felds "Typ". Medientyp gemäß definition in RFC 2046.
Typ "application/vnd.ms-windows.devicepairing" 0x28 Bytes Neue Zeichenfolge, die wir für dieses Szenario definieren.
Hauptversion 0x1 2 Bytes Die Hauptversion muss auf 0x1 festgelegt sein.
MinorVersion 0x0 2 Bytes Die Nebenversion muss 0x0 sein.
Flaggen 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 Voreinstellung für Transporte wird durch Sequenz alternativer Trägerdatensätze angegeben.

Anmerkung Werte 0x0002 bis 0x0064 sind reserviert.
Länge des Anzeigenamens des Geräts Länge des benutzerfreundlichen Namensfelds des Geräts. 1 Byte Länge des benutzerfreundlichen Anzeigennamens des Geräts.
Gerätefreundlicher Name UTF-8-codierte Zeichenfolge bis zu 255 Bytes. Länge des benutzerfreundlichen Namens des Geräts Freundlicher Name für das Gerät, der in der Zustimmungsoberfläche auf dem Client angezeigt wird.

Wi-Fi Direkteinrichtung funktioniert einfach, statische Verbindungsübergabe Tag-Format

Im Folgenden sehen Sie beispielsweise eine typische Implementierung für ein passives NFC-Tag. Dies entspricht einem statischen Verbindungsübergabefall mit einem Wi-Fi Direktträgerdatensatz, einem Netzwerk-Freigabedrucker und dem ms-device-Kopplungseintrag.

In dieser ersten Tabelle wird das Format des Wi-Fi Direktkopplungsteils des Tags veranschaulicht.

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

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

MB=1b, ME=1b, CF=0b, SR=1b, IL=0b, TNF=001b
7 0x02 1 Datensatztyplänge: 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 Länge des Netzbetreiber-Datensatzes: 1 Oktett
13 0x30 1 Referenz zu Trägerdaten: "0"
14 0x00 1 Hilfsdatenverweisanzahl: 0
15 0x1A 1 NDEF-Datensatzkopfzeile:

MB=0b, ME=0b, CF=0b, SR=1b, IL=1b, TNF=010b
16 0x22 1 Name des Datensatztyps: 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 Datensatztypname: '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 unsigniertes Short gelesen und umfasst den gesamten Blob. Enthält 2 Längenoktetten. Dieser Wert muss im little-endian-Format gespeichert werden.
56 0x02, 0x00 2 Kopfzeilenlä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 Fähigkeit
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 Gerätefreundlicher Name in UTF-8. Beachten Sie, dass kein NULL-Endzeichen vorhanden ist und UTF-8 ein oder zwei Byte pro Zeichen sein kann. In diesem Beispiel wird "Contoso Mouse" gelesen.
97 0x02 1 Attribut: Bereitstellungsinformationen
98 0x0c 0x00 2 Bereitstellungslänge der Informationen: 12 Oktette
100 0x07 1 Bitmap festlegen: Neue Gruppe, persistent erzwingen
101 0x01 0x00 2 Config-Methode: Pin-Eintrag
103 0x08 1 Pinlänge: 8 Oktette
104

0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08
8 PIN: "12345678"
112 0x05 1 Attribut: Konfigurations-Timeout-Informationen
113 0x01 0x00 2 Länge der Konfigurations-Timeouts
115 0x64 1 10 Sekunden, in 100 Millisekunden

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

Offset Inhalt Länge Erklärung
116 0x12 1 NDEF-Datensatzkopf:
MB=0b,ME=0b, CF=0b, SR=1b, IL=0b,TNF=010b
117 0x29 1 Feld 'Typlänge'
118 0x19 1 Feld für 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 Datensatztypname: "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-Kopplungsabschnitts des Tags.

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

MB=0b, ME=1b, CF=0b, SR=1b, IL=0b,TNF=010b
186 0x28 1 Typ-Längenfeld
187 0x15 1 Feld für 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 Datensatztypname: "application/vnd.ms-windows.devicepairing"
228 0x00 0x01 0x00

0x00
4 Version: Hauptversion = 1, Nebenversion = 0
232 0x00 1 Flags: Auf 0 setzen, alle Übertragungsmethoden 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 benutzerfreundliche Gerätename, der dem Benutzer angezeigt wird: "Contoso Printer"

Wi-Fi Anforderungen an die direkte Konnektivität

Geräte und Clients müssen das Wi-Fi Radio aktiviert haben. Wenn nicht, schlägt die Kopplung fehl.

Behandeln von Randfällen

Wenn ein Benutzer zuvor ein Gerät gekoppelt hat, das Gerät jedoch manuell aus der Geräteliste entfernt, führt das Tippen erneut zu einem Versuch, es zu installieren oder zu koppeln.

Wenn ein Benutzer in den Aktionsbereich eintritt, ihn dann aber plötzlich verlässt, bevor die Out-of-Band-Informationen (OOB) übertragen werden, kann das Gerät verbindbar werden, jedoch wird der PC nicht nach dem Gerät suchen. 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.

Wenn das Wi-Fi-Funkgerät für Wi-Fi Direct-Geräte ausgeschaltet wird, wird die Installation nicht erfolgreich sein.

Wenn ein Benutzer gleichzeitig 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 "Tippen auf Setup" oder "Erneut verbinden" nicht unterstützt, kann dazu führen, dass das Gerät in den Verbindungsmodus wechselt, die Kopplung erfolgt jedoch nicht. Benutzer müssen eine für Bluetooth bereitgestellte Kopplungs-UI verwenden und die Kopplungsschaltfläche verwenden, um die Kopplung zu initiieren.