Wi-Fi Implementierung des direkten Druckens
Dieses Thema enthält Informationen zu den Geräteanforderungen für eine Wi-Fi Direct Printing-Implementierung.
Geräteanforderungen
Damit ein WFD-WSD-Gerät die nahtlose Konnektivität erhält, wie in Wi-Fi Direct Druckübersicht beschrieben, muss das Gerät die folgenden Anforderungen erfüllen:
Das Gerät muss die vertikale Kopplung unterstützen und die relevanten DPWS-Daten (WSD) in den WPS-Nachrichten senden (Formate, die unten unter Implementieren vertikaler Kopplungsdatenblob beschrieben werden).
Alle logischen Geräte im physischen Gerät MÜSSEN dieselbe PnP-X-Container-ID in der PnP-X-Erweiterung verwenden.
Ausführliche Informationen zum Implementieren von PnP-X-Container-IDs für mit dem Netzwerk verbundene Geräte finden Sie unter Übersicht über Container-IDs.
Allgemeine Informationen zu PnP-X-Erweiterungen finden Sie in der Spezifikation PnP-X: Plug & Play-Erweiterungen für Windows.
Da die WFD-Container-ID mit der UUID des Druckers übereinstimmt, ist die PnP-X-Container-ID in den Gerätemetadaten nicht erforderlich. Es wird jedoch weiterhin empfohlen, dass das Gerät PnP-X-Metadaten in den Gerätemetadaten unterstützt und eine PnP-X-Container-ID als Teil der PnP-X-Metadaten in den Gerätemetadaten angibt. Diese Container-ID sollte mit der WFD-Container-ID übereinstimmen.
Mit derselben Container-ID auf WFD-Ebene und WSD-Ebene wird Folgendes sichergestellt:
Die Kopplungsbenutzeroberfläche, z. B. der Assistent zum Hinzufügen eines Geräts, kann verstehen, dass mehrere logische Geräte gleichzeitig auf einem einzelnen physischen Gerät vorhanden sind, und die Kopplung für den Benutzer logischer behandeln. (Der Benutzer muss z. B. die WFD und das Drucken von Geräten nicht manuell in separaten Vorgängen koppeln.)
Geräte & Drucker können ein einzelnes Gerätesymbol für das Gerät anzeigen, obwohl zwei Devnodes auf dem System installiert sind (eine Gruppe von WFD-Devnodes und eine Gruppe von WSD-Devnodes).
Beachten Sie, dass eine ordnungsgemäße Container-ID-Implementierung erforderlich ist, damit die Tests des Windows-Hardwarezertifizierungskits ordnungsgemäß ausgeführt werden können. Eine nicht ordnungsgemäße Implementierung führt dazu, dass die Tests jedes logische Gerät als separates physisches Gerät erkennen.
Wenn ein WFD-WSD-Gerät die oben genannten Anforderungen nicht erfüllt, gilt die in dieser Implementierung beschriebene Konnektivität nicht für diese Geräte.
Geräte sollten persistente Gruppen und gleichzeitige Connection-Multiple Gruppen implementieren, wie im Whitepaper wi-Fi Alliance – Wi-Fi Direct Industry beschrieben.
Veröffentlichen von Container UUID über Wi-Fi Direct für Drucker
Windows ermittelt Drucker über Wi-Fi Direct mithilfe einer Testanforderung/-antwort gemäß der Wi-Fi Alliance "Wi-Fi Peer-to-Peer (P2P) Specification v1.1", Abschnitt 3.1.2.1.2 (Scanphase). Das Gerät, Der Drucker antwortet in diesem Fall mit dem entsprechenden Test Request/Response Frame auf den PC.
Sowohl die Testanforderungs- & Testantwortframes können mithilfe von benutzerdefinierten IEs erweitert werden. Microsoft hat einen benutzerdefinierten IE mit mehreren Attributen definiert, um verschiedene Erweiterungen zu ermöglichen.
Erstellen eines benutzerdefinierten Microsoft 802.11-IE für Container-UUID
Ein benutzerdefinierter IE besteht aus einer Anbieter-ID & Anbieterdaten, wie in der folgenden Abbildung der WFD-Anbietererweiterung gezeigt.
Microsoft verwendet die Anbieter-ID 0x137, um IEs im Besitz von Microsoft darzustellen. Der Anbieterdatenblock, der sich in den Anbietererweiterungen der einzelnen Anbieter befindet, enthält einen beliebigen Datenblock, den der Anbieter definiert. Der Anbieterdatenblock in Microsoft-Anbietererweiterungen besteht aus mindestens einer TLV-Struktur (Type-Length-Value). Die organization der TLV-Struktur ist in der folgenden Abbildung der WFD-Anbieterdaten dargestellt.
TLV-Definition für Container UUID
Es gibt zwei TLVs, die für enthaltene ID relevant sind. Es gibt eine "Anforderung für Attribute", die Windows an das Gerät sendet, & es eine "Container UUID"-TLV gibt, mit der die Geräte antworten.
Definitionen:
Name/Beschreibung | Typ (2 Bytes) | Länge (2 Bytes) | Wert (durch Länge definiert) |
---|---|---|---|
Anforderung für Microsoft-Attribute (dies wird während der Ermittlung vom PC in der Testanforderung gesendet) | 0x1005 | 0x0002 | 0x0001 = Microsoft fordert enthaltene UUID an |
Container-UUID (wird während der Ermittlung vom Drucker in der Testantwort gesendet) | 0x1006 | 0x0010 | Vom Drucker zu definieren |
Implementieren eines Datenblobs für vertikale Kopplungen
Das Datenblob für vertikale Kopplung ermöglicht es dem PC, den WSD-Druckdienst zu verstehen, bevor er eine Verbindung mit dem Drucker herstellt. Dieser Mechanismus ist ein einfacher Ersatz für die Dienstermittlung, da er implementiert wurde, bevor die Dienstermittlungsspezifikation für Wi-Fi Direct geschrieben wurde.
Wie die Container-UUID ist auch das Datenblob für die vertikale Kopplung ein Attribut des Microsoft IE. Im Gegensatz zum Container-ID-Attribut muss dieses in einer M7/M8-WPS-Nachricht (während Wi-Fi direkten Kopplung) vom Gerät veröffentlicht werden, abhängig von seiner Rolle.
Erstellen eines benutzerdefinierten Microsoft 802.11-IE für die vertikale Kopplung
Ein benutzerdefinierter IE besteht aus einer Anbieter-ID & Anbieterdaten, wie in der folgenden Abbildung der WFD-Anbietererweiterung gezeigt.
Microsoft verwendet die Anbieter-ID 0x137, um IEs im Besitz von Microsoft darzustellen. Der Anbieterdatenblock, der sich in den Anbietererweiterungen der einzelnen Anbieter befindet, enthält einen beliebigen Datenblock, den der Anbieter definiert. Der Anbieterdatenblock in Microsoft-Anbietererweiterungen besteht aus mindestens einer TLV-Struktur (Type-Length-Value). Die organization der TLV-Struktur ist in der folgenden Abbildung der WFD-Anbieterdaten dargestellt:
TLV-Definition für vertikale Kopplungsblobs
Zwei spezifische TLV-Typen sind für die vertikale Rally-Kopplung definiert. Diese TLV-Typen sind in der folgenden Tabelle aufgeführt.
Name/Beschreibung | Typ (2 Bytes) | Länge (2 Bytes) | Wert (durch Länge definiert) |
---|---|---|---|
Bezeichner für vertikale Kopplung (Kommuniziert die interne Topologie des Geräts) | 0x1001 | 0x0002 | Siehe "VERTICAL PAIRING IDENTIFIER TLV" weiter unten. |
Transport-UUID (Der Transport-UUID-Wert des Geräts) | 0x1002 | 0x0010 | Siehe "TLV-Definition für Container UUID" weiter oben. |
TLV für vertikale Kopplung
Der VPI-TLV (Vertical Pairing Identifier) kommuniziert die interne Topologie eines Geräts, die angibt, wie Windows mit den Diensten des Geräts kommunizieren kann. Mindestens ein VPI ist erforderlich, um Rally Vertical Pairing-Erweiterungen zu unterstützen, auch wenn die vertikale Kopplung im Gerät nicht implementiert ist. In diesem Fall würde der VPI angeben, dass keine Transporte verwendet werden. Die VPI-TLV muss als Teil der Microsoft-Anbietererweiterung in der WPS M1-Nachricht gesendet werden.
Die Daten, die in einer VPI-TLV enthalten sind, sind 2 Byte lang und bestehen aus zwei verschiedenen Feldern: einem Transportfeld und einem Profilanforderungsfeld, wie in der folgenden Abbildung von WFD-Daten gezeigt, die in einer VPI-TLV enthalten sind (jedes Feld ist 1 Byte lang).
VPI-Transportfeld
Das Feld Transport gibt den Transport an, den Windows für die Kommunikation mit dem Gerät verwenden kann. Pro VPI kann nur ein Transport angegeben werden. Wenn das Gerät mehrere PnP-X-Transporte unterstützt, kann es dies kommunizieren, indem es mehrere VPI-TLVs (eine für jeden Transport) in die Microsoft-Anbietererweiterung einschließt. Die gültigen Werte für das Feld VPI-Transport sind in der folgenden Tabelle aufgeführt.
Wert | Transport |
---|---|
0x00 | Keine |
0x01 | DPWS |
0x02 | UPnP |
0x03 | Schützen von DPWS |
0x04-0xFF | Reserviert |
Hinweis
Windows 7 bietet Unterstützung für DPWS (0x01) oder Secure DPWS (0x03), aber nicht beides.
Wenn ein Gerät die vertikale Rally-Kopplung nicht implementiert, muss es nur einen VPI mit dem Transportwert 0x00 (None) angeben. In dieser Situation sollte das Gerät keine Transport-UUID-TLV angeben. Dadurch wird Windows benachrichtigt, dass keine Kopplung mit dem Gerät erwartet werden sollte. Daher versucht Windows nicht, eine Vorkopplung mit dem Gerät vorzunehmen, während es die Wi-Fi Einstellungen des Geräts konfiguriert.
Feld "VPI-Profilanforderung"
Mit dem VPI kann ein Gerät das WPS-Protokoll verwenden, um die Dienste des Geräts bereitzustellen. In dieser Situation kann ein Gerätedienst anfordern, dass Windows Informationen zum Konfigurieren des Diensts sendet. Diese Informationen werden als Profil bezeichnet. Das zweite Feld des VPI gibt an, ob das Gerät anfordert, dass Windows ein Profil sendet. Die gültigen Werte für das Feld VPI-Profilanforderung sind in der folgenden Tabelle aufgeführt.
Wert | BESCHREIBUNG |
---|---|
0x01 | Wi-Fi profil angefordert. Dies ist der einzige Wert, der derzeit von Windows 7 unterstützt wird. |
0x00, 0x02–0xFF | Reserviert |
Der Wert des Felds "VPI-Profilanforderung" von 0x00 gilt als reserviert, da er derzeit nicht von Windows 7 unterstützt wird. Das Feld VPI-Profilanforderung sollte nur auf den Wert 0x01 (WLAN-Profil angefordert) festgelegt werden, auch wenn für den Transport ein Wert von 0x00 (none) angegeben ist.
Transport UUID TLV
Die Transport-UUID-TLV gibt an, dass ein bestimmter Transport (DPWS oder UPnP) einen anderen Basis-UUID-Wert als die WPS-UUID aufweist. Die Transport-UUID-TLV ist optional. Wenn die Transport-UUID-TLV nicht enthalten ist, wird die WPS-UUID verwendet, um eine Identität für den angegebenen Transport zu bilden.
Wenn eine Transport-UUID-TLV enthalten ist, muss sie sofort dem VPI-TLV folgen, der den Transport identifiziert. Wenn mehrere VPI-TLV enthalten sind, kann nach jedem VPI-TLV eine Transport-UUID-TLV eingeschlossen werden.
Der Transport-UUID-TLV-Datenwert muss sich in der Reihenfolge des Netzwerkbytes befinden.
Wenn das Gerät den VPI-Transportwert 0x00 (keine) angibt, schließen Sie keine Transport-UUID-TLV ein.
WPS-Beispiel
In diesem Beispiel wird davon ausgegangen, dass ein Druckergerät DPWS verwendet und die WS Print-Schnittstelle implementiert. Das Gerät verwendet die UUID-Werte in der folgenden Tabelle:
Dienst | Identität |
---|---|
WPS | ec742c0d-5915-4bcb-b969-008132afec5e |
DPWS drucken | urn:uuid:00010203-0405-0607-0809-0a0b0c0e0f |
WPS-Beispieldienst-UUID-Werte
UUID-Werte werden in Kleinbuchstaben angegeben, und die DPWS-Identitätszeichenfolge verwendet das Format urn:uuid:uuid_value.
Hinweis
Die UUID-Werte in diesem Beispiel sind fiktiv und dürfen nicht in einem realen Gerät verwendet werden.
Wenn das Gerät seine WPS M7/M8-Nachrichten sendet, enthält es die Microsoft-Anbietererweiterung, die im folgenden Beispiel für Details der WFD-Anbietererweiterung gezeigt wird:
In diesem Beispiel enthält die Anbietererweiterung den Anbieter-ID-Wert 0x137, der sie als Microsoft-Anbietererweiterung identifiziert. Innerhalb des Anbieterdatenfelds der Anbietererweiterung befinden sich zwei TLV-Strukturen.
Der erste TLV weist den Type-Wert 0x1001 auf, der den TLV als VPI identifiziert. Die Länge der Daten im ersten TLV beträgt 2 Bytes, die den Wert 0x0101 enthalten. Dies gibt an, dass das Gerät den DPWS-Transport (0x01) unterstützt und ein Profil (0x01) anfordert.
Die zweite TLV hat den Type-Wert 0x1002, der die TLV als Transport-UUID identifiziert. Die Länge der Daten im zweiten TLV beträgt 16 Bytes, die die Binärversion des UUID-Werts 00010203-0405-0607-0809-0a0b0c0e0f enthalten.
Wenn ein Kunde den Drucker vertikal koppelt, konfiguriert Windows zuerst das Wi-Fi Radio des Geräts mit den entsprechenden Einstellungen. Anschließend wird das DPWS-Gerät des Geräts mithilfe des angegebenen Transport-UUID-Werts gekoppelt.
Nachdem das Gerät eine Verbindung mit dem Wi-Fi-Netzwerk hergestellt und seine DPWS-Dienste ankündigt, erstellt Windows die entsprechenden PnP-Geräteknoten und installiert und lädt die entsprechenden Treiber.