Compartir a través de


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 a través de protocolos inalámbricos o en red

A veces necesita enumerar dispositivos que no están conectados localmente y solo se pueden detectar a través de protocolos inalámbricos o de red. Para ello, las API Windows.Devices.Enumeration tienen tres tipos diferentes de objetos de dispositivo: AssociationEndpoint (AEP), AssociationEndpointContainer (contenedor de AEP) y AssociationEndpointService (servicio AEP). Como grupo, estos se conocen como objetos AEP o AEP.

Algunas API de dispositivo proporcionan una cadena de selector que puede usar para enumerar a través de los objetos AEP disponibles. Esto podría incluir ambos dispositivos emparejados y que no están emparejados con el sistema. Es posible que algunos de los dispositivos no requieran emparejamiento. Esas API de dispositivo pueden intentar emparejar el dispositivo si es necesario emparejarlo antes de interactuar con él. Wi-Fi Direct es un ejemplo de LAS API que siguen este patrón. Si esas API de dispositivo no emparejan automáticamente el dispositivo, puede emparejarla mediante el objeto DeviceInformationPairing disponible en DeviceInformation.Pairing.

Sin embargo, puede haber casos en los que quiera detectar manualmente dispositivos por su cuenta sin usar una cadena de selector predefinida. Por ejemplo, puede que solo tenga que recopilar información sobre los dispositivos AEP sin interactuar con ellos o puede que desee encontrar más objetos AEP de los que se detectarán con la cadena de selector predefinida. En este caso, creará su propia cadena de selector y la usará siguiendo las instrucciones de Compilación de un selector de dispositivos.

Al crear su propio selector, se recomienda encarecidamente limitar el ámbito de enumeración a los protocolos que le interesen. Por ejemplo, no quiere tener la búsqueda de radio Wi-Fi para dispositivos Wi-Fi Direct si está especialmente interesado en los dispositivos UPnP. Windows ha definido una identidad para cada protocolo que puede usar para definir el ámbito de la enumeración. En la tabla siguiente se enumeran los tipos de protocolo y los identificadores.

Tipo de dispositivo de red o protocolo Identificador
UPnP (incluido DIAL y DLNA) {0e261de4-12f0-46e6-91ba-428607ccef64}
Servicios web en dispositivos (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
Detección de servicios 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}
Conexión de Windows ahora (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
Muelles WiGig {a277f3a5-8764-4f88-8045-4c5e962640b1}
Aprovisionamiento de 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 de AEP tiene una propiedad que puede usar para restringir la enumeración a un protocolo específico. Tenga en cuenta que puede usar el operador OR en un filtro AQS para combinar varios protocolos. Estos son algunos ejemplos de cadenas de filtro de AQS que muestran cómo consultar dispositivos AEP.

Esta AQS consulta todos los objetos AssociationEndpoint de UPnP cuando DeviceInformationKind está establecido en AsssociationEndpoint.

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

Esta AQS consulta todos los objetos UPnP y WSD AssociationEndpoint cuando DeviceInformationKind está establecido en 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 DeviceInformationKind está establecido en AsssociationEndpointService.

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

Este AQS consulta los objetos AssociationEndpointContainer cuando DeviceInformationKind está establecido en AssociationEndpointContainer, pero solo los encuentra enumerando el protocolo UPnP. Normalmente, no sería útil enumerar contenedores que solo proceden de un protocolo. Sin embargo, esto puede ser útil limitando el filtro a los protocolos en los que sabe que se puede detectar el dispositivo.

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