DeviceInformationKind 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义指定 一种 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 对象来表示每个协议。 |
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 对象的一部分存在。 |
DeviceInterface | 1 | DeviceInformation 对象表示 PnP 设备接口。 这些由设备驱动程序公开,使应用能够与设备通信,通常使用设备 IOCTLS (输入输出控件) 。 这种类型的 DeviceInformation 对象包含 PnP DeviceInterface 对象的所有属性以及父 PnP DeviceContainer 对象的一些属性。 当用户需要选择设备来完成应用方案时,可以向用户显示此属性组合。 DeviceInterface 对象只能是一个 DeviceContainer 对象的子对象。 这是枚举设备而不指定特定类型的默认 DeviceInformationKind。 此对象的 ID 是设备接口 ID 或设备接口路径。 |
DeviceInterfaceClass | 4 | DeviceInformation 对象表示设备接口类。 每个 DeviceInterface 对象都属于某个 DeviceInterfaceClass。 这类似于协定定义。 这些协定使用 ID 和属性表示,就像所有其他 PnP 对象一样。 DeviceInterfaceClass 对象包含的信息比唯一标识符和名称可能更多的信息。 |
DevicePanel | 8 | DeviceInformation 对象表示设备机箱的单个物理面。 此对象的 ID 作为字符串。 |
Unknown | 0 | 对象的类型未知。 不使用此值。 |
注解
可以将 DeviceInformationKind 值传递给各种枚举 API,以指示要枚举的特定类型的设备。 在大多数情况下,你将从设备选择器收到 DeviceInformation 。 若要了解如何使用 DeviceInformationKind 枚举特定类型的设备,请参阅 枚举设备。
下图显示了不同设备类型如何相互交互。 它还指示将关系绑定在一起的属性。 出于性能原因,许多关系连接只向一个方向发展。 AepContainer 除外。 它包含其子对象的列表,这要归功于 System.Devices.AepContainer.Children。
![DeviceInformationKind 关系](windows.devices.enumeration/images/device_type_interaction.png?view=winrt-26100)
上图中的每一行都表示如何定义对象类型之间的关系。 主对象具有 核心对象 ID。然后,相关对象上有一个属性,其值等于该核心对象 ID。
例如, DeviceInterfaceClass 有 0 到 N 个 DeviceInterface 对象。 因此,存在 0 到 N 个 DeviceInterface 对象,这些对象属于 DeviceInterfaceClass 对象表示的设备接口类。 DeviceInterfaceClass 对象的核心对象 ID 是设备接口类 GUID。 DeviceInterface 对象又具有名为 DEVPKEY_DeviceInterface_ClassGuid 的属性。 该属性的值 (GUID) 指示 DeviceInterface 对象的设备接口类 (即它) 的接口类型。 当然,该值等于相关 DeviceInterfaceClass 对象的核心对象 ID。
让我们再看一些示例。 下面是设备对象如何在网络摄像头上映射的示例。 可以看到一个容器、四个设备节点 (短) 开发节点,扩展开发节点有五个设备接口 (其中三个) 启用。
![网络摄像头的设备对象](windows.devices.enumeration/images/example_1.png?view=winrt-26100)
查看) 设备接口突出显示的选定 (的属性,可以看到如何使用这些属性将对象模型绑定在一起。 显示的密钥名称实际上是 Win32 版本 (例如 ,DEVPKEY_DeviceInterface_ClassGuid) 。 在 Windows 运行时 (WinRT) 中,属性由属性系统映射, (请参阅设备 (Windows 属性系统) ) ,因此DEVPKEY_DeviceInterface_ClassGuid的等效项是 System.Device.InterfaceClassGuid。
![X](windows.devices.enumeration/images/example_2.png?view=winrt-26100)
例如,如果知道设备接口类 ID (也称为类 GUID) ,则可以找到具有该 ID 的设备接口类对象 (这是其核心 ID) 。 在下图中,可以看到它恰好是 相机 设备接口类;可以看到有关该设备接口类的详细信息。 此设备接口类中的任何设备接口都具有等于下面所示的类 GUID 的DEVPKEY_DeviceInterface_ClassGuid 属性值。
![X](windows.devices.enumeration/images/example_3.png?view=winrt-26100)
下面是另一个示例:这一次是蓝牙头戴显示设备。 已选择开发节点。 突出显示的是它映射到关联终结点对象的 AEP ID。 这说明了 Device 对象与 Aep 对象之间的关系。 DEVPKEY_Aep_AepId (Win32) 或 System.Devices.Aep.AepId (WinRT) 是将这两种对象类型匹配在一起的方法。 如果 devnode 来自配对设备,则具有 DEVPKEY_Aep_AepId 属性值。 然后,可以使用该值查找其核心 ID 与值匹配的 Aep 对象。
![X](windows.devices.enumeration/images/example_4.png?view=winrt-26100)
下面是一个开发节点示例,其中显示了它所属的面板及其 ID。面板表示个人计算机机箱顶部的 USB 端口。 这说明了图) 顶部的 DevicePanel (与 Device (或 devnode 之间的关系;图的底部) 。 开发节点和设备接口可以具有 System.Devices.Panel.PanelId 属性值。 然后,可以使用该值查找其核心 ID 与值匹配的 DevicePanel 对象。
![X](windows.devices.enumeration/images/example_5.png?view=winrt-26100)
对于 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 |