デバイス情報プロパティ

各デバイスには、特定の情報が必要なときやデバイス セレクターを作成するときに使用できる、DeviceInformation プロパティが関連付けられています。 高度なクエリ構文 (AQS) フィルターを使用して、これらのプロパティを指定し、指定された特性を持つ列挙デバイスを制限できます。 これらのプロパティを使用して、各デバイスに対して返される情報を示すこともできます。 そのようにすると、アプリケーションに返されるデバイス情報を指定できます。

重要な API

デバイス セレクターで DeviceInformation プロパティを使用する方法の詳細については、「デバイス セレクターのビルド」を参照してください。 このトピックでは、情報プロパティを要求する方法と、いくつかの一般的なプロパティについて説明します。

DeviceInformation オブジェクトは、ID (DeviceInformation.Id)、種類 (DeviceInformation.Kind)、プロパティ バッグ (DeviceInformation.Properties) で構成されます。 DeviceInformation オブジェクトの他のすべてのプロパティは、Properties プロパティ バッグから派生します。 たとえば、NameSystem.ItemNameDisplay から派生します。 つまり、プロパティ バッグには、他のプロパティの決定に必要な情報が必ず含まれています。

プロパティの要求

DeviceInformation オブジェクトには、IDKind などの基本的なプロパティがいくつかありますが、ほとんどのプロパティは Properties のプロパティ バッグに格納されます。 このため、プロパティ バッグには、プロパティ バッグからプロパティを取得するために使用されるプロパティが含まれています。 たとえば、Name プロパティを取得するには System.ItemNameDisplay を使用します。 これは、わかりやすい名前を持つ既知の共通プロパティの場合です。 Windows には、プロパティのクエリをより簡単に実行できるように、こうしたわかりやすい名前がいくつか用意されています。

プロパティを要求する場合、わかりやすい名前を持つ共通プロパティに限定されることはありません。 個々のデバイスまたはドライバーで提供されるカスタム プロパティであっても、基になる GUID とプロパティ ID (PID) を指定すると、使用可能なプロパティを要求できます。 カスタム プロパティを指定するための形式は "{GUID} PID" です。 例: "{744e3bed-3684-4e16-9f8a-07953a8bf2ab} 7"。

Note

プロパティ GUID の一覧は、デバイス ドライバーのデバイス プロパティ キー ヘッダー ファイルにあります。

一部のプロパティはすべての DeviceInformationKind オブジェクトに共通ですが、ほとんどのプロパティは特定の種類に固有です。 次のセクションでは、個々の DeviceInformationKind で並べ替えられた共通プロパティを一覧表示します。 さまざまな種類の相互関係の詳細については、DeviceInformationKind を参照してください。

DeviceInterface プロパティ

DeviceInterface は、アプリ シナリオで使用される既定の最も一般的な DeviceInformationKind オブジェクトです。 これは、デバイス API で別の特定の DeviceInformationKind が示されていない限り、使用する必要があるオブジェクトの種類です。

名前 種類 説明
System.Devices.ContainerId GUID この DeviceInterface が含まれているデバイスを含む DeviceInformationKind.DeviceContainer の ID。 この値を DeviceInformationKind.DeviceContainer と共に CreateFromIdAsync に渡すと、適切なコンテナーを見つけることができます。
System.Devices.InterfaceClassGuid GUID このインターフェイスが表すインターフェイス クラス GUID。
System.Devices.DeviceInstanceId String DeviceInformationKind.Device の ID。 この値を DeviceInformationKind.Device と共に CreateFromIdAsync に渡すと、適切なデバイスを見つけることができます。
System.Devices.InterfaceEnabled Boolean インターフェイスが有効になっているかどうかを示します。 DeviceInformation.IsEnabled はこのプロパティから派生します。
System.Devices.GlyphIcon String グリフのアイコン パス。
System.Devices.IsDefault Boolean これが System.Devices.InterfaceClassGuid の既定のデバイスであるかどうかを示します。 これはプリンターに主に使用されます。 複数のオーディオの既定値があるため、これはオーディオでは機能しません。 オーディオの既定値を取得するには、GetDefaultAudioRenderId または GetDefaultAudioCaptureId を使用します。
System.Devices.Icon String アイコン パス。
System.ItemNameDisplay String デバイス オブジェクトに最適な表示名。

 

デバイスのプロパティ

名前 種類 説明
System.Devices.ClassGuid GUID デバイスのインストール時に使用されるデバイス クラス。 詳細については「デバイス セットアップ クラス」を参照してください。
System.Devices.CompatibleIds String[] デバイスの互換性 ID。 これらは、Windows がデバイスにインストールする最適なドライバーを決定するときに使用されます。 詳細については、「互換性 ID」を参照してください。
System.Devices.ContainerId GUID このデバイスを含む DeviceInformationKind.DeviceContainer の ID。 この値を DeviceInformationKind.DeviceContainer と共に CreateFromIdAsync に渡すと、適切なコンテナーを見つけることができます。
System.Devices.DeviceCapabilities UInt32 CfgMgr32.h で定義された CM_DEVCAP_X 機能フラグのビット単位の OR。 詳しくは、「DEVPKEY_Device_Capabilities」をご覧ください。
System.Devices.DeviceHasProblem Boolean デバイスに現在問題があり、正しく機能していない可能性があります。 これは、ドライバーが古いか、見つからないか、または無効であることが原因である可能性があります。
System.Devices.DeviceInstanceId String デバイスの ID。 これは DeviceInformation.Id の値でもあります。
System.Devices.DeviceManufacturer String デバイスの製造元。
System.Devices.HardwareIds String[] デバイスのハードウェア ID。 Windows では、インストールに最適なドライバーを決定するときに、これらの ID が使用されます。 デバイス ベンダーはこのプロパティを使用して、アプリからデバイスを識別できます。 詳細については、「ハードウェア ID」を参照してください。
System.Devices.Parent String 親デバイスの DeviceInformation.Id。 これは接続の親であり、DeviceContainer の親ではありません。
System.Devices.Present Boolean デバイスが現在存在し、使用可能かどうかを示します。
System.ItemNameDisplay String このデバイス オブジェクトに最適な表示名。 この場合、これは必ずしもユーザーに最適な名前であるとは限りません。 関連付けられている DeviceContainer または DeviceInterfaceSystem.ItemNameDisplay を参照すると、わかりやすい名前の候補が見つかる可能性が高くなります。

 

DeviceContainer プロパティ

名前 種類 説明
System.Devices.Category String[] デバイスが属しているカテゴリの説明の一覧。 この一覧は、単一のカテゴリとして提供されます。 たとえば、"Display"、"Phone"、"Audio device" などです。
System.Devices.CategoryIds String[] このデバイスが属するカテゴリの一覧が含まれています。 たとえば、Audio.HeadphoneDisplay.MonitorInput.Gaming などです。
System.Devices.CategoryPlural String[] デバイスが属しているカテゴリの説明の一覧。 この一覧は、複数のカテゴリとして提供されます。 たとえば、"Displays"、"Phones"、"Audio devices" などです。
System.Devices.CompatibleIds String[] すべての子 DeviceInformationKind.Device オブジェクトの互換性 ID のコレクション。
System.Devices.Connected Boolean デバイスが現在システムに接続されているかどうかを示します。
System.Devices.GlyphIcon String グリフのアイコン パス。
System.Devices.HardwareIds String[] すべての子 DeviceInformationKind.Device オブジェクトのハードウェア ID のコレクション。
System.Devices.Icon String アイコン パス。
System.Devices.LocalMachine Boolean この DeviceContainer がシステム自体を表す場合は True、デバイスがシステムの外部にある場合は false
System.Devices.Manufacturer String デバイスの製造元。
System.Devices.ModelName String デバイス コンテナーのモデル名。
System.Devices.Paired Boolean DeviceInformationKind.Device オブジェクトが、現在システムとペアリングされているワイヤレス デバイスかネットワーク デバイスかを示します。
System.ItemNameDisplay String このデバイスに最適な表示名。

 

DeviceInterfaceClass プロパティ

名前 種類 説明
System.ItemNameDisplay String このデバイスに最適な表示名。

 

DevicePanel のプロパティ

名前 種類 説明
System.Devices.Panel.PanelId String DevicePanel オブジェクトの識別子。
System.Devices.Panel.PanelGroup String PanelGroup の識別子。

AssociationEndpoint プロパティ

名前 種類 説明
System.Devices.Aep.AepId String このデバイスの ID。 これは DeviceInformation.Id の値でもあります。
System.Devices.Aep.CanPair Boolean デバイスをシステムとペアリングできるかどうかを示します。 DeviceInformationPairing.CanPair はこのプロパティから派生しています。
System.Devices.Aep.Category String[] デバイスが含まれるカテゴリ。 たとえば、プリンターやカメラ。
System.Devices.Aep.ContainerId GUID AssociationEndpointContainer オブジェクトの ID。
System.Devices.Aep.DeviceAddress String デバイスのアドレス。 デバイスがネットワーク デバイスの場合、これは IP アドレスです。
System.Devices.Aep.IsConnected Boolean デバイスが現在システムに接続されているかどうかを示します。
System.Devices.Aep.IsPaired Boolean デバイスが現在ペアリングされているかどうかを示します。 DeviceInformationPairing.IsPaired はこのプロパティから派生しています。
System.Devices.Aep.IsPresent Boolean デバイスが現在存在するかどうかを示します。つまり、デバイスは存在しており、ネットワーク プロトコルまたはワイヤレス プロトコル経由で検出されます。 デバイスがシステムとペアリングされると、デバイスはキャッシュされます。 その後、AssociationEndpoint オブジェクトのクエリを実行すると、デバイスが自動的に検出されます。 このため、クエリでデバイスを検出しただけでは、デバイスが現在使用可能かどうかを示すことはできません。 そのため、このプロパティは重要です。
System.Devices.Aep.Manufacturer String デバイスの製造元。
System.Devices.Aep.ModelId GUID デバイスのモデル ID。
System.Devices.Aep.ModelName String 送信元デバイスのモデル名。
System.Devices.Aep.ProtocolId GUID この AssocationEndpoint デバイスの検出に使用されるプロトコルを示します。
System.Devices.Aep.SignalStrength Int32 デバイスの信号強度。 このプロパティは、一部のプロトコルにのみ適用されます。
System.ItemNameDisplay String デバイスに最適な表示名。

 

AssociationEndpointContainer プロパティ

名前 種類 説明
System.Devices.AepContainer.Categories String[] デバイスが含まれるカテゴリ。 たとえば、プリンターやカメラ。
System.Devices.AepContainer.Children String[] このコンテナーの一部である AssocationEndpoint オブジェクトの ID コレクション。
System.Devices.AepContainer.CanPair Boolean AssociationEndpoint デバイスの 1 つをシステムとペアリングできるかどうかを示します。 DeviceInformationPairing.CanPair はこのプロパティから派生しています。
System.Devices.AepContainer.ContainerId GUID このデバイスの ID。 これは DeviceInformation.Id の値でもありますが、GUID 形式です。
System.Devices.AepContainer.IsPaired Boolean AssociationEndpoint デバイスの 1 つが現在ペアリングされているかどうかを示します。 DeviceInformationPairing.IsPaired はこのプロパティから派生しています。
System.Devices.AepContainer.IsPresent Boolean AssociationEndpoint デバイスの 1 つが現在存在するかどうかを示します。つまり、デバイスは存在しており、ネットワーク プロトコルまたはワイヤレス プロトコル経由で検出されます。 デバイスがシステムとペアリングされると、デバイスはキャッシュされます。 その後、AssociationEndpoint オブジェクトのクエリを実行すると、デバイスが自動的に検出されます。 このため、クエリでデバイスを検出しただけでは、デバイスが現在使用可能かどうかを示すことはできません。 そのため、このプロパティは重要です。
System.Devices.AepContainer.Manufacturer String デバイスの製造元。
System.Devices.AepContainer.ModelIds String[] デバイスのモデル ID の一覧。 各モデルは、文字列形式の GUID です。
System.Devices.AepContainer.ModelName String 送信元デバイスのモデル名。
System.Devices.AepContainer.ProtocolIds GUID[] この AssociationEndpointContainer オブジェクトのビルドに寄与したプロトコル ID の一覧。 AssociationEndpointContainer デバイスは、同じ物理デバイスの異なるプロトコル経由で検出されたすべての AssociationEndpoint デバイスを収集して作成されることにご注意ください。
System.Devices.AepContainer.SupportedUriSchemes String[] このデバイスでサポートされているキャスト URI スキームの一覧。
System.Devices.AepContainer.SupportsAudio Boolean このデバイスでオーディオ キャストがサポートされているかどうかを示します。
System.Devices.AepContainer.SupportsImages Boolean このデバイスでイメージ キャストがサポートされているかどうかを示します。
System.Devices.AepContainer.SupportsVideo Boolean このデバイスでビデオ キャストがサポートされているかどうかを示します。
System.ItemNameDisplay String デバイスに最適な表示名。

 

AssociationEndpointService プロパティ

名前 種類 説明
System.Devices.AepService.AepId String AssociationEndpoint オブジェクトの ID。
System.Devices.AepService.ContainerId GUID AssociationEndpointContainer オブジェクトの識別子。
System.Devices.AepService.ParentAepIsPaired Boolean AssociationEndpoint オブジェクトがシステムとペアリングされているかどうかを示します。
System.Devices.AepService.ProtocolId GUID このデバイスの検出に使用されるプロトコルの ID。
System.Devices.AepService.ServiceClassId GUID このデバイスによって表されるサービスの ID。
System.Devices.AepService.ServiceId String このサービスの ID。 これは DeviceInformation.Id の値でもあります。
System.ItemNameDisplay String サービスに最適な表示名。