Share via


Enumerar dispositivos a través de una red

Use las API Windows.Devices.Enumeration para enumerar dispositivos a través de protocolos inalámbricos y en red.

API importantes

Enumeración de dispositivos mediante protocolos de red o inalámbricos

A veces es necesario enumerar los dispositivos que no están conectados localmente y que solo pueden detectarse a través de protocolos de red o inalámbricos. Para ello, las API de Windows.Devices.Enumeration tienen tres tipos de objetos de dispositivo: AssociationEndpoint (AEP), AssociationEndpointContainer (contenedor AEP) y AssociationEndpointService (servicio AEP). En conjunto, se denominan AEP u objetos AEP.

Algunas API de dispositivos proporcionan una cadena de selector que puedes usar para enumerar a través de los objetos AEP disponibles. Esto puede incluir tanto dispositivos que están emparejados con el sistema como dispositivos que no lo están. Es posible que algunos de los dispositivos no necesiten emparejarse. Estas API de dispositivo pueden intentar emparejar el dispositivo si es necesario emparejarlo antes de interactuar con él. Wi-Fi Direct es un ejemplo de API que siguen este patrón. Si estas API de dispositivo no emparejan automáticamente el dispositivo, puedes emparejarlo mediante el objeto DeviceInformationPairing disponible en DeviceInformation.Pairing.

Sin embargo, puede haber casos en los que quieras detectar dispositivos manualmente sin usar una cadena de selector predefinida. Por ejemplo, es posible que solo tengas que recopilar información acerca de los dispositivos AEP sin interactuar con ellos, o que desees buscar más objetos AEP de los que se detectarán con la cadena de selector predefinida. En este caso, podrás crear tu propia cadena de selector y usarla siguiendo las instrucciones de la sección Compilar un selector de dispositivos.

Cuando crees tu selector, te recomendamos que limites el ámbito de la enumeración a los protocolos que te interesan. Por ejemplo, no es necesario que la radio de Wi-Fi busque dispositivos Wi-Fi Direct si lo que te interesa son los dispositivos UPnP. Windows ha definido una identidad para todos los protocolos que puedes usar para definir el ámbito de la enumeración. En la tabla siguiente se enumeran los tipos y los identificadores de protocolo.

Tipo de dispositivo de red o protocolo Identificador
UPnP (incluido DIAL y DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Web services on devices (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
Detección de servicio DNS (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
Punto de servicio {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
Impresoras de red (impresoras de Active Directory) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows connect now (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
Bases WiGig {a277f3a5-8764-4f88-8045-4c5e962640b1}
Aprovisionamiento Wi-Fi para impresoras HP {c85ef710-f344-4792-bb6d-85a4346f1e69}
Bluetooth {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}
Bluetooth LE {bb7bb05e-5972-42b5-94fc-76eaa7084d49}
Cámara de red {b8238652-b500-41eb-b4f3-4234f7f5ae99}

Ejemplos de sintaxis de consulta avanzada (AQS)

Cada tipo AEP tiene una propiedad que puedes usar para limitar la enumeración a un protocolo específico. Ten en cuenta que puedes usar el operador OR en un filtro AQS para combinar varios protocolos. Estos son algunos ejemplos de cadenas de filtro AQS que muestran cómo realizar consultas de dispositivos AEP.

Esta AQS consulta todos los objetos UPnP AssociationEndpoint cuando la enumeración DeviceInformationKind está establecida como AsssociationEndpoint.

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

Esta AQS consulta todos los objetos UPnP y WSD AssociationEndpoint cuando la enumeración DeviceInformationKind está establecida como AsssociationEndpoint.

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

Esta AQS consulta todos los objetos UPnP AssociationEndpointService si la enumeración DeviceInformationKind está establecida como AssociationEndpointService.

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

Esta AQS consulta los objetos AssociationEndpointContainer cuando la enumeración DeviceInformationKind está establecida como AssociationEndpointContainer, pero solo los encuentra al enumerar el protocolo UPnP. Por lo general, no sería útil enumerar contenedores que solo provienen de un protocolo. Sin embargo, esto puede ser útil si limitas tu filtro a los protocolos en los que sabes que se puede detectar tu dispositivo.

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