The sections within this topic describe sets of attribute tokens.
The following table describes the attributes in the root namespace that are valid for all targets.
The following table describes the attributes in the root namespace that are valid only for device-type targets.
| Keyword | VARIANT type | Description |
| Address | VT_I4 | Class-specific (or bus-specific) address. |
| BusNumber | VT_I4 | Bus number for the device. |
| Capabilities | VT_I4 | Capabilities of the device. |
| Class | VT_BSTR | Class of the device. |
| ClassGUID | VT_BSTR | Class of the device, in GUID form. Use this keyword instead of the Class field when you are using localized builds. |
| CompatIDs | VT_ARRAY of VARIANT with VT_BSTR | All of the compatible IDs that are defined for this device. |
| ConfigFlags | VT_I4 | Configuration flags for the device. |
| Description | VT_BSTR | Device description. |
| DeviceID | VT_BSTR | Device identifier, including the instance identifier for the device. This string is a unique string for every device in the system. |
| DisplayName | VT_BSTR | Resolves to the first value that is found (from left to right) in the following attributes: FriendlyName, Description, or DeviceID. |
| Driver | VT_BSTR | A key in HKLM\System\CurrentControlSet\Control\Class\ that holds more information about the driver. |
| DriverNames | VT_ARRAY of VARIANT with VT_BSTR | Aggregates all of the data from UpperClassFilters, UpperFilters, LowerFilters, LowerClassFilters, and Service. |
| Filters | VT_ARRAY of VARIANT with VT_BSTR | Aggregates all of the data from UpperClassFilters, UpperFilters, LowerFilters, and LowerClassFilters. |
| FriendlyName | VT_BSTR | Friendly name of the device. |
| HardwareIDs | VT_ARRAY of VARIANT with VT_BSTR | All of the hardware IDs that are defined for this device. |
| IsAttached | VT_BOOL | The opposite of the IsPhantom attribute. This keyword is equivalent to "IsPhantom=False". |
| IsDisableable | VT_BOOL | Extracts the DN_DISABLEABLE flag out of the Status flags. A value of VARIANT_TRUE indicates that the device claims that it can be disabled. This keyword is equivalent to "status&0x00002000". |
| IsDisabled | VT_BOOL | Checks for the CM_PROB_DISABLED value in the ProblemCode attribute. A value of VARIANT_TRUE indicates that the device is disabled and must be enabled before use. This keyword is equivalent to "ProblemCode=0x00000016". |
| IsFailedStart | VT_BOOL | Checks for the CM_PROB_FAILED_START flag out of the ProblemCode flags. A value of VARIANT_TRUE indicates that the device driver failed to start. This keyword is equivalent to "ProblemCode=0x0000000A". |
| IsFailedInstall | VT_BOOL | Checks for the CM_PROB_FAILED_INSTALL flag out of the ProblemCode flags. A value of VARIANT_TRUE indicates that the device driver failed to install on the device. This keyword is equivalent to "ProblemCode=0x0000001C". |
| IsFiltered | VT_BOOL | Extracts the DN_FILTERED flag out of the Status flags. This keyword is equivalent to "status&0x00000800". |
| IsManual | VT_BOOL | Extracts the DN_MANUAL flag out of the Status flags. This keyword is equivalent to "status&0x00000010". |
| IsMoved | VT_BOOL | Extracts the DN_MOVED flag out of the Status flags. This keyword is equivalent to "status&0x00001000". |
| IsPhantom | VT_BOOL | A value of VARIANT_TRUE indicates that the device is not currently plugged into the system or that it has been uninstalled. |
| IsRebootNeeded | VT_BOOL | Extracts the DN_NEED_RESTART flag out of the Status flags. A value of VARIANT_TRUE indicates that the device's co-installer claims that the computer needs to be restarted for the device to complete a removal or installation action. This keyword is equivalent to "status&0x00000100". |
| IsReinstallNeeded | VT_BOOL | Extracts the CONFIGFLAG_REINSTALL flag out of the ConfigFlags attribute. A value of VARIANT_TRUE indicates that the device claims that it can be removed. This keyword is equivalent to "ConfigFlags&0x00000020". |
| IsRemovable | VT_BOOL | Extracts the DN_REMOVABLE flag out of the Status flags. A value of VARIANT_TRUE indicates that the device claims that it can be removed. This keyword is equivalent to "status&0x00004000". |
| IsRemovePending | VT_BOOL | Extracts the DN_WILL_BE_REMOVED flag out of the Status flags. This keyword is equivalent to "status&0x00040000". |
| IsRootEnumerated | VT_BOOL | Extracts the DN_ROOT_ENUMERATED flag out of the Status flags. A value of VARIANT_TRUE indicates that the parent of the device is RootDevice. This keyword is equivalent to "status&0x00000001". |
| IsStarted | VT_BOOL | Extracts the DN_STARTED flag out of the Status flags. A value of VARIANT_TRUE indicates that the device is currently configured. This keyword is equivalent to "status&0x00000008". |
| LegacyBusType | VT_I4 | Legacy bus type. |
| Location | VT_BSTR | More information about the physical location of the device. |
| LowerClassFilters | VT_ARRAY of VARIANT with VT_BSTR | The service names of every driver that is attached as a lower class filter on the target device. |
| LowerFilters | VT_ARRAY of VARIANT with VT_BSTR | The service names of every driver that is attached as a lower filter on the target device. |
| Manufacturer | VT_BSTR | Manufacturer of the device. |
| PDO | VT_BSTR | Name of the physical device object in the kernel. |
| ProblemCode | VT_I4 | Problem code for the device. |
| Service | VT_BSTR | The service name of the driver for the device. |
| Status | VT_I4 | Status flags for the device. |
| SymbolicLink | VT_BSTR | Name that you can use to open the device by using the Microsoft Win32 CreateFile method. You cannot use all devices in this way. Most devices that have a programmable interface will have SymbolicLink available. |
| UINumber | VT_I4 | UINumber for the device. |
| UpperClassFilters | VT_ARRAY of VARIANT with VT_BSTR | The service names of every driver attached as an upper class filter on the target device. |
| UpperFilters | VT_ARRAY of VARIANT with VT_BSTR | The service names of every driver that is attached as an upper filter on the target device. |
The following table describes the attributes in the root namespace that are valid only for system-type targets.
| Keyword | VARIANT Type | Description |
| DriveLetter | VT_BSTR | Drive letter of the volume, including a trailing slash (\). |
| ExtentCount | VT_I4 | The number of disks that the volume extends across. |
| ExtentDiskNumbers | VT_ARRAY of VARIANT with VT_I4 | An array containing each of the Disk::Number values that the volume extends across. The array has ExtentCount elements, and is 0-indexed. The array has the same ordering as the other Extent* arrays. |
| ExtentLengths | VT_ARRAY of VARIANT with VT_I8 | An array containing the length of each individual extent that the volume extends across. The array has ExtentCount elements, and is 0-indexed. The array has the same ordering as the other Extent* arrays. |
| ExtentOffsets | VT_ARRAY of VARIANT with VT_I8 | An array containing the starting offset of each individual extent that the volume extends across. The array has ExtentCount elements, and is 0-indexed. The array has the same ordering as the other Extent* arrays. |
| FreeSize | VT_I8 | Total amount of free space on the volume, in bytes. |
| SerialNumber | VT_I4 | Serial number of the volume. |
| TotalSize | VT_I8 | Total size of the volume, in bytes. |
| Type | VT_I4 | Value returned from GetDriveType(DriveLetter). For more information, see GetDriveType in the MSDN Library. |