デバイス情報プロパティ
各デバイスには、特定の情報が必要なときやデバイス セレクターを作成するときに使用できる、DeviceInformation プロパティが関連付けられています。 高度なクエリ構文 (AQS) フィルターを使用して、これらのプロパティを指定し、指定された特性を持つ列挙デバイスを制限できます。 これらのプロパティを使用して、各デバイスに対して返される情報を示すこともできます。 そのようにすると、アプリケーションに返されるデバイス情報を指定できます。
重要な API
デバイス セレクターで DeviceInformation プロパティを使用する方法の詳細については、「デバイス セレクターのビルド」を参照してください。 このトピックでは、情報プロパティを要求する方法と、いくつかの一般的なプロパティについて説明します。
DeviceInformation オブジェクトは、ID (DeviceInformation.Id)、種類 (DeviceInformation.Kind)、プロパティ バッグ (DeviceInformation.Properties) で構成されます。 DeviceInformation オブジェクトの他のすべてのプロパティは、Properties プロパティ バッグから派生します。 たとえば、Name は System.ItemNameDisplay から派生します。 つまり、プロパティ バッグには、他のプロパティの決定に必要な情報が必ず含まれています。
プロパティの要求
DeviceInformation オブジェクトには、ID や Kind などの基本的なプロパティがいくつかありますが、ほとんどのプロパティは 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 または DeviceInterface の System.ItemNameDisplay を参照すると、わかりやすい名前の候補が見つかる可能性が高くなります。 |
DeviceContainer プロパティ
名前 | 種類 | 説明 |
---|---|---|
System.Devices.Category | String[] | デバイスが属しているカテゴリの説明の一覧。 この一覧は、単一のカテゴリとして提供されます。 たとえば、"Display"、"Phone"、"Audio device" などです。 |
System.Devices.CategoryIds | String[] | このデバイスが属するカテゴリの一覧が含まれています。 たとえば、Audio.Headphone、Display.Monitor、Input.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 | サービスに最適な表示名。 |