Поделиться через


Как получить дополнительные свойства устройства или самонастраивающегося объекта (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

Здесь объясняется, как получить дополнительные свойства устройства из DeviceInformation или PnpObject.

Указание дополнительных свойств

По умолчанию методы findAllAsync и createWatcher возвращают объекты DeviceInformation с указанными ниже свойствами.

Свойство Каноническое имя
Идентификатор Нет данных. Это свойство является идентификатором объекта.
Имя System.ItemNameDisplay
IsDefault System.Devices.IsDefault
IsEnabled System.Devices.InterfaceEnabled
EnclosureLocation System.Devices.PhysicalDeviceLocation

 

Вы можете использовать перегруженные формы методов findAllAsync и createWatcher, которые доступны в классах DeviceInformation и PnpObject. Для включения в результаты вы можете указать дополнительные свойства, используя параметр additionalProperties, как описано ниже.



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

Список канонических свойств

Если значение свойства не связано с определенным интерфейсом устройства, оно может быть связано с устройством, частью которого является интерфейс, или с объектом-контейнером устройства, представляющим видимые аспекты оборудования устройства, такие как данные об изготовителе или название модели. Далее представлены списки имен свойств устройств, их интерфейсов и контейнеров. В разделе Получение связанных самонастраивающихся объектов объясняется, как переходить от одного типа объектов к другому.

Свойства интерфейса устройства

Имя Свойство Описание

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

Идентификатор контейнера интерфейса устройства

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

Идентификатор экземпляра того устройства, которому принадлежит интерфейс

System.Devices.InterfaceClassGuid

DEVPKEY_DeviceInterface_ClassGuid

Код GUID интерфейса.

System.Devices.InterfaceEnabled

DEVPKEY_DeviceInterface_Enabled

Обозначает, включен ли интерфейс

System.ItemNameDisplay

DEVPKEY_NAME

Понятное имя интерфейса устройства

System.Storage.IsMediaRemovable

DEVPKEY_Storage_Removable_Media

Обозначает, является ли носитель съемным.

System.Storage.IsPortable

DEVPKEY_Storage_Portable

Обозначает, определяет ли стек хранилища носитель информации как переносной.

 

Свойства устройства

Имя Свойство Описание

System.Devices.Children

DEVPKEY_Device_Children

Идентификаторы дочерних объектов устройства Активный запрос из области ядра

System.Devices.CompatibleIds

DEVPKEY_Device_CompatibleIds

Это свойство является мультистроковым параметром, который содержит список совместимых идентификаторов устройства.

System.Devices.ContainerId

DEVPKEY_Device_ContainerId

Идентификатор контейнера устройства

System.Devices.DeviceCapabilities

DEVPKEY_Device_Capabilities

Данное свойство является значением DWORD, которое содержит побитовую сумму ИЛИ для характеристик устройства. Эти характеристики представлены битовыми масками CM_DEVCAP_Xxxxx, которые определены в cfgmgr32.h.

System.Devices.DeviceCharacteristics

DEVPKEY_Device_Characteristics

Это свойство является значением DWORD, которое содержит побитовую сумму ИЛИ для характеристик устройства. См. описание этих флагов, определенных в wdm.h и ntddk.h, в параметре DeviceCharacteristics функции IoCreateDevice.

System.Devices.DeviceHasProblem

DEVPKEY_Device_HasProblem

Это свойство активно запрашивается из области ядра.

System.Devices.DeviceInstanceId

DEVPKEY_Device_InstanceId

Идентификатор экземпляра устройства

System.Devices.HardwareIds

DEVPKEY_Device_HardwareIds

Данное свойство является мультистроковым параметром, который содержит список идентификаторов оборудования устройства.

System.Devices.InLocalMachineContainer

DEVPKEY_Device_InLocalMachineContainerr

Обозначает наличие DevNode в контейнере компьютера.

System.ItemNameDisplay

DEVPKEY_NAME

Название экземпляра устройства

 

Свойства контейнера

Имя Свойство и описание
System.ItemNameDisplay PKEY_NAME — название контейнера.
System.Devices.DiscoveryMethod DEVPKEY_DeviceContainer_DiscoveryMethod — список методов обнаружения устройства.
System.Devices.Connected DEVPKEY_DeviceContainer_IsConnected — указывает, подключено ли устройство.
System.Devices.Paired DEVPKEY_DeviceContainer_IsPaired — указывает, сопряжено ли устройство.
System.Devices.Icon DEVPKEY_DeviceContainer_Icon — путь к значку устройства.
System.Devices.LocalMachine DEVPKEY_DeviceContainer_IsLocalMachine — указывает, представляет ли контейнер локальный компьютер (ПК) или нет.
System.Devices.MetadataPath DEVPKEY_DeviceContainer_MetadataPath — путь к метаданным устройства.
System.Devices.LaunchDeviceStageFromExplorer DEVPKEY_DeviceContainer_LaunchDeviceStageFromExlplorer — указывает, запускать ли Device Stage из проводника.
System.Devices.DeviceDescription1 DEVPKEY_DeviceContainer_DeviceDescription1 — описание устройства.
System.Devices.DeviceDescription2 DEVPKEY_DeviceContainer_DeviceDescription2 — описание устройства.
System.Devices.NotWorkingProperly DEVPKEY_DeviceContainer_HasProblem — указывает на наличие проблем в контейнере. TRUE, если значение DEVPKEY_DEVICE_HasProblem любого устройства в контейнере задано как TRUE.
System.Devices.IsShared DEVPKEY_DeviceContainer_IsSharedDevice — указывает, является ли устройство совместно используемым.
System.Devices.IsNetworkConnected DEVPKEY_DeviceContainer_IsNetworkDevice — указывает, подключено ли устройство к сети.
System.Devices.IsDefault DEVPKEY_DeviceContainer_IsDefaultDevice — указывает, является ли устройство устройством по умолчанию.
System.Devices.Category DEVPKEY_DeviceContainer_Category_Desc_Singular — категория устройства (единичная).
System.Devices.CategoryPlural DEVPKEY_DeviceContainer_Category_Desc_Singular — категория устройства (множественная).
System.Devices.CategoryGroup DEVPKEY_DeviceContainer_CategoryGroup_Desc — группа категории устройства.
System.Devices.FriendlyName DEVPKEY_DeviceContainer_FriendlyName — понятное имя.
System.Devices.Manufacturer DEVPKEY_DeviceContainer_Manufacturer — название изготовителя.
System.Devices.ModelName DEVPKEY_DeviceContainer_ModelName — название модели.
System.Devices.ModelNumber DEVPKEY_DeviceContainer_ModelNumber — номер модели.

 

Указание свойств, которые не имеют канонического имени

Когда указывается свойство без канонического имени, его можно также получить с помощью указания ключа в качестве строки формы "{Guid} pid". Например, свойство System.Devices.ContainerId можно указать как "{8C7ED206-3F8A-4827-B3AB-AE9E1FAEFC6C} 2".

Связанные разделы

Понятия

Свойства устройства, определяемые системой

Унифицированная модель свойств устройства