Condividi tramite


Enumerare i dispositivi in rete

Usare le API Windows.Devices.Enumeration per enumerare i dispositivi su protocolli wireless e di rete.

API importanti

Enumerazione dei dispositivi tramite protocolli wireless o in rete

A volte è necessario enumerare i dispositivi non connessi localmente e che possono essere individuati solo tramite protocolli wireless o di rete. A tale proposito le API Windows.Devices.Enumeration hanno tre diversi tipi di oggetti dispositivo: AssociationEndpoint (AEP), AssociationEndpointContainer (AEP Container), e AssociationEndpointService (AEP Service). Come gruppo, questi vengono definiti oggetti AEPs o AEP.

Alcune API del dispositivo forniscono una stringa del selettore che è possibile usare per enumerare gli oggetti AEP disponibili. Ciò può includere entrambi i dispositivi associati e non associati al sistema. Alcuni dispositivi potrebbero non richiedere l'associazione. Queste API del dispositivo possono tentare di associare il dispositivo se è necessario associarlo prima di interagire con esso. Wi-Fi Direct è un esempio di API che seguono questo modello. Se queste API del dispositivo non associano automaticamente il dispositivo, è possibile associarlo usando l'oggetto DeviceInformationPairing disponibile da DeviceInformation.Pairing.

Tuttavia, potrebbero verificarsi casi in cui si desidera individuare manualmente i dispositivi in autonomia senza usare una stringa del selettore predefinita. Ad esempio, potrebbe essere sufficiente raccogliere informazioni sui dispositivi AEP senza interagire con essi, oppure è consigliabile trovare più oggetti AEP di quelli che verranno individuati con la stringa del selettore predefinita. In questo caso, si creerà una stringa del selettore personalizzata e la si userà seguendo le istruzioni in Crea un selettore del dispositivo.

Quando si crea un selettore personalizzato, è consigliabile limitare l'ambito di enumerazione ai protocolli a cui si è interessati. Ad esempio, non si desidera che la radio Wi-Fi cerchi dispositivi Wi-Fi Direct se si è particolarmente interessati ai dispositivi UPnP. Windows ha definito un'identità per ogni protocollo che è possibile usare per definire l'ambito dell'enumerazione. Nella tabella seguente sono elencati i tipi di protocollo e gli identificatori.

Protocollo o tipo di dispositivo di rete ID.
UPnP (incluso DIAL e DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Servizi Web nei dispositivi (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
Individuazione servizio DNS (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
Point of service (punto di servizio) {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
Stampanti di rete (stampanti active directory) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows Connect Now (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
Dock WiGig {a277f3a5-8764-4f88-8045-4c5e962640b1}
Provisioning Wi-Fi per stampanti HP {c85ef710-f344-4792-bb6d-85a4346f1e69}
Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
Bluetooth LE {bb7bb05e-5972-42b5-94fc-76eaa7084d49}
Fotocamera di rete {b8238652-b500-41eb-b4f3-4234f7f5ae99}

Esempi di sintassi di query avanzata (AQS)

Ciascun tipo AEP ha una proprietà che è possibile usare per vincolare l'enumerazione a un protocollo specifico. Tenere presente che è possibile usare l'operatore OR in un filtro AQS per combinare più protocolli. Ecco alcuni esempi di stringhe di filtro AQS che illustrano come eseguire query per i dispositivi AEP.

Questa query in formato AQS per tutti gli oggetti UPnP AssociationEndpoint quando DeviceInformationKind è impostato su AsssociationEndpoint.

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

Questa query in formato AQS per tutti gli oggetti UPnP AssociationEndpoint quando DeviceInformationKind è impostato su AsssociationEndpoint.

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

Questa query in formato AQS per tutti gli oggetti UPnP AssociationEndpointService quando DeviceInformationKind è impostato su AssociationEndpointService.

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

Questo oggetto AQS esegue una query sugli oggetti AssociationEndpointContainer quando DeviceInformationKind è impostato su AssociationEndpointContainer, ma li trova solo enumerando il protocollo UPnP. In genere, non sarebbe utile enumerare i contenitori provenienti solo da un protocollo. Tuttavia, questo potrebbe essere utile limitando il filtro ai protocolli per i quali si sa che è possibile individuare il dispositivo.

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