다음을 통해 공유


네트워크를 통해 디바이스 열거하기

Windows.Devices.Enumeration API를 사용하여 무선 및 네트워크 프로토콜을 통해 디바이스를 열거합니다.

중요 API

네트워크 또는 무선 프로토콜을 통해 디바이스 열거하기

경우에 따라 로컬로 연결되지 않고 무선 또는 네트워킹 프로토콜을 통해서만 검색할 수 있는 디바이스를 열거해야 합니다. 이를 위해 Windows.Devices.Enumeration API에는 AssociationEndpoint(AEP), AssociationEndpointContainer(AEP 컨테이너) 및 AssociationEndpointService(AEP 서비스)라는 세 가지 종류의 디바이스 개체가 있습니다. 이러한 그룹을 AEP 또는 AEP 개체라고 합니다.

일부 디바이스 API는 사용 가능한 AEP 개체를 열거하는 데 사용할 수 있는 선택기 문자열을 제공합니다. 여기에는 시스템과 페어링된 디바이스와 페어링되지 않은 디바이스가 모두 포함될 수 있습니다. 일부 디바이스에는 페어링이 필요하지 않을 수 있습니다. 이러한 디바이스 API는 디바이스와 상호 작용하기 전에 디바이스를 페어링해야 하는 경우 페어링을 시도할 수 있습니다. Wi-Fi Direct는 이 패턴을 따르는 API의 예시입니다. 해당 디바이스 API가 디바이스를 자동으로 페어링하지 않는 경우, DeviceInformation.Pairing에서 사용할 수 있는 DeviceInformationPairing 개체를 사용하여 페어링할 수 있습니다.

그러나 미리 정의된 선택기 문자열을 사용하지 않고 직접 디바이스를 수동으로 검색하려는 경우가 있을 수 있습니다. 예를 들어 상호 작용하지 않고 AEP 디바이스에 대한 정보를 수집하기만 하면 되거나 미리 정의된 선택기 문자열을 사용하여 검색되는 것보다 더 많은 AEP 개체를 찾으려고 할 수 있습니다. 이 경우, 사용자 고유의 선택기 문자열을 빌드하고 디바이스 선택기 빌드하기의 지침에 따라 사용합니다.

사용자 고유의 선택기를 빌드할 때는 열거형 범위를 관심 있는 프로토콜로 제한하는 것이 좋습니다. 예를 들어, UPnP 디바이스에 특히 관심이 있는 경우 Wi-Fi Direct 디바이스에 대한 Wi-Fi 라디오 검색은 원하지 않습니다. Windows는 열거형의 범위를 지정하는 데 사용할 수 있는 각 프로토콜에 대한 ID를 정의했습니다. 다음의 테이블은 프로토콜 형식 및 식별자를 나열합니다.

프로토콜 또는 네트워크 디바이스 형식 ID
UPnP(DIAL 및 DLNA 포함) {0e261de4-12f0-46e6-91ba-428607ccef64}
Web services on devices (WSD) {782232aa-a2f9-4993-971b-aedc551346b0}
Wi-Fi Direct {0407d24e-53de-4c9a-9ba1-9ced54641188}
DNS service discovery (DNS-SD) {4526e8c1-8aac-4153-9b16-55e86ada0e54}
서비스 포인트 {d4bf61b3-442e-4ada-882d-fa7B70c832d9}
네트워크 프린터(Active Directory 프린터) {37aba761-2124-454c-8d82-c42962c2de2b}
Windows 지금 연결(WNC) {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f}
WiGig docks {a277f3a5-8764-4f88-8045-4c5e962640b1}
HP 프린터용 Wi-Fi 프로비저닝 {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 필터에서 여러 프로토콜을 결합할 수 있습니다. 다음은 AEP 디바이스를 쿼리하는 방법을 보여 주는 AQS 필터 문자열의 몇 가지 예시입니다.

이 AQS는 DeviceInformationKindAsssociationEndpoint로 설정된 경우, 모든 UPnP AssociationEndpoint 개체를 쿼리합니다.

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

이 AQS는 DeviceInformationKindAsssociationEndpoint로 설정된 경우, 모든 UPnP 및 WSD AssociationEndpoint 개체를 쿼리합니다.

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

이 AQS는 DeviceInformationKindAsssociationEndpointService로 설정된 경우, 모든 UPnP AssociationEndpointService 개체를 쿼리합니다.

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

이 AQS는 DeviceInformationKindAssociationEndpointContainer로 설정된 경우, AssociationEndpointContainer 개체를 쿼리하지만 UPnP 프로토콜을 열거하는 방법으로만 찾습니다. 하나의 프로토콜에서만 제공되는 컨테이너를 열거하는 것은 일반적으로 유용하지 않습니다. 그러나 필터를 디바이스를 검색할 수 있는 프로토콜로 제한하면 유용할 수 있습니다.

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