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) (裝置關聯端點。 AEP 通常代表透過無線或網路協定探索到的裝置。 其中一些端點可以使用,而不需要先配對裝置。 使用 CanPair 來判斷裝置是否支援配對和 IsPaired ,以判斷裝置是否已與系統配對。 只有 AssociationEndpoint 物件具有非 NULL 值來進行 配對。 如需透過網路配對的詳細資訊,請參閱 透過網路列舉裝置。 AssociationEndpoint 對像是單一 AssociationEndpointContainer 物件的子系,可以包含 0 個以上的 AssociationEndpointService 物件。 這個物件的 標識碼 。 |
AssociationEndpointContainer | 6 | DeviceInformation 物件代表 AEP) 容器 (關聯端點。 AssociationEndpointContainer 物件代表可能有一個以上的 AssociationEndpoint 物件與其相關聯的單一實體裝置。 例如,如果電視支援兩種不同的網路協定, AssociationEndpointContainer 會是電視。 它也會有兩個 AssociationEndpoint 物件來代表每個通訊協定。 |
AssociationEndpointProtocol | 9 | DeviceInformation 物件代表通訊協定,可透過此通訊協定探索 (AP) 關聯端點。 您可以使用通訊協定標識碼,將關聯端點探索範圍限定為特定通訊協定。 例如,下列選取器會將探索範圍設定為藍牙 LE 或藍牙傳統。 See Remarks for more info. |
AssociationEndpointService | 7 | DeviceInformation 物件代表 AEP) Service (關聯端點。 AssociationEndpointService 物件代表裝置所公開的功能服務合約。 並非所有通訊協定都支援 AEP 服務。 AssociationEndpointService 可以有單一父代 AssociationEndpointContainer 物件。 這個物件的 標識碼 做為字串。 |
Device | 3 | DeviceInformation 物件代表裝置物件。 這也稱為 devnode。 這些裝置是代表裝置功能片段的物件,並選擇性地將驅動程式載入它們上。 當實體裝置與視窗配對時,會為其建立多個 Device 物件。 裝置包含 0 或多個 DeviceInterface 物件、是一個 DeviceContainer 物件的子系,且與 0 或 1 AssociationEndpoint 物件相關。 此物件的 標識碼 是這個物件的裝置實例識別碼。 |
DeviceContainer | 2 | DeviceInformation 物件代表裝置容器。 DeviceContainer 物件描述存在於相同實體裝置中的裝置物件集合。 例如,多函式印表機可能包含數個不同的裝置,但它們全都存在於父 DeviceContainer 物件的一部分。 |
DeviceInterface | 1 | DeviceInformation 物件代表 PnP 裝置介面。 這些是由設備驅動器公開,讓應用程式能夠與裝置通訊,通常是使用裝置 IOCTLS (輸入輸出控件) 。 這種類型的 DeviceInformation 物件包含 PnP DeviceInterface 物件的所有屬性,以及父 PnP DeviceContainer 物件的某些屬性。 當使用者需要選取裝置以完成應用程式案例時,可以向用戶顯示這個屬性組合。 DeviceInterface 物件只能是一個 DeviceContainer 物件的子系。 這是列舉裝置而不指定特定種類時的預設 DeviceInformationKind。 此物件的 標識碼 是裝置介面標識碼或裝置介面路徑。 |
DeviceInterfaceClass | 4 | DeviceInformation 物件代表裝置介面類別。 每個 DeviceInterface 物件都屬於特定的 DeviceInterfaceClass。 這類似於合約定義。 這些合約會以標識碼和屬性來表示,就像所有其他 PnP 對象一樣。 DeviceInterfaceClass 物件包含比唯一標識符和名稱還少的資訊。 |
DevicePanel | 8 | DeviceInformation 物件代表裝置機箱的單一實體表面。 這個物件的 標識碼 做為字串。 |
Unknown | 0 | 對像是未知的類型。 不使用這個值。 |
備註
DeviceInformationKind 值可以傳遞至各種列舉 API,以指出您想要列舉的特定裝置種類。 在大部分情況下,您會從裝置選取器收到 DeviceInformation 。 若要查看如何使用 DeviceInformationKind 列舉特定種類的裝置,請參閱 列舉裝置。
下圖顯示不同裝置類型如何彼此互動。 它也會指出將關聯性系結在一起的屬性。 基於效能考慮,許多關聯性連線只會以一個方向進行。 此例外狀況為 AepContainer。 它包含其子對象的清單,感謝 System.Devices.AepContainer.Children。
上圖中的每個線條都代表如何定義物件類型之間的關聯性。 主要物件具有 核心物件標識碼。然後,相關物件上有屬性,其值等於該核心物件標識符。
例如,DeviceInterfaceClass 有 0 到 N 個 DeviceInterface 物件。 因此,0 到 N 個 DeviceInterface 物件存在,這些物件是 DeviceInterfaceClass 物件所代表的裝置介面類別。 DeviceInterfaceClass 物件的核心物件標識符是裝置介面類別 GUID。 DeviceInterface 對象接著會有名為 DEVPKEY_DeviceInterface_ClassGuid 的屬性。 該屬性的值 (GUID) 指出 DeviceInterface 物件的裝置 介面類別 (也就是它所) 的介面類型。 當然,該值等於相關 DeviceInterfaceClass 物件的核心物件標識符。
讓我們看看一些更多範例。 以下是裝置物件如何在網路攝影機上對應的範例。 您可以看到一個容器、四個裝置節點 (開發節點) ,而展開的 devnode 有五個裝置介面 (其中三個裝置介面已啟用) 。
查看選取 (醒目提示) 裝置介面的屬性,您可以看到屬性如何用來將物件模型系結在一起。 例如,顯示的索引鍵名稱實際上是 Win32 版本 (,DEVPKEY_DeviceInterface_ClassGuid) 。 在 Windows 執行階段 (WinRT) 中,屬性會由屬性系統對應, (請參閱裝置 (Windows 屬性系統) ) ,因此相當於 system.Device.InterfaceClassGuid DEVPKEY_DeviceInterface_ClassGuid。
例如,如果您知道裝置介面類別標識碼 (也稱為類別 GUID) ,則可以使用該標識碼 (找到裝置介面類別物件,也就是其核心標識碼) 。 在下圖中,您可以看到它剛好是 相機 裝置介面類別;和 您可以看到該裝置介面類別的詳細資訊。 此裝置介面類別中的任何裝置介面都會有等於下列類別 GUID 的DEVPKEY_DeviceInterface_ClassGuid 屬性值。
以下是另一個範例;這一次是藍牙頭戴式裝置。 已選取 devnode。 反白顯示的是它對應至關聯端點物件的AEP標識符。 這說明 Device 物件與 Aep 物件之間的關聯性。 DEVPKEY_Aep_AepId (Win32) 或 System.Devices.Aep.AepId (WinRT) 是將這兩個物件類型一起比對的方式。 如果 devnode 來自配對的裝置,則其會有 DEVPKEY_Aep_AepId 屬性值。 然後,您可以使用該值來尋找核心標識符符合值的 Aep 物件。
以下是開發人員節點的範例,其中顯示其所屬的面板及其標識符。面板代表個人電腦底座頂端的USB埠。 這說明圖) 和 Device (或 devnode 之圖頂端的 DevicePanel (之間的關聯性;在圖例底部) 。 Devnodes 和裝置介面可以有 System.Devices.Panel.PanelId 屬性值。 然後,您可以使用該值來尋找核心標識符符合值的 DevicePanel 物件。
針對 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 |