Как получить дополнительные свойства устройства или самонастраивающегося объекта (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".
Связанные разделы
Понятия