Windows.Devices.Enumeration API を使用して、ワイヤレスおよびネットワーク プロトコル経由でデバイスを列挙します。
- 重要な API:Windows.Devices.Enumeration
ネットワークプロトコルまたはワイヤレス プロトコルを介したデバイスの列挙
場合によっては、ローカルに接続されておらず、ワイヤレスまたはネットワーク プロトコル経由でのみ検出できるデバイスを列挙する必要があります。 そのため、Windows.Devices.Enumeration API では、AssociationEndpoint (AEP)、AssociationEndpointContainer (AEP コンテナー)、および AssociationEndpointService (AEP サービス) という 3 種類のデバイス オブジェクトが定義されています。 グループとして、これらは AP または AEP オブジェクトと呼ばれます。
一部のデバイス API には、使用可能な AEP オブジェクトを列挙するために使用できるセレクター文字列が用意されています。 これには、ペアリングされていて、システムとペアリングされていない両方のデバイスが含まれる場合があります。 一部のデバイスではペアリングが必要ない場合があります。 これらのデバイス API は、デバイスを操作する前にペアリングが必要な場合に、デバイスのペアリングを試みる場合があります。 Wi-Fi Direct は、このパターンに従う API の例です。 これらのデバイス API でデバイスが自動的にペアリングされない場合は、DeviceInformationPairing オブジェクトを使用して、DeviceInformation.Pair からペアリングできます。
ただし、定義済みのセレクター文字列を使用せずに、自分でデバイスを手動で検出したい場合があります。 たとえば、操作せずに AEP デバイスに関する情報を収集する必要がある場合や、定義済みのセレクター文字列で検出されるよりも多くの AEP オブジェクトを見つける必要がある場合があります。 この場合は、独自のセレクター文字列を作成し、「 デバイス セレクターをビルドする」の手順に従って使用します。
独自のセレクターを構築するときは、列挙型のスコープを関心のあるプロトコルに制限することを強くお勧めします。 たとえば、UPnP デバイスに特に関心がある場合は、Wi-Fi Direct デバイスの Wi-Fi 無線検索を行いたくありません。 Windowsは、列挙型のスコープに使用できる各プロトコルの ID を定義しています。 次の表に、プロトコルの種類と識別子を示します。
| プロトコルまたはネットワーク デバイスの種類 | ID |
|---|---|
| UPnP (DIAL と DLNA を含む) | {0e261de4-12f0-46e6-91ba-428607ccef64} |
| デバイス上の Web サービス (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 の今すぐ接続 (WNC) | {4c1b1ef8-2f62-4b9f-9bc5-b21ab636138f} |
| WiGig ドック | {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 の種類には、列挙型を特定のプロトコルに制限するために使用できるプロパティがあります。 AQS フィルターで OR 演算子を使用して、複数のプロトコルを組み合わせることができます。 AEP デバイスのクエリ方法を示す AQS フィルター文字列の例を次に示します。
この AQS は、
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
この AQS は、DeviceInformationKind が AsssociationEndpoint に設定されている場合に、すべての UPnP および WSD AssociationEndpoint オブジェクトを照会します。
System.Devices.Aep.ProtocolId:="{782232aa-a2f9-4993-971b-aedc551346b0}" OR
System.Devices.Aep.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
この AQS は、
System.Devices.AepService.ProtocolId:="{0e261de4-12f0-46e6-91ba-428607ccef64}"
この AQS は、
System.Devices.AepContainer.ProtocolIds:~~"{0e261de4-12f0-46e6-91ba-428607ccef64}"
Windows developer