Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте api Windows.Devices.Enumeration для перечисления устройств через беспроводные и сетевые протоколы.
Основные API
Перечисление устройств через сетевые или беспроводные протоколы
Иногда необходимо перечислить устройства, которые не подключены локально, и их можно обнаружить только через беспроводные или сетевые протоколы. Для этого интерфейсы API Windows.Devices.Enumeration имеют три различных типа объектов устройств: AssociationEndpoint (AEP), AssociationEndpointContainer (контейнер AEP) и AssociationEndpointService (служба AEP). В совокупности они называются объектами AEP.
Некоторые API устройств предоставляют строку выбора, которую можно использовать для перечисления доступных объектов AEP. Это может включать как устройства, которые сопряжены с системой, так и не сопряжены с ней. Некоторые устройства могут не требовать связывания. Эти API устройства могут попытаться связать устройство, если необходимо связать его перед взаимодействием с ним. Wi-Fi Direct — это пример API, которые соответствуют этому шаблону. Если эти API устройства не сопрягают устройство автоматически, вы можете сопрячь его с помощью объекта DeviceInformationPairing, доступного из DeviceInformation.Pairing.
Однако могут возникнуть случаи, когда вы хотите вручную обнаруживать устройства самостоятельно без использования предварительно определенной строки селектора. Например, вам может потребоваться только собрать сведения об устройствах AEP без взаимодействия с ними или вам может потребоваться найти больше объектов AEP, чем будет обнаружено с предварительно определенной строкой селектора. В этом случае вы создадите собственную строку селектора и используйте её в разделе Создание селектора устройства.
При создании собственного селектора настоятельно рекомендуется ограничить область перечисления интересующими вас протоколами. Например, вы не хотите, чтобы радиопоиск Wi-Fi искал Wi-Fi Direct-устройства, если вы особенно заинтересованы в устройствах UPnP. Windows определил идентификатор для каждого протокола, который можно использовать для задания области перечисления. В следующей таблице перечислены типы и идентификаторы протокола.
| Тип протокола или сетевого устройства | Идентификатор |
|---|---|
| UPnP (включая DIAL и DLNA) | {0e261de4-12f0-46e6-91ba-428607ccef64} |
| Веб-службы на устройствах (WSD) | {782232aa-a2f9-4993-971b-aedc551346b0} |
| Wi-Fi Direct | {0407d24e-53de-4c9a-9ba1-9ced54641188} |
| Обнаружение служб DNS (DNS-SD) | {4526e8c1-8aac-4153-9b16-55e86ada0e54} |
| Точка обслуживания | {d4bf61b3-442e-4ada-882d-fa7B70c832d9} |
| Сетевые принтеры (принтеры Active Directory) | {37aba761-2124-454c-8d82-c42962c2de2b} |
| Windows connect now (WNC) | {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f} |
| Доки WiGig | {a277f3a5-8764-4f88-8045-4c5e962640b1} |
| настройка Wi-Fi для принтеров HP | {c85ef710-f344-4792-bb6d-85a4346f1e69} |
| Bluetooth | {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} |
| Bluetooth LE | {bb7bb05e-5972-42b5-94fc-76eaa7084d49} |
| Сетевая камера | {b8238652-b500-41eb-b4f3-4234f7f5ae99} |
Примеры расширенного синтаксиса запросов (AQS)
Каждый тип AEP имеет свойство, которое можно использовать для ограничения перечисления определенным протоколом. Помните, что оператор OR можно использовать в фильтре AQS для объединения нескольких протоколов. Ниже приведены некоторые примеры строк фильтра AQS, которые показывают, как выполнять запросы для устройств AEP.
Запросы AQS выполняются для всех объектов UPnP
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
Эти запросы AQS касаются всех объектов UPnP и WSD AssociationEndpoint, когда DeviceInformationKind установлено в значение AsssociationEndpoint.
System.Devices.Aep.ProtocolId:="{782232aa-a2f9-4993-971b-aedc551346b0}" OR
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
Этот AQS запрашивает все объекты UPnP AssociationEndpointService, при условии, что DeviceInformationKind установлено на AssociationEndpointService.
System.Devices.AepService.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
Этот объект AQS запрашивает объекты AssociationEndpointContainer, если DeviceInformationKind установлено значение AssociationEndpointContainer, но находит их только путем перечисления протокола UPnP. Как правило, не рекомендуется перечислять контейнеры, поступающие только из одного протокола. Однако это может быть полезно, если ограничить фильтр только теми протоколами, в которых можно обнаружить ваше устройство.
System.Devices.AepContainer.ProtocolIds:~~"{0e261de4-12f0-46e6-91ba-428607ccef64}"