Freigeben über


Aufzählen von Geräten über ein Netzwerk

Verwenden Sie die Windows.Devices.Enumeration-APIs zum Aufzählen von Geräten über Drahtlos- und Netzwerkprotokolle.

Wichtige APIs

Aufzählen von Geräten über Netzwerk- oder Drahtlosprotokolle

Manchmal müssen Sie Geräte aufzählen, die nicht lokal verbunden sind und nur über drahtlos oder netzwerkprotokolle ermittelt werden können. Dazu verfügen die Windows.Devices.Enumeration-APIs über drei verschiedene Arten von Geräteobjekten: AssociationEndpoint (AEP), AssociationEndpointContainer (AEP Container ) und AssociationEndpointService (AEP Service). Als Gruppe werden diese als AEPs- oder AEP-Objekte bezeichnet.

Einige Geräte-APIs stellen eine Selektorzeichenfolge bereit, die Sie zum Aufzählen der verfügbaren AEP-Objekte verwenden können. Dies kann beide Geräte umfassen, die gekoppelt sind und nicht mit dem System gekoppelt sind. Für einige Geräte ist möglicherweise keine Kopplung erforderlich. Diese Geräte-APIs können versuchen, das Gerät zu koppeln, wenn es vor der Interaktion mit dem Gerät erforderlich ist. WLAN Direct ist ein Beispiel für APIs, die diesem Muster folgen. Wenn diese Geräte-APIs das Gerät nicht automatisch koppeln, können Sie es mithilfe des DeviceInformationPairing-Objekts koppeln, das über DeviceInformation.Pairing verfügbar ist.

Es kann jedoch vorkommen, dass Sie Geräte manuell ermitteln möchten, ohne eine vordefinierte Selektorzeichenfolge zu verwenden. Beispielsweise müssen Sie möglicherweise nur Informationen zu AEP-Geräten sammeln, ohne mit ihnen zu interagieren, oder Sie möchten möglicherweise mehr AEP-Objekte finden, als mit der vordefinierten Selektorzeichenfolge ermittelt werden. In diesem Fall erstellen Sie ihre eigene Selektorzeichenfolge und verwenden sie nach den Anweisungen unter Erstellen einer Geräteauswahl.

Wenn Sie eine eigene Auswahl erstellen, wird dringend empfohlen, den Umfang der Enumeration auf die protokolle zu beschränken, an denen Sie interessiert sind. Sie möchten z. B. nicht über das WLAN-Funkgerät nach WLAN-Direct-Geräten suchen, wenn Sie besonders an UPnP-Geräten interessiert sind. Windows hat eine Identität für jedes Protokoll definiert, das Sie verwenden können, um die Enumeration zu beschränken. In der folgenden Tabelle sind die Protokolltypen und Bezeichner aufgeführt.

Protokoll- oder Netzwerkgerätetyp Kennung
UPnP (einschließlich DIAL und DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Webdienste auf Geräten (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
DNS-Dienstermittlung (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
Point of Service {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
Netzwerkdrucker (Active Directory-Drucker) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows Connect jetzt (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
WiGig-Docks {a277f3a5-8764-4f88-8045-4c5e962640b1}
WLAN-Bereitstellung für HP-Drucker {c85ef710-f344-4792-bb6d-85a4346f1e69}
Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
Bluetooth LE {bb7bb05e-5972-42b5-94fc-76eaa7084d49}
Netzwerkkamera {b8238652-b500-41eb-b4f3-4234f7f5ae99}

Beispiele für erweiterte Abfragesyntax (Advanced Query Syntax, AQS)

Jede AEP-Art verfügt über eine Eigenschaft, die Sie verwenden können, um die Enumeration auf ein bestimmtes Protokoll zu beschränken. Denken Sie daran, dass Sie den OR-Operator in einem AQS-Filter verwenden können, um mehrere Protokolle zu kombinieren. Im Folgenden finden Sie einige Beispiele für AQS-Filterzeichenfolgen, die zeigen, wie Sie AEP-Geräte abfragen.

Diese AQS fragt nach allen UPnP AssociationEndpoint-Objekten ab, wenn "DeviceInformationKind" auf "AsssociationEndpoint" festgelegt ist.

System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

Diese AQS fragt alle UPnP- und WSD AssociationEndpoint-Objekte ab, wenn deviceInformationKind auf "AsssociationEndpoint" festgelegt ist.

System.Devices.Aep.ProtocolId:="{782232aa-a2f9-4993-971b-aedc551346b0}" OR
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

Diese AQS fragt nach allen UPnP AssociationEndpointService-Objekten ab, wenn "DeviceInformationKind" auf "AsssociationEndpointService" festgelegt ist.

System.Devices.AepService.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"

Diese AQS fragt AssociationEndpointContainer-Objekte ab, wenn "DeviceInformationKind" auf "AssociationEndpointContainer" festgelegt ist, sie jedoch nur durch Aufzählen des UPnP-Protokolls findet. In der Regel wäre es nicht sinnvoll, Container aufzählen, die nur aus einem Protokoll stammen. Dies kann jedoch hilfreich sein, indem Sie Ihren Filter auf Protokolle beschränken, in denen Sie wissen, dass Ihr Gerät erkannt werden kann.

System.Devices.AepContainer.ProtocolIds:~~"{0e261de4-12f0-46e6-91ba-428607ccef64}"