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.

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 umfassen die Windows.Devices.Enumeration-APIs drei verschiedene Arten von Geräteobjekten: AssociationEndpoint (AEP), AssociationEndpointContainer (AEP Container) und AssociationEndpointService (AEP Service). Zusammen 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 eine Kopplung erforderlich ist, bevor mit ihm interagiert werden kann. Wi-Fi 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 einen eigenen Selektor erstellen, wird dringend empfohlen, den Enumerationsumfang auf die Protokolle zu beschränken, die für Sie relevant sind. Sie möchten beispielsweise nicht über die Wi-Fi Radiosuche für Wi-Fi Direct-Geräte verfügen, wenn Sie besonders an UPnP-Geräten interessiert sind. Windows hat eine Identität für jedes Protokoll definiert, mit dem Sie die Enumeration einschränken können. In der folgenden Tabelle sind die Protokolltypen und Bezeichner aufgeführt.

Protokoll- oder Netzwerkgerätetyp Id
UPnP (einschließlich DIAL und DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Webdienste auf Geräten (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direkt {0407d24e-53de-4c9a-9ba1-9ced54641188}
DNS-Diensterkennung (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
Servicepunkt {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
Netzwerkdrucker (Active Directory-Drucker) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows jetzt verbinden (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
WiGig-Docks {a277f3a5-8764-4f88-8045-4c5e962640b1}
Wi-Fi 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 alle UPnP-AssociationEndpoint-Objekte 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 die 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 sucht nach allen UPnP-AssociationEndpointService-Objekten, 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, findet sie jedoch nur durch Enumerierung über das UPnP-Protokoll. 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}"