共用方式為


裝置資訊屬性

每個裝置都有關聯的 DeviceInformation 屬性,您可以在需要特定資訊或建置裝置選取器時使用這些屬性。 進階查詢語法 (AQS) 篩選器可用於指定這些屬性,並限制具有指定特徵的列舉裝置。 您也可以使用這些屬性來指示您想要為每個裝置傳回哪些資訊。 這可讓您指定傳回應用程式的裝置資訊。

重要 API

有關在裝置選取器中使用 DeviceInformation 屬性的更多資訊,請參閱建置裝置選取器。 本主題示範如何要求資訊屬性,並描述一些常見屬性。

DeviceInformation 物件由身分識別 (DeviceInformation.Id)、類型 (DeviceInformation.Kind) 和屬性包 (DeviceInformation.Properties) 組成。 DeviceInformation 物件的所有其他屬性均衍生自 Properties 屬性包。 例如,Name 衍生自 System.ItemNameDisplay。 這代表屬性包一律會包含確定其他屬性所需的資訊。

要求屬性

DeviceInformation 物件有一些基本屬性,例如 IdKind,但大多數屬性都儲存在 Properties 下的屬性包中。 因此,屬性包包含用於從屬性包中取得屬性的屬性。 例如,使用 System.ItemNameDisplay 來取得 Name 屬性。 以下是一個常見且已知屬性的例子,它具有一個使用者易記名稱。 Windows 提供了幾個使用者易記名稱,以便能更輕鬆地查詢屬性。

當您要求屬性時,並不僅限於具有使用者易記名稱的常見屬性。 您可以指定基礎 GUID 和屬性 ID (PID) 以要求任何可用的屬性,甚至是單一裝置或驅動程式提供的自訂屬性。 指定自訂屬性的格式為「{GUID} PID」 例如:「{744e3bed-3684-4e16-9f8a-07953a8bf2ab} 7」。

注意

您可以在裝置驅動程式的裝置屬性金鑰標頭檔中找到屬性 GUID 清單。

某些屬性在所有 DeviceInformationKind 物件中都是通用的,但大多數屬性對於特定類型來說是唯一的。 下列各節列出了依個別 DeviceInformationKind 排序的一些常見屬性。 如需不同類型彼此關聯的詳細資訊,請參閱 DeviceInformationKind

DeviceInterface 屬性

DeviceInterface 是應用程式場景中預設且最常用的 DeviceInformationKind 物件。 這是您應該使用的物件類型,除非裝置 API 指示不同的特定 DeviceInformationKind

名稱 類型​​ 描述
System.Devices.ContainerId GUID 包含具有此 DeviceInterface裝置DeviceInformationKind.DeviceContainer 的身分識別。 您可以將此值與 DeviceInformationKind.DeviceContainer 一起傳遞給 CreateFromIdAsync,以尋找適當的容器。
System.Devices.InterfaceClassGuid GUID 此介面代表的介面類別 GUID。
System.Devices.DeviceInstanceId String DeviceInformationKind.Device 的身分識別。 您可以將此值與 DeviceInformationKind.Device 一起傳遞給 CreateFromIdAsync,以尋找適當的裝置。
System.Devices.InterfaceEnabled 布林值 指示介面是否啟用。 DeviceInformation.IsEnabled 衍生自此屬性。
System.Devices.GlyphIcon String 字符的圖示路徑。
System.Devices.IsDefault 布林值 指示這是否是 System.Devices.InterfaceClassGuid 的預設裝置。 這主要用於印表機。 這不適用於音訊,因為有多個音訊預設值。 使用 GetDefaultAudioRenderIdGetDefaultAudioCaptureId 取得音訊預設值。
System.Devices.Icon String 圖示路徑。
System.ItemNameDisplay String 裝置物件的最佳顯示名稱。

 

裝置屬性

名稱 類型​​ 描述
System.Devices.ClassGuid GUID 裝置安裝期間使用的裝置類別。 如需詳細資訊,請參閱裝置設定類別
System.Devices.CompatibleIds String[] 裝置的相容識別碼。 當 Windows 確定要在裝置上安裝的最佳驅動程式時,將使用這些驅動程式。 如需詳細資訊,請參閱相容識別碼
System.Devices.ContainerId GUID 包含此裝置的 DeviceInformationKind.DeviceContainer 的身分識別。 您可以將此值與 DeviceInformationKind.DeviceContainer 一起傳遞給 CreateFromIdAsync,以尋找適當的容器。
System.Devices.DeviceCapabilities UInt32 CM_DEVCAP_X 功能旗標的 bitwise-OR,在 CfgMgr32.h 中定義。 如需詳細資訊,請參閱 DEVPKEY_Device_Capabilities
System.Devices.DeviceHasProblem 布林值 該裝置目前存在問題,可能無法正常運作。 這可能是由於驅動程式過時、遺失或無效造成的。
System.Devices.DeviceInstanceId String 裝置的身分識別。 這也是 DeviceInformation.Id 的值。
System.Devices.DeviceManufacturer String 裝置的製造商。
System.Devices.HardwareIds String[] 裝置的硬體識別碼。 Windows 會在判斷要安裝的最佳驅動程式時使用這些識別碼。 裝置廠商可以使用此屬性,從其應用程式中識別其裝置。 如需詳細資訊,請參閱硬體識別碼
System.Devices.Parent String 父裝置的 DeviceInformation.Id。 這是連線父系,而不是 DeviceContainer 父系。
System.Devices.Present 布林值 指示裝置目前是否存在且可供使用。
System.ItemNameDisplay String 此裝置物件的最佳顯示名稱。 在這種情況下,這不一定是使用者的最佳名稱。 透過參考關聯的 DeviceContainerDeviceInterfaceSystem.ItemNameDisplay 可找到較有可能是最佳使用者易記名稱的候選名稱。

 

DeviceContainer 屬性

名稱 類型​​ 描述
System.Devices.Category String[] 裝置所屬類別的描述清單。 此清單會以單一類別的形式提供。 例如,「顯示器」、「電話」或「音訊裝置」。
System.Devices.CategoryIds String[] 包含該裝置所屬類別的清單。 例如 Audio.HeadphoneDisplay.MonitorInput.Gaming
System.Devices.CategoryPlural String[] 裝置所屬類別的描述清單。 此清單會以複數類別的形式提供。 例如,「顯示器」、「電話」或「音訊裝置」。
System.Devices.CompatibleIds String[] 所有子 DeviceInformationKind.Device 物件的相容識別碼集合。
System.Devices.Connected 布林值 指示裝置目前是否連線到系統。
System.Devices.GlyphIcon String 字符的圖示路徑。
System.Devices.HardwareIds String[] 所有子 DeviceInformationKind.Device 物件的硬體識別碼集合。
System.Devices.Icon String 圖示路徑。
System.Devices.LocalMachine 布林值 如果此 DeviceContainer 代表系統本身,則為 True; 如果裝置位於系統外部,則為 False
System.Devices.Manufacturer String 裝置的製造商。
System.Devices.ModelName String 裝置容器的型號名稱。
System.Devices.Paired 布林值 指示任何子 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 此裝置的身分識別。 這也是 DeviceInformation.Id 的值。
System.Devices.Aep.CanPair 布林值 指示裝置是否可以與系統配對。 DeviceInformationPairing.CanPair 衍生自此屬性。
System.Devices.Aep.Category String[] 裝置所屬的類別。 例如,印表機或相機。
System.Devices.Aep.ContainerId GUID AssociationEndpointContainer 物件的識別碼。
System.Devices.Aep.DeviceAddress String 裝置的位址。 如果裝置是網路裝置,則此為 IP 位址。
System.Devices.Aep.IsConnected 布林值 指示裝置目前是否已連線到系統。
System.Devices.Aep.IsPaired 布林值 指示裝置目前是否已配對。 DeviceInformationPairing.IsPaired 衍生自此屬性。
System.Devices.Aep.IsPresent 布林值 指示裝置目前是否存在,這代表該裝置處於使用狀態,並透過網路或無線通訊協定受到探索。 一旦裝置與系統配對,系統就會快取該裝置。 此後,在查詢 AssociationEndpoint 物件時,將自動探索該裝置。 因此,您不能僅依靠查詢來探索裝置,來指示它目前是否可用。 這就是為什麼這個屬性很重要的原因。
System.Devices.Aep.Manufacturer String 裝置的製造商。
System.Devices.Aep.ModelId GUID 裝置的型號識別碼。
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 物件的識別碼集合。
System.Devices.AepContainer.CanPair 布林值 指示其中一個子 AssociationEndpoint 裝置是否可以與系統配對。 DeviceInformationPairing.CanPair 衍生自此屬性。
System.Devices.AepContainer.ContainerId GUID 此裝置的身分識別。 這也是 DeviceInformation.Id 的值,但採用 GUID 形式。
System.Devices.AepContainer.IsPaired 布林值 指示其中一個子 AssociationEndpoint 裝置目前是否已配對。 DeviceInformationPairing.IsPaired 衍生自此屬性。
System.Devices.AepContainer.IsPresent 布林值 指示目前是否存在其中一個子 AssociationEndpoint 裝置,這代表該裝置處於使用中狀態,並透過網路或無線通訊協定受到探索。 一旦裝置與系統配對,系統就會快取該裝置。 此後,在查詢 AssociationEndpoint 物件時,將自動探索該裝置。 因此,您不能僅依靠查詢來探索裝置,來指示它目前是否可用。 這就是為什麼這個屬性很重要的原因。
System.Devices.AepContainer.Manufacturer String 裝置的製造商。
System.Devices.AepContainer.ModelIds String[] 裝置的型號識別碼清單。 每個型號都是字串形式的 GUID。
System.Devices.AepContainer.ModelName String 裝置的型號名稱。
System.Devices.AepContainer.ProtocolIds GUID[] 有助於建置此 AssociationEndpointContainer 物件的通訊協定識別碼清單。 請記住,AssociationEndpointContainer 裝置是透過收集透過相同實體裝置的不同通訊協定找到的所有 AssociationEndpoint 裝置來建立的。
System.Devices.AepContainer.SupportedUriSchemes String[] 此裝置支援的投射 URI 配置清單。
System.Devices.AepContainer.SupportsAudio 布林值 指示該裝置是否支援音訊投射。
System.Devices.AepContainer.SupportsImages 布林值 指示該裝置是否支援影像投射。
System.Devices.AepContainer.SupportsVideo 布林值 指示該裝置是否支援視訊投射。
System.ItemNameDisplay String 裝置的最佳顯示名稱。

 

AssociationEndpointService 屬性

名稱 類型​​ 描述
System.Devices.AepService.AepId String AssociationEndpoint 物件的識別碼。
System.Devices.AepService.ContainerId GUID AssociationEndpointContainer 物件的識別碼。
System.Devices.AepService.ParentAepIsPaired 布林值 指示父 AssociationEndpoint 物件是否與系統配對。
System.Devices.AepService.ProtocolId GUID 用於探索該裝置之通訊協定的身分識別。
System.Devices.AepService.ServiceClassId GUID 此裝置所代表的服務的身份。
System.Devices.AepService.ServiceId String 此服務的身分識別。 這也是 DeviceInformation.Id 的值。
System.ItemNameDisplay String 服務的最佳顯示名稱。