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 确定设备是否支持配对,使用 IsPair 确定设备是否已与系统配对。 只有 AssociationEndpoint 对象具有用于 配对的非 NULL 值。 有关通过网络进行配对的详细信息,请参阅 通过网络枚举设备AssociationEndpoint 对象是单个 AssociationEndpointContainer 对象的子级,可以包含 0 个或多个 AssociationEndpointService 对象。

此对象的 ID

AssociationEndpointContainer 6

DeviceInformation 对象表示 (AEP) 容器的关联终结点。 AssociationEndpointContainer 对象表示可能具有多个关联的 AssociationEndpoint 对象的单个物理设备。 例如,如果电视支持两种不同的网络协议,则 AssociationEndpointContainer 将是电视。 它还将具有两个 AssociationEndpoint 对象来表示每个协议。

此对象的 ID 是字符串格式的 AEP 容器 GUID

AssociationEndpointProtocol 9

DeviceInformation 对象表示一个协议,通过该协议可以发现关联终结点 (AEP) 。 可以使用协议 ID 将关联终结点发现范围限定为特定协议。 例如,以下选择器将发现范围限定为蓝牙 LE 或蓝牙经典。

有关详细信息 ,请参阅备注

AssociationEndpointService 7

DeviceInformation 对象表示 AEP) 服务 (关联终结点。 AssociationEndpointService 对象表示设备公开的功能服务协定。 并非所有协议都支持 AEP 服务。 AssociationEndpointService 可以具有单个父 AssociationEndpointContainer 对象。

此对象的 ID 作为字符串。

Device 3

DeviceInformation 对象表示设备对象。 这也可以称为开发节点。 这些设备是表示设备功能的一部分的对象,并且可以选择在设备上加载驱动程序。 当物理设备与窗口配对时,会为其创建多个 Device 对象。 设备包含 0 个或多个 DeviceInterface 对象,是一个 DeviceContainer 对象的子对象,与 0 或 1 个 AssociationEndpoint 对象相关。

此对象的 ID 是此对象的设备实例 ID。

DeviceContainer 2

DeviceInformation 对象表示设备容器。 DeviceContainer 对象描述同一物理设备中存在的设备对象的集合。 例如,多功能打印机可能包含多个不同的设备,但它们都作为父 DeviceContainer 对象的一部分存在。

此对象的 ID 是设备容器 GUID 作为字符串。

DeviceInterface 1

DeviceInformation 对象表示 PnP 设备接口。 这些由设备驱动程序公开,使应用能够与设备通信,通常使用设备 IOCTLS (输入输出控件) 。

这种类型的 DeviceInformation 对象包含 PnP DeviceInterface 对象的所有属性以及父 PnP DeviceContainer 对象的一些属性。 当用户需要选择设备来完成应用方案时,可以向用户显示此属性组合。 DeviceInterface 对象只能是一个 DeviceContainer 对象的子对象。

这是枚举设备而不指定特定类型的默认 DeviceInformationKind。

此对象的 ID 是设备接口 ID 或设备接口路径。

DeviceInterfaceClass 4

DeviceInformation 对象表示设备接口类。 每个 DeviceInterface 对象都属于某个 DeviceInterfaceClass。 这类似于协定定义。 这些协定使用 ID 和属性表示,就像所有其他 PnP 对象一样。 DeviceInterfaceClass 对象包含的信息比唯一标识符和名称可能更多的信息。

此对象的 ID 是设备接口类 GUID 作为字符串。

DevicePanel 8

DeviceInformation 对象表示设备机箱的单个物理面。

此对象的 ID 作为字符串。

Unknown 0

对象的类型未知。 不使用此值。

注解

可以将 DeviceInformationKind 值传递给各种枚举 API,以指示要枚举的特定类型的设备。 在大多数情况下,你将从设备选择器收到 DeviceInformation 。 若要了解如何使用 DeviceInformationKind 枚举特定类型的设备,请参阅 枚举设备

下图显示了不同设备类型如何相互交互。 它还指示将关系绑定在一起的属性。 出于性能原因,许多关系连接只向一个方向发展。 AepContainer 除外。 它包含其子对象的列表,这要归功于 System.Devices.AepContainer.Children

DeviceInformationKind 关系

上图中的每一行都表示如何定义对象类型之间的关系。 主对象具有 核心对象 ID。然后,相关对象上有一个属性,其值等于该核心对象 ID。

例如, DeviceInterfaceClass 有 0 到 N 个 DeviceInterface 对象。 因此,存在 0 到 N 个 DeviceInterface 对象,这些对象属于 DeviceInterfaceClass 对象表示的设备接口类。 DeviceInterfaceClass 对象的核心对象 ID 是设备接口类 GUID。 DeviceInterface 对象又具有名为 DEVPKEY_DeviceInterface_ClassGuid 的属性。 该属性的值 (GUID) 指示 DeviceInterface 对象的设备接口类 (即它) 的接口类型。 当然,该值等于相关 DeviceInterfaceClass 对象的核心对象 ID。

让我们再看一些示例。 下面是设备对象如何在网络摄像头上映射的示例。 可以看到一个容器、四个设备节点 (短) 开发节点,扩展开发节点有五个设备接口 (其中三个) 启用。

网络摄像头的设备对象

查看) 设备接口突出显示的选定 (的属性,可以看到如何使用这些属性将对象模型绑定在一起。 显示的密钥名称实际上是 Win32 版本 (例如 ,DEVPKEY_DeviceInterface_ClassGuid) 。 在 Windows 运行时 (WinRT) 中,属性由属性系统映射, (请参阅设备 (Windows 属性系统) ) ,因此DEVPKEY_DeviceInterface_ClassGuid的等效项是 System.Device.InterfaceClassGuid

X

例如,如果知道设备接口类 ID (也称为类 GUID) ,则可以找到具有该 ID 的设备接口类对象 (这是其核心 ID) 。 在下图中,可以看到它恰好是 相机 设备接口类;可以看到有关该设备接口类的详细信息。 此设备接口类中的任何设备接口都具有等于下面所示的类 GUID 的DEVPKEY_DeviceInterface_ClassGuid 属性值。

X

下面是另一个示例:这一次是蓝牙头戴显示设备。 已选择开发节点。 突出显示的是它映射到关联终结点对象的 AEP ID。 这说明了 Device 对象与 Aep 对象之间的关系。 DEVPKEY_Aep_AepId (Win32) 或 System.Devices.Aep.AepId (WinRT) 是将这两种对象类型匹配在一起的方法。 如果 devnode 来自配对设备,则具有 DEVPKEY_Aep_AepId 属性值。 然后,可以使用该值查找其核心 ID 与值匹配的 Aep 对象。

X

下面是一个开发节点示例,其中显示了它所属的面板及其 ID。面板表示个人计算机机箱顶部的 USB 端口。 这说明了图) 顶部的 DevicePanel (与 Device (或 devnode 之间的关系;图的底部) 。 开发节点和设备接口可以具有 System.Devices.Panel.PanelId 属性值。 然后,可以使用该值查找其核心 ID 与值匹配的 DevicePanel 对象。

X

对于 AssociationEndpointProtocol 常量,AQS 选择器字符串示例为:

System.Devices.Aep.ProtocolId:="{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}" 适用于蓝牙经典) 的 (或 System.Devices.Aep.ProtocolId:=:"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}" 蓝牙 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

适用于

另请参阅