Como recuperar propriedades adicionais para um dispositivo ou objeto PnP (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Descreve como obter propriedades do dispositivo adicional de um DeviceInformation ou PnpObject.

Especificando propriedades adicionais

Por padrão, findAllAsync e createWatcher retornam objeto DeviceInformation com as seguintes propriedades:

Propriedade Nome clássico
Id Não aplicável. Esta propriedade é a identidade do objeto.
Nome System.ItemNameDisplay
IsDefault System.Devices.IsDefault
IsEnabled System.Devices.InterfaceEnabled
EnclosureLocation System.Devices.PhysicalDeviceLocation

 

Você pode usar formas sobrecarregadas dos métodos findAllAsync e createWatcher que estão disponíveis nas classes DeviceInformation e PnpObject. Você pode especificar propriedades adicionais para incluir nos resultados, usando o parâmetro additionalProperties conforme segue.



// Create a set of two additional properties.
    var propertiesToRetrieve = new Array();
    propertiesToRetrieve.push("System.Devices.InterfaceClassGuid");
    propertiesToRetrieve.push("System.Devices.ContainerId");

    Windows.Devices.Enumeration.findAllAsync(selectorString, 
             propertiesToRetrieve).then(successCallback, errorCallback);)

// Handles successful completion of the findAllAsync method.
function successCallback(deviceInformationCollection) {
    var numDevices = deviceInformationCollection.length;
    if (numDevices) {
        for (var i = 0; i < numDevices; i++) {
            printProperties(document.getElementById("log"),
                 deviceInformationCollection[i].properties);
        }
    } 
}

// Handles an error completion of the findAllAsync method.
function errorCallback(e) {
    document.getElementById("statusMessage").innerHTML = 
        "Failed to find devices, error: " + e.message;
}

function printProperties(log, prop) {
    log.innerHTML += "property store count is: " + prop.size;
    var pt = prop.first();
    while (pt.hasCurrent) {
        log.innerHTML += "<br />" + pt.current.key + " := " + pt.current.value;
        pt.moveNext();
    }
    log.innerHTML += "<br />";
}

Lista de propriedades canônicas

Quando um valor de propriedade não está associado a uma interface de dispositivo específica, ele pode estar associado ao dispositivo que é parte da interface ou do objeto do contêiner do dispositivo que representa os aspectos visíveis de um produto de hardware de dispositivo, como fabricante ou nome do modelo. A seguir, há listas de nomes de propriedades para interfaces do dispositivo, dispositivo e contêineres de dispositivos. Consulte Recuperando objetos PnP relacionados para aprender como navegar entre tipos de objetos.

Propriedades de interface de dispositivo

Nome Propriedade Descrição

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

ID do contêiner da interface do dispositivo.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

ID do dispositivo da instância do dispositivo a que essa interface pertence.

System.Devices.InterfaceClassGuid

DEVPKEY_DeviceInterface_ClassGuid

GUID da classe da interface.

System.Devices.InterfaceEnabled

DEVPKEY_DeviceInterface_Enabled

Indica se a interface está habilitada.

System.ItemNameDisplay

DEVPKEY_NAME

O nome amigável da interface do dispositivo.

System.Storage.IsMediaRemovable

DEVPKEY_Storage_Removable_Media

Indica se a média do volume é removível.

System.Storage.IsPortable

DEVPKEY_Storage_Portable

Indica se a pilha de armazenamento considera o armazenamento como portátil.

 

Propriedades do dispositivo

Nome Propriedade Descrição

System.Devices.Children

DEVPKEY_Device_Children

IDs das crianças de instância do dispositivo. Consulta ao vivo de estado de núcleo.

System.Devices.CompatibleIds

DEVPKEY_Device_CompatibleIds

Esta propriedade é um valor de sequência múltipla sz que contém a lista de IDs compatíveis para o dispositivo.

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

ID do contêiner do dispositivo.

System.Devices.DeviceCapabilities

DEVPKEY_Device_Capabilities

Esta propriedade é um valor DWORD que contém um OR bit a bit de recursos de dispositivos. Esses recursos são representados pelas máscaras de bit CM_DEVCAP_Xxxxx que são definidas em cfgmgr32.h.

System.Devices.DeviceCharacteristics

DEVPKEY_Device_Characteristics

Esta propriedade é um valor DWORD que contém um OR bit a bit de características de dispositivos. Para obter uma descrição dos sinalizadores, que são definidos em wdm.h e ntddk.h, veja o parâmetro DeviceCharacteristics da função IoCreateDevice.

System.Devices.DeviceHasProblem

DEVPKEY_Device_HasProblem

Esta propriedade é consultada ao vivo do estado de núcleo.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

ID da instância do dispositivo.

System.Devices.HardwareIds

DEVPKEY_Device_HardwareIds

Esta propriedade é um valor de sequência múltipla sz que contém a lista de IDs de hardware para o dispositivo.

System.Devices.InLocalMachineContainer

DEVPKEY_Device_InLocalMachineContainerr

Indica se o devnode está no contêiner do computador.

System.ItemNameDisplay

DEVPKEY_NAME

O nome da instância do dispositivo.

 

Propriedades do contêiner

Nome Propriedade e descrição
System.ItemNameDisplay PKEY_NAME - Nome do contêiner.
System.Devices.DiscoveryMethod DEVPKEY_DeviceContainer_DiscoveryMethod - Lista de métodos de descoberta de dispositivo.
System.Devices.Connected DEVPKEY_DeviceContainer_IsConnected - Indica se o dispositivo está conectado.
System.Devices.Paired DEVPKEY_DeviceContainer_IsPaired - Indica se o dispositivo está conectado.
System.Devices.Icon DEVPKEY_DeviceContainer_Icon - Caminho para o ícone do dispositivo.
System.Devices.LocalMachine DEVPKEY_DeviceContainer_IsLocalMachine - Indica se esse contêiner representa o computador local (PC) ou não.
System.Devices.MetadataPath DEVPKEY_DeviceContainer_MetadataPath - Caminho para metadados do dispositivo.
System.Devices.LaunchDeviceStageFromExplorer DEVPKEY_DeviceContainer_LaunchDeviceStageFromExlplorer - Indica quando iniciar o Device Stage no Windows Explorer.
System.Devices.DeviceDescription1 DEVPKEY_DeviceContainer_DeviceDescription1 - Descrição do dispositivo.
System.Devices.DeviceDescription2 DEVPKEY_DeviceContainer_DeviceDescription2 - Descrição do dispositivo.
System.Devices.NotWorkingProperly DEVPKEY_DeviceContainer_HasProblem - Indica se o contêiner tem um problema ou não. VERDADEIRO se algum dispositivo presente no contêiner tiver o DEVPKEY_DEVICE_HasProblem definido como VERDADEIRO.
System.Devices.IsShared DEVPKEY_DeviceContainer_IsSharedDevice - Indica se o dispositivo é compartilhado.
System.Devices.IsNetworkConnected DEVPKEY_DeviceContainer_IsNetworkDevice - Indica se o dispositivo está conectado à rede.
System.Devices.IsDefault DEVPKEY_DeviceContainer_IsDefaultDevice - Indica se o dispositivo é o dispositivo padrão.
System.Devices.Category DEVPKEY_DeviceContainer_Category_Desc_Singular - Categoria do dispositivo (singular).
System.Devices.CategoryPlural DEVPKEY_DeviceContainer_Category_Desc_Singular - Categoria do dispositivo (plural).
System.Devices.CategoryGroup DEVPKEY_DeviceContainer_CategoryGroup_Desc - Grupo de categorias do dispositivo.
System.Devices.FriendlyName DEVPKEY_DeviceContainer_FriendlyName - Nome amigável.
System.Devices.Manufacturer DEVPKEY_DeviceContainer_Manufacturer - Nome do fabricante.
System.Devices.ModelName DEVPKEY_DeviceContainer_ModelName - Nome do modelo.
System.Devices.ModelNumber DEVPKEY_DeviceContainer_ModelNumber - Número do modelo.

 

Especificando propriedades que não possuem um nome canônico

Quando uma propriedade não possui um nome canônico especificado, ele ainda pode ser recuperado pela especificação da chave como uma sequência da forma "{Guid} pid". Por exemplo, System.Devices.ContainerId pode ser especificado como "{8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C} 2".

Tópicos relacionados

Conceitos

Propriedades do dispositivo definidas pelo sistema

Modelo de propriedade de dispositivo unificado