每個裝置都有關聯的
DeviceInformation
屬性,您可以在需要特定資訊或建置裝置選取器時使用這些屬性。 進階查詢語法 (AQS) 篩選器可用於指定這些屬性,並限制具有指定特徵的列舉裝置。 您也可以使用這些屬性來指示您想要為每個裝置傳回哪些資訊。 這可讓您指定傳回應用程式的裝置資訊。
重要 API
Windows.Devices.Enumeration
有關在裝置選取器中使用
DeviceInformation
屬性的更多資訊,請參閱
建置裝置選取器
。 本主題示範如何要求資訊屬性,並描述一些常見屬性。
DeviceInformation
物件由身分識別 (
DeviceInformation.Id
)、類型 (
DeviceInformation.Kind
) 和屬性包 (
DeviceInformation.Properties
) 組成。
DeviceInformation
物件的所有其他屬性均衍生自
Properties
屬性包。 例如,
Name
衍生自
System.ItemNameDisplay
。 這代表屬性包一律會包含確定其他屬性所需的資訊。
DeviceInformation
物件有一些基本屬性,例如
Id
和
Kind
,但大多數屬性都儲存在
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
包含具有此
DeviceInterface
之
裝置
的
DeviceInformationKind.DeviceContainer
的身分識別。 您可以將此值與
DeviceInformationKind.DeviceContainer
一起傳遞給
CreateFromIdAsync
,以尋找適當的容器。
System.Devices.InterfaceClassGuid
此介面代表的介面類別 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
的預設裝置。 這主要用於印表機。 這不適用於音訊,因為有多個音訊預設值。 使用
GetDefaultAudioRenderId
或
GetDefaultAudioCaptureId
取得音訊預設值。
System.Devices.Icon
String
圖示路徑。
System.ItemNameDisplay
String
裝置物件的最佳顯示名稱。
System.Devices.CompatibleIds
String[]
裝置的相容識別碼。 當 Windows 確定要在裝置上安裝的最佳驅動程式時,將使用這些驅動程式。 如需詳細資訊,請參閱
相容識別碼
。
System.Devices.ContainerId
包含此裝置的
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
此裝置物件的最佳顯示名稱。 在這種情況下,這不一定是使用者的最佳名稱。 透過參考關聯的
DeviceContainer
或
DeviceInterface
的
System.ItemNameDisplay
可找到較有可能是最佳使用者易記名稱的候選名稱。
System.Devices.CategoryIds
String[]
包含該裝置所屬類別的清單。 例如
Audio.Headphone
、
Display.Monitor
或
Input.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
此裝置的最佳顯示名稱。
System.Devices.Aep.IsPresent
指示裝置目前是否存在,這代表該裝置處於使用狀態,並透過網路或無線通訊協定受到探索。 一旦裝置與系統配對,系統就會快取該裝置。 此後,在查詢
AssociationEndpoint
物件時,將自動探索該裝置。 因此,您不能僅依靠查詢來探索裝置,來指示它目前是否可用。 這就是為什麼這個屬性很重要的原因。
System.Devices.Aep.Manufacturer
String
裝置的製造商。
System.Devices.Aep.ModelId
裝置的型號識別碼。
System.Devices.Aep.ModelName
String
裝置的型號名稱。
System.Devices.Aep.ProtocolId
指示用於探索此
AssocationEndpoint
裝置的通訊協定。
System.Devices.Aep.SignalStrength
Int32
裝置的訊號強度。 此屬性僅適用於某些通訊協定。
System.ItemNameDisplay
String
裝置的最佳顯示名稱。
System.Devices.AepContainer.CanPair
指示其中一個子
AssociationEndpoint
裝置是否可以與系統配對。
DeviceInformationPairing.CanPair
衍生自此屬性。
System.Devices.AepContainer.ContainerId
此裝置的身分識別。 這也是
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
裝置的最佳顯示名稱。