次の方法で共有


DeviceInformationKind 列挙型

定義

DeviceInformation オブジェクトの種類を指定する定数を定義します。

public enum class DeviceInformationKind
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
enum class DeviceInformationKind
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public enum DeviceInformationKind
var value = Windows.Devices.Enumeration.DeviceInformationKind.unknown
Public Enum DeviceInformationKind
継承
DeviceInformationKind
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

フィールド

AssociationEndpoint 5

DeviceInformation オブジェクトは、デバイス関連付けエンドポイント (AEP) を表します。 AP は通常、ワイヤレスまたはネットワーク プロトコルを介して検出されたデバイスを表します。 これらのエンドポイントの一部は、最初にデバイスをペアリングしなくても使用できます。 CanPair を使用して、デバイスがペアリングをサポートしているかどうかを確認し、IsPaired を使用して、デバイスがシステムと既にペアリングされているかどうかを判断します。 AssociationEndpoint オブジェクトのみが、ペアリングに NULL 以外の値を持ちます。 ネットワーク経由でのペアリングの詳細については、「ネットワーク 経由でデバイスを列挙する」を参照してください。 AssociationEndpoint オブジェクトは、1 つの AssociationEndpointContainer オブジェクトの子であり、0 個以上の AssociationEndpointService オブジェクトを含めることができます。

このオブジェクトの ID

AssociationEndpointContainer 6

DeviceInformation オブジェクトは、関連付けエンドポイント (AEP) コンテナーを表します。 AssociationEndpointContainer オブジェクトは、複数の AssociationEndpoint オブジェクトが関連付けられている可能性がある 1 つの物理デバイスを表します。 たとえば、テレビで 2 つの異なるネットワーク プロトコルがサポートされている場合、 AssociationEndpointContainer はテレビになります。 また、各プロトコルを表す 2 つの AssociationEndpoint オブジェクトも含まれます。

このオブジェクトの ID は、文字列としての AEP コンテナー GUID です

AssociationEndpointProtocol 9

DeviceInformation オブジェクトは、関連付けエンドポイント (AP) を検出できるプロトコルを表します。 プロトコル ID を使用して、関連付けエンドポイント検出のスコープを特定のプロトコルに設定できます。 たとえば、次のセレクターは、検出のスコープを Bluetooth LE または Bluetooth クラシックに設定します。

詳細については、「 解説 」を参照してください。

AssociationEndpointService 7

DeviceInformation オブジェクトは、関連付けエンドポイント (AEP) サービスを表します。 AssociationEndpointService オブジェクトは、デバイスによって公開される機能サービス コントラクトを表します。 すべてのプロトコルで AEP サービスがサポートされているわけではありません。 AssociationEndpointService には、1 つの親 AssociationEndpointContainer オブジェクトを含めることができます。

このオブジェクトの ID を 文字列として指定します。

Device 3

DeviceInformation オブジェクトは、デバイス オブジェクトを表します。 これは、devnode と呼ばれることもあります。 これらのデバイスは、デバイス機能の一部を表し、必要に応じてドライバーが読み込まれるオブジェクトです。 物理デバイスがウィンドウとペアになると、それに対して複数の Device オブジェクトが作成されます。 デバイスには 0 個以上の DeviceInterface オブジェクトが含まれており、1 つの DeviceContainer オブジェクトの子であり、0 または 1 の AssociationEndpoint オブジェクトに関連しています。

このオブジェクトの ID は、このオブジェクトのデバイス インスタンス ID です。

DeviceContainer 2

DeviceInformation オブジェクトは、デバイス コンテナーを表します。 DeviceContainer オブジェクトは、同じ物理デバイスに存在するデバイス オブジェクトのコレクションを表します。 たとえば、多機能プリンターには複数の異なるデバイスが含まれている場合がありますが、これらはすべて親 DeviceContainer オブジェクトの一部として存在します。

このオブジェクトの ID は、文字列としてのデバイス コンテナー GUID です

DeviceInterface 1

DeviceInformation オブジェクトは、PnP デバイス インターフェイスを表します。 これらは、通常、デバイス IOCTLS (入力出力コントロール) を使用して、アプリがデバイスと通信できるようにするために、デバイス ドライバーによって公開されます。

この種類の DeviceInformation オブジェクトには、PnP DeviceInterface オブジェクトのすべてのプロパティと、親 PnP DeviceContainer オブジェクトの一部のプロパティが含まれます。 このプロパティの組み合わせは、ユーザーがアプリ シナリオを完了するためにデバイスを選択する必要がある場合に、ユーザーに表示できます。 DeviceInterface オブジェクトは、1 つの DeviceContainer オブジェクトに対してのみ子にすることができます。

これは、特定の種類を指定せずにデバイスを列挙する場合の既定の DeviceInformationKind です。

このオブジェクトの ID は、デバイス インターフェイス ID またはデバイス インターフェイス パスです。

DeviceInterfaceClass 4

DeviceInformation オブジェクトは、デバイス インターフェイス クラスを表します。 すべての DeviceInterface オブジェクトは、特定の DeviceInterfaceClass に属します。 これはコントラクト定義に似ています。 これらのコントラクトは、他のすべての PnP オブジェクトと同様に、ID とプロパティで表されます。 DeviceInterfaceClass オブジェクトには、一意識別子と名前以外の情報がほとんど含まれています。

このオブジェクトの ID は、文字列としてのデバイス インターフェイス クラス GUID です。

DevicePanel 8

DeviceInformation オブジェクトは、デバイス エンクロージャの 1 つの物理面を表します。

このオブジェクトの ID を 文字列として指定します。

Unknown 0

オブジェクトは不明な型です。 この値は使用されません。

注釈

DeviceInformationKind 値をさまざまな列挙 API に渡して、列挙する特定の種類のデバイスを示すことができます。 ほとんどのシナリオでは、デバイス セレクターから DeviceInformation を受け取ります。 DeviceInformationKind を使用して特定の種類のデバイスを列挙する方法については、「 デバイスを列挙する」を参照してください。

次の図は、さまざまな種類のデバイスが相互にやり取りする方法を示しています。 また、リレーションシップを結びつけるプロパティも示します。 パフォーマンス上の理由から、リレーションシップ接続の多くは 1 方向にのみ接続されます。 例外は AepContainer です。 これには、 System.Devices.AepContainer.Children のおかげで子オブジェクトの一覧が含まれています。

DeviceInformationKind リレーションシップ

上の図の各行は、オブジェクト型間のリレーションシップがどのように定義されているかを表しています。 プライマリ オブジェクトには、 コア オブジェクト ID があります。次に、そのコア オブジェクト ID と等しい値を持つ、関連オブジェクトの プロパティがあります。

たとえば、 DeviceInterfaceClass には 0 から N の DeviceInterface オブジェクトがあります。 そのため、 DeviceInterfaceClass オブジェクトによって表されるデバイス インターフェイス クラスの DeviceInterface オブジェクトが 0 から N 個存在します。 DeviceInterfaceClass オブジェクトのコア オブジェクト ID は、デバイス インターフェイス クラス GUID です。 DeviceInterface オブジェクトには、 DEVPKEY_DeviceInterface_ClassGuid という名前のプロパティがあります。 そのプロパティ (GUID) の値は、 DeviceInterface オブジェクトのデバイス インターフェイス クラスが何であるか (つまり、インターフェイスの種類) を示します。 もちろん、その値は関連する DeviceInterfaceClass オブジェクトのコア オブジェクト ID と等しくなります。

その他の例を見てみましょう。 次に、デバイス オブジェクトを Web カメラにマップする方法の例を示します。 1 つのコンテナー、4 つのデバイス ノード (略して devnode) が表示され、展開された devnode には 5 つのデバイス インターフェイス (そのうちの 3 つが有効) があります。

Web カメラのデバイス オブジェクト

選択した (強調表示されている) デバイス インターフェイスのプロパティを見ると、オブジェクト モデルを結び付けるためにプロパティがどのように使用されているかを確認できます。 表示されるキー名は、実際には Win32 バージョン ( DEVPKEY_DeviceInterface_ClassGuid など) です。 Windows ランタイム (WinRT) では、プロパティはプロパティ システムによってマップされます (「デバイス (Windows プロパティ システム)」を参照)、DEVPKEY_DeviceInterface_ClassGuidと同等のSystem.Device.InterfaceClassGuid です。

X

たとえば、デバイス インターフェイス クラス ID (クラス GUID とも呼ばれます) がわかっている場合は、その ID (コア ID) を持つデバイス インターフェイス クラス オブジェクトを見つけることができます。 次の図では、 単に Cameras デバイス インターフェイス クラスであることがわかります。そのデバイス インターフェイス クラスに関する詳細情報を確認できます。 このデバイス インターフェイス クラス内のすべてのデバイス インターフェイスには、次に示すクラス GUID と等しい DEVPKEY_DeviceInterface_ClassGuid プロパティ値があります。

X

別の例を次に示します。Bluetooth ヘッドセットの今回。 devnode が選択されています。 強調表示されているのは、関連付けエンドポイント オブジェクトにマップされる AEP ID です。 これは、 Device オブジェクトと Aep オブジェクトの関係を示しています。 DEVPKEY_Aep_AepId (Win32) または System.Devices.Aep.AepId (WinRT) は、これら 2 つのオブジェクト型を一緒に照合する方法です。 ペアのデバイスからの場合、devnode には DEVPKEY_Aep_AepId プロパティ値が設定されます。 その後、その値を使用して、コア ID が値と一致する Aep オブジェクトを検索できます。

X

また、どのパネルに属しているのかを ID と共に示す devnode の例を次に示します。パネルは、パーソナル コンピューターのシャーシの上部にある USB ポートを表します。 これは、図の上部にある DevicePanelDevice (または devnode) の関係を示しています。 Devnode とデバイス インターフェイスには、 System.Devices.Panel.PanelId プロパティ値を指定できます。 その後、その値を使用して、コア ID が値と一致する DevicePanel オブジェクトを検索できます。

X

AssociationEndpointProtocol 定数の場合、AQS セレクター文字列の例を次に示します。

System.Devices.Aep.ProtocolId:="{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}" (Bluetooth クラシックの場合) または System.Devices.Aep.ProtocolId:=:"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}" (Bluetooth LE の場合)。

System.Devices.Aep.ProtocolId は propsys のプロトコルの名前です。DEVPKEY_Aep_ProtocolIdは Win32 DEVPKEY です。

プロトコルの列挙の代表的な例と、それが AEP プロパティ (角かっこ内の注釈付き) に一致する方法の代表的な例を次に示します。

> pairtool /enum-protocols
...
Protocol ID:                Bluetooth [DEVPKEY_Aep_ProviderName]
Protocol Provider Name:     Bluetooth
Protocol Name:              Bluetooth Classic
Universal Protocol ID:      {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} [DEVPKEY_Aep_ProtocolId // <propertyDescription name="System.Devices.Aep.ProtocolId" formatID="{3B2CE006-5E61-4FDE-BAB8-9B8AAC9B26DF}" propID="5">]
Protocol Provider Class ID: {4aa383d6-337a-43d3-a3fa-c14b26004130}

Protocol ID:                BluetoothLE [DEVPKEY_Aep_ProviderName]
Protocol Provider Name:     BluetoothLE
Protocol Name:              Bluetooth Low Energy
Universal Protocol ID:      {bb7bb05e-5972-42b5-94fc-76eaa7084d49} [DEVPKEY_Aep_ProtocolId]
Protocol Provider Class ID: {0829c308-d361-49f4-828b-506d552029ef} 
...
> pairtool /enum-endpoints

BluetoothLE#BluetoothLEdc:46:28:6a:16:01-20:4c:03:45:07:ca
  1)DEVPKEY_Aep_ContainerId [SYS] (null) DEVPROP_TYPE_GUID 16 {72888bff-567a-54f9-861a-73a3f2df469c} 
...
  30)DEVPKEY_Aep_ProviderName [SYS] (null) DEVPROP_TYPE_STRING 24 "BluetoothLE"
  33)DEVPKEY_Aep_ProtocolId [SYS] (null) DEVPROP_TYPE_GUID 16 {bb7bb05e-5972-42b5-94fc-76eaa7084d49}

バージョン履歴

Windows のバージョン SDK バージョン 追加された値
1809 17763 DevicePanel

適用対象

こちらもご覧ください