DeviceInformation class
Represents a device. This class allows access to well-known device properties as well as additional properties specified during device enumeration.
Syntax
var deviceInformation = Windows.Devices.Enumeration.DeviceInformation;
Attributes
- [DualApiPartition()]
- [MarshalingBehavior(Agile)]
- [Threading(Both)]
- [Version(0x06020000)]
Members
The DeviceInformation class has these types of members:
Methods
The DeviceInformation class has these methods. With C#, Visual Basic, and C++, it also inherits methods from the Object class.
Method | Description |
---|---|
CreateFromIdAsync(String) | Creates a DeviceInformation object from a DeviceInformation ID. |
CreateFromIdAsync(String, IIterable(String)) | Creates a DeviceInformation object from a DeviceInformation ID and a list of additional properties. |
CreateWatcher() | Creates a DeviceWatcher for all devices. |
CreateWatcher(DeviceClass) | Creates a DeviceWatcher for devices matching the specified DeviceClass. |
CreateWatcher(String) | Creates a DeviceWatcher for devices matching the specified Advanced Query Syntax (AQS) string. |
CreateWatcher(String, IIterable(String)) | Creates a DeviceWatcher for devices matching the specified Advanced Query Syntax (AQS) string and the specified collection of properties. |
FindAllAsync() | Enumerates all DeviceInformation objects. |
FindAllAsync(DeviceClass) | Enumerates DeviceInformation objects of the specified class. |
FindAllAsync(String) | Enumerates DeviceInformation objects matching the specified Advanced Query Syntax (AQS) string. |
FindAllAsync(String, IIterable(String)) | Enumerates DeviceInformation objects matching the specified Advanced Query Syntax (AQS) string and including the specified collection of properties. |
GetGlyphThumbnailAsync | Gets a glyph for the device. |
GetThumbnailAsync | Returns a thumbnail image for the device. |
Update | Updates the properties of an existing DeviceInformation object. |
Properties
The DeviceInformation class has these properties.
Property | Access type | Description |
---|---|---|
Read-only | The physical location of the device in its enclosure. | |
Read-only | A string representing the identity of the device. | |
Read-only | Indicates whether this device is the default device for the class. | |
Read-only | Indicates whether this device is enabled. | |
Read-only | The name of the device. | |
Read-only | Property store containing well-known values as well as additional properties that can be specified during device enumeration. |
Remarks
Successful completion of FindAllAsync results in a DeviceInformationCollection containing DeviceInformation objects.
If a call to CreateWatcher succeeds, a DeviceInformation object is passed to the added event for each device that is found.
The Name property should only be used for display purposes only and not for finding a device because the Name can change due to localization or a user assigning a name.
CreateFromIdAsync creates a DeviceInformation object if successful.
The DeviceInformation class provides device information, but more specifically, it provides properties of the device interface, the interface that represents functionality that the device exposes. Multi-function devices may have more than one device interface. The physical object that a user sees as a device, is known as the device container, and has properties such as Manufacturer and ModelID. For a list of properties associated with device interfaces, device containers, and other PnP objects, see the list of canonical properties in How to retrieve additional properties for a device or PnP object. For tutorials on how to use the DeviceInformation class to get device information, see How to retrieve additional properties for a device or PnP object, How to retrieve related PnP objects, and Quickstart: Enumerating device containers.
Examples
This example incrementally enumerates devices, adding them to a list each time a device is found, and also handling removals and updates.
var watcher; var isEnumerationComplete = false; var deviceArray = new Array(); // Saves the enumeration results function WatchDevices() { try { output.innerHTML = ""; // clear output field watcher = Windows.Devices.Enumeration.DeviceInformation.createWatcher(); // Add event handlers watcher.addEventListener("added", onAdded); watcher.addEventListener("removed", onRemoved); watcher.addEventListener("updated", onUpdated); watcher.addEventListener("enumerationcompleted", onEnumerationCompleted); watcher.addEventListener("stopped", onStopped); // Start enumerating and listening for events watcher.start(); } catch (e) { document.getElementById("statusMessage").innerHTML = "Failed to create watcher, error: " + e.message; } } function stopWatcher() { try { watcher.stop(); } catch (e) { document.getElementById("statusMessage").innerHTML = "Failed to stop watcher: " + e.message; } } function onAdded(devinfo) { document.getElementById("output").innerHTML += "<p>Device added: " + devinfo.name + "</p>"; deviceArray.push(devinfo); if (isEnumerationComplete) { output.innerHTML = ""; // clear output field printDeviceArray(document.getElementById("output")); } } function onUpdated(devUpdate) { document.getElementById("output").innerHTML += "<p>Device updated.</p>"; for (var i = 0; i < deviceArray.length; i++) { if (deviceArray[i].id == devUpdate.id) { deviceArray[i].update(devUpdate); } } output.innerHTML = ""; // clear output field printDeviceArray(document.getElementById("output")); } function onRemoved(devupdate) { document.getElementById("output").innerHTML += "<p>Device removed.</p>"; for (var i = 0; i < deviceArray.length; i++) { if (deviceArray[i].id == devupdate.id) { deviceArray[i].slice(devupdate); } } output.innerHTML = ""; // clear output field printDeviceArray(document.getElementById("output")); } function onEnumerationCompleted(obj) { isEnumerationComplete = true; document.getElementById("output").innerHTML += "<p>Enumeration Completed.</p>"; printDeviceArray(document.getElementById("output")); } function onStopped(obj) { document.getElementById("output").innerHTML += "<p>Stopped.</p>"; if (watcher.status == Windows.Devices.Enumeration.DeviceWatcherStatus.aborted) { document.getElementById("output").innerHTML += "<p>Enumeration stopped unexpectedly. </p>"; document.getElementById("output").innerHTML += "<p>Click the Watch button to restart enumeration.</p>"; } else if (watcher.status == Windows.Devices.Enumeration.DeviceWatcherStatus.stopped) { document.getElementById("output").innerHTML += "<p>You requested to stop enumeration. </p>"; document.getElementById("output").innerHTML += "<p>Click the Watch button to restart enumeration.</p>"; } } // Prints the friendly name of the device interface, // its ID (device interface path), and whether it is enabled. function printDevice(deviceInterface, outputDestination) { outputDestination.innerHTML += "<p>Name: " + deviceInterface.name + "<p/>"; outputDestination.innerHTML += "<p>Interface ID: " + deviceInterface.id + "<p/>"; outputDestination.innerHTML += "<p>Enabled: " + deviceInterface.isEnabled + "<p/>"; outputDestination.innerHTML += "<br />"; } function printDeviceArray(outputDestination) { for (var i = 0; i < deviceArray.length; i++) { printDevice(deviceArray[i], outputDestination); } }
Requirements
Minimum supported client | Windows 8 [Windows Store apps, desktop apps] |
---|---|
Minimum supported server | Windows Server 2012 [Windows Store apps, desktop apps] |
Namespace |
|
Metadata |
|