Compartir a través de


Cómo recuperar propiedades adicionales para objetos de dispositivo o PnP (HTML)

[ Este artículo está destinado a desarrolladores de Windows 8.x y Windows Phone 8.x que escriben aplicaciones de Windows en tiempo de ejecución. Si estás desarrollando para Windows 10, consulta la documentación más reciente

Describe cómo obtener propiedades de dispositivo adicionales de DeviceInformation o PnpObject.

Especificación de propiedades adicionales

De forma predeterminada, findAllAsync y createWatcher devuelven objetos DeviceInformation con las propiedades siguientes:

Propiedad Nombre canónico
Id No aplicable. Esta propiedad es la identidad del objeto.
Nombre System.ItemNameDisplay
IsDefault System.Devices.IsDefault
IsEnabled System.Devices.InterfaceEnabled
EnclosureLocation System.Devices.PhysicalDeviceLocation

 

Puedes usar las formas sobrecargadas de los métodos findAllAsync y createWatcher disponibles en las clases DeviceInformation y PnpObject. Puedes especificar propiedades adicionales para incluirlas en los resultados mediante el parámetro additionalProperties, de la manera siguiente.



// 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 propiedades canónicas

Si un valor de propiedad no está asociado con una interfaz de dispositivo concreta, es posible que esté asociado con el dispositivo del que forma parte la interfaz o el objeto de contenedor de dispositivo que representa los aspectos visibles de un producto de hardware de dispositivo, como el fabricante o el nombre de modelo. A continuación, incluimos las listas de nombres de propiedades de las interfaces de dispositivo, los dispositivos y los contenedores de dispositivo. Consulta Cómo recuperar objetos PnP relacionados para obtener información sobre cómo navegar entre los tipos de objetos.

Propiedades de interfaz de dispositivo

Nombre Propiedad Descripción

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

Identificador del contenedor de la interfaz de dispositivo.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

Identificador de instancia de dispositivo del dispositivo al que pertenece esta interfaz.

System.Devices.InterfaceClassGuid

DEVPKEY_DeviceInterface_ClassGuid

GUID de clase de la interfaz.

System.Devices.InterfaceEnabled

DEVPKEY_DeviceInterface_Enabled

Indica si la interfaz está habilitada.

System.ItemNameDisplay

DEVPKEY_NAME

Nombre descriptivo de la interfaz de dispositivo.

System.Storage.IsMediaRemovable

DEVPKEY_Storage_Removable_Media

Indica si los medios del volumen son extraíbles.

System.Storage.IsPortable

DEVPKEY_Storage_Portable

Indica si la pila de almacenamiento considera el almacenamiento como portátil.

 

Propiedades de dispositivo

Nombre Propiedad Descripción

System.Devices.Children

DEVPKEY_Device_Children

Identificadores de instancia de dispositivo de los secundarios. Se consultan directamente del estado del kernel.

System.Devices.CompatibleIds

DEVPKEY_Device_CompatibleIds

Esta propiedad es un valor de cadena multi-sz que contiene la lista de identificadores compatibles para el dispositivo.

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

Identificador del contenedor del dispositivo.

System.Devices.DeviceCapabilities

DEVPKEY_Device_Capabilities

Esta propiedad es un valor DWORD que contiene un OR bit a bit de las funcionalidades de un dispositivo. Estas funcionalidades se representan mediante máscaras de bits CM_DEVCAP_Xxxxx definidas en cfgmgr32.h.

System.Devices.DeviceCharacteristics

DEVPKEY_Device_Characteristics

Esta propiedad es un valor DWORD que contiene un OR bit a bit de las características de un dispositivo. Para ver una descripción de estas marcas, que se definen en wdm.h y ntddk.h, consulta el parámetro DeviceCharacteristics de la función IoCreateDevice.

System.Devices.DeviceHasProblem

DEVPKEY_Device_HasProblem

Esta propiedad se consulta directamente del estado del kernel.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

Identificador de la instancia de dispositivo.

System.Devices.HardwareIds

DEVPKEY_Device_HardwareIds

Esta propiedad es un valor de cadena multi-sz que contiene la lista de identificadores de hardware del dispositivo.

System.Devices.InLocalMachineContainer

DEVPKEY_Device_InLocalMachineContainerr

Indica si devnode está en el contenedor del equipo.

System.ItemNameDisplay

DEVPKEY_NAME

Nombre de la instancia de dispositivo.

 

Propiedades de contenedor

Nombre Propiedad y descripción
System.ItemNameDisplay PKEY_NAME - Nombre del contenedor.
System.Devices.DiscoveryMethod DEVPKEY_DeviceContainer_DiscoveryMethod - Lista de métodos de detección de dispositivos.
System.Devices.Connected DEVPKEY_DeviceContainer_IsConnected - Indica si el dispositivo está conectado.
System.Devices.Paired DEVPKEY_DeviceContainer_IsPaired - Indica si el dispositivo está emparejado.
System.Devices.Icon DEVPKEY_DeviceContainer_Icon - Ruta de acceso al icono del dispositivo.
System.Devices.LocalMachine DEVPKEY_DeviceContainer_IsLocalMachine - Indica si este contenedor representa un equipo local (PC) o no.
System.Devices.MetadataPath DEVPKEY_DeviceContainer_MetadataPath - Ruta de acceso a los metadatos del dispositivo.
System.Devices.LaunchDeviceStageFromExplorer DEVPKEY_DeviceContainer_LaunchDeviceStageFromExlplorer - Indica si se debe iniciar Device Stage desde el Explorador de Windows.
System.Devices.DeviceDescription1 DEVPKEY_DeviceContainer_DeviceDescription1 - Descripción del dispositivo.
System.Devices.DeviceDescription2 DEVPKEY_DeviceContainer_DeviceDescription2 - Descripción del dispositivo.
System.Devices.NotWorkingProperly DEVPKEY_DeviceContainer_HasProblem - Indica si el contenedor tiene un problema o no. TRUE si cualquier dispositivo presente en el contenedor tiene DEVPKEY_DEVICE_HasProblem establecido en TRUE.
System.Devices.IsShared DEVPKEY_DeviceContainer_IsSharedDevice - Indica si el dispositivo está compartido.
System.Devices.IsNetworkConnected DEVPKEY_DeviceContainer_IsNetworkDevice - Indica si el dispositivo está conectado en red.
System.Devices.IsDefault DEVPKEY_DeviceContainer_IsDefaultDevice - Indica si el dispositivo es el dispositivo predeterminado.
System.Devices.Category DEVPKEY_DeviceContainer_Category_Desc_Singular - Categoría del dispositivo (singular).
System.Devices.CategoryPlural DEVPKEY_DeviceContainer_Category_Desc_Singular - Categoría del dispositivo (plural).
System.Devices.CategoryGroup DEVPKEY_DeviceContainer_CategoryGroup_Desc - Grupo de la categoría del dispositivo.
System.Devices.FriendlyName DEVPKEY_DeviceContainer_FriendlyName - Nombre descriptivo.
System.Devices.Manufacturer DEVPKEY_DeviceContainer_Manufacturer - Nombre del fabricante.
System.Devices.ModelName DEVPKEY_DeviceContainer_ModelName - Nombre del modelo.
System.Devices.ModelNumber DEVPKEY_DeviceContainer_ModelNumber - Número del modelo.

 

Especificación de propiedades que no tienen nombre canónico

Cuando una propiedad no tiene un nombre canónico especificado, se puede recuperar si se especifica la clave como cadena con el formato "{Guid} pid". Por ejemplo, System.Devices.ContainerId se puede especificar como "{8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C} 2".

Temas relacionados

Conceptos

Propiedades de dispositivo definidas por el sistema

Modelo de propiedad de dispositivo unificado