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.

Las APIs 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 AEPs o objetos 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 dispositivos que están emparejados o 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 emparejarlo 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 selección y la usará siguiendo las instrucciones de Construir un seleccionador 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 desea que la búsqueda de radio Wi-Fi busque dispositivos Direct Wi-Fi 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 Identificación
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}
Windows Connect Now (WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
Estaciones de acoplamiento WiGig {a277f3a5-8764-4f88-8045-4c5e962640b1}
Wi-Fi aprovisionamiento 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 UPnP AssociationEndpoint cuando el deviceInformationKind de está establecido en AsssociationEndpoint.

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

Esta consulta de AQS es para todos los objetos UPnP y WSD AssociationEndpoint cuando el DeviceInformationKind se establece en AssociationEndpoint.

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

Esta consulta AQS recaba todos los objetos UPnP AssociationEndpointService si el DeviceInformationKind de está configurado como AssociationEndpointService.

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

Esta consulta de AQS objetos AssociationEndpointContainer cuando el DeviceInformationKind de 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}"