Propriedades de informações do dispositivo

Cada dispositivo tem propriedades DeviceInformation associadas que você pode usar quando precisar de informações específicas ou quando estiver criando um seletor de dispositivo. Um filtro AQS (Advanced Query Syntax) pode ser usado para especificar essas propriedades e limitar os dispositivos enumerados com as características especificadas. Você também pode usar essas propriedades para indicar quais informações deseja que sejam retornadas para cada dispositivo. Isso permite que você especifique as informações do dispositivo que são retornadas ao seu aplicativo.

APIs importantes

Para obter mais informações sobre como usar as propriedades DeviceInformation no seletor de dispositivo, consulte Criar um seletor de dispositivo. Este tópico mostra como solicitar propriedades de informações e descreve algumas propriedades comuns.

Um objeto DeviceInformation é composto por uma identidade (DeviceInformation.Id), um tipo (DeviceInformation.Kind) e um recipiente de propriedades (DeviceInformation.Properties). Todas as outras propriedades de um objeto DeviceInformation são derivadas do recipiente de propriedades Properties. Por exemplo, Name é derivado de System.ItemNameDisplay. Isso significa que o recipiente de propriedades sempre contém as informações necessárias para determinar as outras propriedades.

Solicitar propriedades

Um objeto DeviceInformation tem algumas propriedades básicas, como Id e Kind, mas a maioria das propriedades é armazenada em um recipiente de propriedades em Properties. Devido a isso, o recipiente de propriedades contém as propriedades usadas para originar as propriedades fora do recipiente de propriedades. Por exemplo, use System.ItemNameDisplay para originar a propriedade Name. Este é um caso de uma propriedade comum e bem conhecida que tem um nome amigável. O Windows fornece vários desses nomes amigáveis para facilitar a consulta de propriedades.

Quando você está solicitando propriedades, você não está limitado às propriedades comuns com nomes amigáveis. Você pode especificar o GUID subjacente e o ID da propriedade (PID) para solicitar qualquer propriedade disponível, até mesmo propriedades personalizadas fornecidas por um dispositivo ou driver individual. O formato para especificar uma propriedade personalizada é "{GUID} PID". Por exemplo: "{744e3bed-3684-4e16-9f8a-07953a8bf2ab} 7".

Observação

Você pode encontrar a lista de GUIDs de propriedade no arquivo de cabeçalho de chave de propriedade do dispositivo do driver de dispositivo.

Algumas propriedades são comuns em todos os objetos DeviceInformationKind, mas a maioria é exclusiva de um tipo específico. As seções a seguir listam algumas propriedades comuns classificadas pelo DeviceInformationKind individual. Para obter mais informações sobre como os diferentes tipos se relacionam entre si, consulte DeviceInformationKind.

Propriedades DeviceInterface

DeviceInterface é o objeto DeviceInformationKind padrão e mais comum usado em cenários de aplicativo. Esse é o tipo de objeto que você deve usar, a menos que a API do dispositivo indique um DeviceInformationKind específico diferente.

Nome Tipo Descrição
System.Devices.ContainerId GUID Identidade do DeviceInformationKind.DeviceContainer que contém o dispositivo que contém este DeviceInterface. Você pode passar esse valor para CreateFromIdAsync junto com DeviceInformationKind.DeviceContainer para localizar o contêiner apropriado.
System.Devices.InterfaceClassGuid GUID O GUID da classe de interface que essa interface representa.
System.Devices.DeviceInstanceId String Identidade do DeviceInformationKind.Device pai. Você pode passar esse valor para CreateFromIdAsync junto com DeviceInformationKind.Device para localizar o dispositivo apropriado.
System.Devices.InterfaceEnabled Booliano Indica se a interface está habilitada. DeviceInformation.IsEnabled é derivado dessa propriedade.
System.Devices.GlyphIcon String Caminho do ícone para o glifo.
System.Devices.IsDefault Booliano Indica se este é o dispositivo padrão para o System.Devices.InterfaceClassGuid. Isso é usado principalmente para impressoras. Isso não funciona para áudio, pois há vários padrões de áudio. Use GetDefaultAudioRenderId ou GetDefaultAudioCaptureId para obter padrões de áudio.
System.Devices.Icon String Caminho do ícone.
System.ItemNameDisplay String O melhor nome de exibição para o objeto de dispositivo.

 

Propriedades do dispositivo

Nome Tipo Descrição
System.Devices.ClassGuid GUID Classe de dispositivo usada durante a instalação do dispositivo. Para obter mais informações, confira Classes de configuração de dispositivo.
System.Devices.CompatibleIds String[] Os ids compatíveis do dispositivo. Eles são usados quando o Windows está determinando o melhor driver para instalar no dispositivo. Para obter mais informações, consulte ID compatível.
System.Devices.ContainerId GUID Identidade do DeviceInformationKind.DeviceContainer que inclui este dispositivo. Você pode passar esse valor para CreateFromIdAsync junto com DeviceInformationKind.DeviceContainer para localizar o contêiner apropriado.
System.Devices.DeviceCapabilities UInt32 Um OR bit a bit dos sinalizadores de recursos CM_DEVCAP_X definidos em CfgMgr32.h. Para obter mais informações, consulte DEVPKEY_Device_Capabilities.
System.Devices.DeviceHasProblem Booliano O dispositivo atualmente tem um problema e provavelmente não está funcionando corretamente. Isso pode ser devido a um driver desatualizado, ausente ou inválido.
System.Devices.DeviceInstanceId String A identidade do dispositivo. Esse também é o valor de DeviceInformation.Id.
System.Devices.DeviceManufacturer String O fabricante do dispositivo.
System.Devices.HardwareIds String[] Os ids de hardware do dispositivo. O Windows usa esses ids ao determinar o melhor driver a ser instalado. Os fornecedores de dispositivos podem usar essa propriedade para identificar seus dispositivos a partir de seus aplicativos. Para mais informações, consulte ID de hardware.
System.Devices.Parent String O DeviceInformation.Id do dispositivo pai. Este é o pai da conexão, não o pai do DeviceContainer.
System.Devices.Present Booliano Indica se o dispositivo está presente e disponível no momento.
System.ItemNameDisplay String O melhor nome de exibição para esse objeto de dispositivo. Neste caso, este não é necessariamente o melhor nome para os usuários. Um candidato mais provável para um nome amigável pode ser encontrado fazendo referência ao System.ItemNameDisplay do DeviceContainer ou DeviceInterface associado.

 

Propriedades DeviceContainer

Nome Tipo Descrição
System.Devices.Category String[] Uma lista de descrições das categorias às quais o dispositivo pertence. Esta lista é fornecida como categorias singulares. Por exemplo, "Display", "Phone" ou "Audio device".
System.Devices.CategoryIds String[] Contém uma lista de categorias às quais este dispositivo pertence. Por exemplo, Audio.Headphone, Display.Monitor ou Input.Gaming.
System.Devices.CategoryPlural String[] Uma lista de descrições das categorias às quais o dispositivo pertence. Esta lista é fornecida como categorias plurais. Por exemplo, "Displays", "Phones" ou "Audio devices".
System.Devices.CompatibleIds String[] A coleção de ids compatíveis para todos os objetos filho DeviceInformationKind.Device.
System.Devices.Connected Booliano Indica se o dispositivo está conectado ao sistema no momento ou não.
System.Devices.GlyphIcon String Caminho do ícone para o glifo.
System.Devices.HardwareIds String[] A coleção de ids de hardware para todos os objetos filho DeviceInformationKind.Device.
System.Devices.Icon String Caminho do ícone.
System.Devices.LocalMachine Booliano True se esse DeviceContainer representar o próprio sistema, false se o dispositivo for externo ao sistema.
System.Devices.Manufacturer String O fabricante do dispositivo.
System.Devices.ModelName String Nome do modelo do contêiner do dispositivo.
System.Devices.Paired Booliano Indica se qualquer um dos objetos filho DeviceInformationKind.Device são dispositivos sem fio ou de rede que estão atualmente emparelhados com o sistema.
System.ItemNameDisplay String O melhor nome de exibição para esse dispositivo.

 

Propriedades DeviceInterfaceClass

Nome Tipo Descrição
System.ItemNameDisplay String O melhor nome de exibição para esse dispositivo.

 

Propriedades DevicePanel

Nome Tipo Descrição
System.Devices.Panel.PanelId String O identificador do objeto DevicePanel.
System.Devices.Panel.PanelGroup String O identificador do PanelGroup pai.

Propriedades AssociationEndpoint

Nome Tipo Descrição
System.Devices.Aep.AepId String Identidade deste dispositivo. Esse também é o valor de DeviceInformation.Id.
System.Devices.Aep.CanPair Booliano Indica se o dispositivo pode ser emparelhado com o sistema ou não. DeviceInformationPairing.CanPair é derivado dessa propriedade.
System.Devices.Aep.Category String[] As categorias das quais o dispositivo faz parte. Por exemplo, impressora ou câmera.
System.Devices.Aep.ContainerId GUID A id do objeto pai AssociationEndpointContainer.
System.Devices.Aep.DeviceAddress String O endereço do dispositivo. Se o dispositivo for um dispositivo de rede, este é o endereço IP.
System.Devices.Aep.IsConnected Booliano Indica se o dispositivo está conectado ao sistema no momento.
System.Devices.Aep.IsPaired Booliano Indica se o dispositivo está emparelhado no momento. DeviceInformationPairing.IsPaired é derivado dessa propriedade.
System.Devices.Aep.IsPresent Booliano Indica se o dispositivo está presente no momento, o que significa que o dispositivo está ativo e foi descoberto pela rede ou protocolo sem fio. Depois que um dispositivo é emparelhado com o sistema, ele é armazenado em cache. Depois disso, o dispositivo será descoberto automaticamente ao consultar objetos AssociationEndpoint. Por causa disso, você não pode confiar em apenas descobrir o dispositivo com uma consulta para indicar se ele é ou não utilizável no momento. É por isso que essa propriedade é importante.
System.Devices.Aep.Manufacturer String O fabricante do dispositivo.
System.Devices.Aep.ModelId GUID O id de modelo do dispositivo.
System.Devices.Aep.ModelName String O nome do modelo do dispositivo.
System.Devices.Aep.ProtocolId GUID Indica o protocolo usado para descobrir esse dispositivo AssocationEndpoint.
System.Devices.Aep.SignalStrength Int32 A intensidade do sinal do dispositivo. Esta propriedade só é aplicável para alguns protocolos.
System.ItemNameDisplay String O melhor nome de exibição para o dispositivo.

 

Propriedades AssociationEndpointContainer

Nome Tipo Descrição
System.Devices.AepContainer.Categories String[] As categorias das quais o dispositivo faz parte. Por exemplo, impressora ou câmera.
System.Devices.AepContainer.Children String[] A coleção de ids para os objetos AssocationEndpoint que fazem parte desse contêiner.
System.Devices.AepContainer.CanPair Booliano Indica se um dos dispositivos filho AssociationEndpoint pode ser emparelhado com o sistema ou não. DeviceInformationPairing.CanPair é derivado dessa propriedade.
System.Devices.AepContainer.ContainerId GUID Identidade deste dispositivo. Esse também é o valor de DeviceInformation.Id, mas no formato GUID.
System.Devices.AepContainer.IsPaired Booliano Indica se um dos dispositivos filho AssociationEndpoint está emparelhado no momento. DeviceInformationPairing.IsPaired é derivado dessa propriedade.
System.Devices.AepContainer.IsPresent Booliano Indica se um dos dispositivos filho AssociationEndpoint está presente no momento, o que significa que o dispositivo está ativo e foi descoberto pela rede ou protocolo sem fio. Depois que um dispositivo é emparelhado com o sistema, ele é armazenado em cache. Depois disso, o dispositivo será descoberto automaticamente ao consultar objetos AssociationEndpoint. Por causa disso, você não pode confiar em apenas descobrir o dispositivo com uma consulta para indicar se ele é ou não utilizável no momento. É por isso que essa propriedade é importante.
System.Devices.AepContainer.Manufacturer String O fabricante do dispositivo.
System.Devices.AepContainer.ModelIds String[] Uma lista de ids de modelo para o dispositivo. Cada modelo é um GUID em forma de cadeia de caracteres.
System.Devices.AepContainer.ModelName String O nome do modelo do dispositivo.
System.Devices.AepContainer.ProtocolIds GUID[] Uma lista de ids de protocolo que contribuíram para a criação desse objeto AssociationEndpointContainer. Lembre-se de que um dispositivo AssociationEndpointContainer é criado coletando todos os dispositivos AssociationEndpoint descobertos em protocolos diferentes para o mesmo dispositivo físico.
System.Devices.AepContainer.SupportedUriSchemes String[] Lista de esquemas de URI de conversão suportados por este dispositivo.
System.Devices.AepContainer.SupportsAudio Booliano Indica se este dispositivo suporta conversão de áudio.
System.Devices.AepContainer.SupportsImages Booliano Indica se este dispositivo suporta conversão de imagens.
System.Devices.AepContainer.SupportsVideo Booliano Indica se este dispositivo suporta conversão de vídeo.
System.ItemNameDisplay String O melhor nome de exibição para o dispositivo.

 

Propriedades AssociationEndpointService

Nome Tipo Descrição
System.Devices.AepService.AepId String O identificador do objeto pai AssociationEndpoint.
System.Devices.AepService.ContainerId GUID O identificador do objeto pai AssociationEndpointContainer.
System.Devices.AepService.ParentAepIsPaired Booliano Indica se o objeto pai AssociationEndpoint está emparelhado com o sistema.
System.Devices.AepService.ProtocolId GUID Identidade do protocolo usado para descobrir este dispositivo.
System.Devices.AepService.ServiceClassId GUID Identidade do serviço representado por este dispositivo.
System.Devices.AepService.ServiceId String Identidade desse serviço. Esse também é o valor de DeviceInformation.Id.
System.ItemNameDisplay String O melhor nome de exibição para o serviço.