Comment récupérer les propriétés supplémentaires pour un périphérique ou un objet PnP (HTML)

[ Cet article est destiné aux développeurs de Windows 8.x et Windows Phone 8.x qui créent des applications Windows Runtime. Si vous développez une application pour Windows 10, voir la Documentation ]

Décrit comment obtenir les propriétés supplémentaires à partir de DeviceInformation ou de PnpObject.

Spécification des propriétés supplémentaires

Par défaut, findAllAsync et createWatcher retournent des objets DeviceInformation qui sont dotés des propriétés suivantes :

Propriété Nom canonique
ID Non applicable Cette propriété est l'identité de l'objet.
Nom System.ItemNameDisplay
IsDefault System.Devices.IsDefault
IsEnabled System.Devices.InterfaceEnabled
EnclosureLocation System.Devices.PhysicalDeviceLocation

 

Vous pouvez utiliser les formes surchargées des méthodes findAllAsync et createWatcher qui sont disponibles sur les classes DeviceInformation et PnpObject. Vous pouvez spécifier les propriétés supplémentaires à inclure dans les résultats à l’aide du paramètre additionalProperties, comme suit.



// 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 />";
}

Liste des noms canoniques

Si la valeur d’une propriété n’est pas associée à une interface de périphérique particulière, elle est peut-être associée au périphérique dont fait partie l’interface ou l’objet de conteneur de périphérique qui représente les aspects visibles d’un matériel périphérique, tels que le nom du fabricant ou le nom de modèle. Les listes suivantes sont des listes de noms de propriétés pour les interfaces de périphériques, les périphériques et les conteneurs de périphériques. Voir Récupération des objets PnP associés pour apprendre à naviguer entre les types d’objets.

Propriétés d’interface de périphérique

Nom Propriété Description

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

ID du conteneur de l’interface du périphérique.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

ID d’instance de périphérique du périphérique auquel appartient interface.

System.Devices.InterfaceClassGuid

DEVPKEY_DeviceInterface_ClassGuid

GUID de classe de l’interface.

System.Devices.InterfaceEnabled

DEVPKEY_DeviceInterface_Enabled

Indique si l’interface est activée.

System.ItemNameDisplay

DEVPKEY_NAME

Nom convivial de l’interface du périphérique.

System.Storage.IsMediaRemovable

DEVPKEY_Storage_Removable_Media

Indique si le média du volume est amovible.

System.Storage.IsPortable

DEVPKEY_Storage_Portable

Indique si la pile de stockage considère le stockage comme étant amovible.

 

Propriétés du périphérique

Nom Propriété Description

System.Devices.Children

DEVPKEY_Device_Children

ID d’instance du périphérique des enfants. Interrogé en direct à partir de l’état du noyau.

System.Devices.CompatibleIds

DEVPKEY_Device_CompatibleIds

Cette propriété est une valeur de chaîne multi-sz qui contient la liste d’ID compatibles pour le périphérique.

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

ID du conteneur de périphérique.

System.Devices.DeviceCapabilities

DEVPKEY_Device_Capabilities

Cette propriété est une valeur DWORD qui contient les opérateurs de bits OR des fonctionnalités d’un périphérique. ces fonctionnalités sont représentées par les masques de bit CM_DEVCAP_Xxxxx qui sont définis dans cfgmgr32.h.

System.Devices.DeviceCharacteristics

DEVPKEY_Device_Characteristics

Cette propriété est une valeur DWORD qui contient les opérateurs de bits OR des caractéristiques d’un périphérique. Pour obtenir une description de ces indicateurs, qui sont définis dans wdm.h et ntddk.h, voir le paramètre DeviceCharacteristics de la fonction IoCreateDevice.

System.Devices.DeviceHasProblem

DEVPKEY_Device_HasProblem

Cette propriété est interrogée en direct à partir de l’état du noyau.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

ID d’instance du périphérique.

System.Devices.HardwareIds

DEVPKEY_Device_HardwareIds

Cette propriété est une valeur de chaîne multi-sz qui contient la liste d’ID du matériel pour le périphérique.

System.Devices.InLocalMachineContainer

DEVPKEY_Device_InLocalMachineContainerr

Indique si le devnode est dans le conteneur de l’ordinateur.

System.ItemNameDisplay

DEVPKEY_NAME

Nom de l’interface du périphérique.

 

Propriétés du conteneur

Nom Propriété et description
System.ItemNameDisplay PKEY_NAME - Nom du conteneur.
System.Devices.DiscoveryMethod DEVPKEY_DeviceContainer_DiscoveryMethod - Liste de méthodes de découverte de périphériques.
System.Devices.Connected DEVPKEY_DeviceContainer_IsConnected - Indique si le périphérique est activé.
System.Devices.Paired DEVPKEY_DeviceContainer_IsPaired - Indique si le périphérique est couplé.
System.Devices.Icon DEVPKEY_DeviceContainer_Icon - Chemin d’accès à l’icône du périphérique.
System.Devices.LocalMachine DEVPKEY_DeviceContainer_IsLocalMachine - Indique si ce conteneur représente l’ordinateur (PC) local ou non.
System.Devices.MetadataPath DEVPKEY_DeviceContainer_MetadataPath - Chemin d’accès aux métadonnées du périphérique.
System.Devices.LaunchDeviceStageFromExplorer DEVPKEY_DeviceContainer_LaunchDeviceStageFromExlplorer - Indique si Device Stage doit être lancé depuis l’Explorateur Windows.
System.Devices.DeviceDescription1 DEVPKEY_DeviceContainer_DeviceDescription1 - Description du périphérique.
System.Devices.DeviceDescription2 DEVPKEY_DeviceContainer_DeviceDescription2 - Description du périphérique.
System.Devices.NotWorkingProperly DEVPKEY_DeviceContainer_HasProblem - Indique si le conteneur a ou non un problème. TRUE si tout périphérique présent dans le conteneur DEVPKEY_DEVICE_HasProblem a la valeur TRUE.
System.Devices.IsShared DEVPKEY_DeviceContainer_IsSharedDevice - Indique si le périphérique est partagé.
System.Devices.IsNetworkConnected DEVPKEY_DeviceContainer_IsNetworkDevice - Indique si le périphérique est connecté au réseau.
System.Devices.IsDefault DEVPKEY_DeviceContainer_IsDefaultDevice - Indique si le périphérique est le périphérique par défaut.
System.Devices.Category DEVPKEY_DeviceContainer_Category_Desc_Singular - Catégorie de périphérique (singulier).
System.Devices.CategoryPlural DEVPKEY_DeviceContainer_Category_Desc_Singular - Catégorie de périphérique (pluriel).
System.Devices.CategoryGroup DEVPKEY_DeviceContainer_CategoryGroup_Desc - Groupe de catégories de périphériques.
System.Devices.FriendlyName DEVPKEY_DeviceContainer_FriendlyName - Nom convivial.
System.Devices.Manufacturer DEVPKEY_DeviceContainer_Manufacturer - Nom du fabricant.
System.Devices.ModelName DEVPKEY_DeviceContainer_ModelName - Nom du modèle.
System.Devices.ModelNumber DEVPKEY_DeviceContainer_ModelNumber - Numéro du modèle.

 

Spécification des propriétés qui ne sont pas dotées de nom canonique

Si aucun nom canonique n’a été spécifié pour une propriété, elle peut quand même être récupérée en spécifiant la clé en tant que chaîne sous la forme « {Guid} pid ». Par exemple, System.Devices.ContainerId peut être spécifié sous la forme « {8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C} 2 ».

Rubriques associées

Concepts

Propriétés de périphérique définies par le système

Modèle de propriétés de périphérique unifiées