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}"