Attribute Tokens in SDEL

The SDEL language uses target attribute tokens to define characteristics of target devices and computers.

Root Attribute Tokens for All Targets

The following table describes the attributes in the root namespace that are valid for all targets.

Keyword VARIANT type Description
Type VT_BSTR Defines the type of target. This value can be "System" or "Device".

Root Attribute Tokens for a Device Target

The following table describes the attributes in the root namespace that are valid only for device-type targets.

Note

Most of the following attributes are retrieved from the operating system through the SetupDi APIs. For more information about this APIs, see SetupDiGetDeviceRegistryProperty.

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.
Character VT_I4 A bitwise OR of the device's characteristics flags in a DWORD. (SPDRP_CHARACTERISTICS)
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.
DeviceStatusString VT_BSTR Contains both StatusString and the ProblemCodeString in a single string.
DevInst VT_I4 Opaque handle to the device instance.
DevType VT_I4 Represents the device's type. (SPDRP_DEVTYPE)
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.
DriverBinaryNames VT_ARRAY of VARIANT with VT_BSTR Aggregates all of the data from UpperClassFilters, UpperFilters, LowerFilters, LowerClassFilters, and Service.
Enumerator VT_BSTR The name of the device's enumerator. (SPDRP_ENUMERATOR_NAME)
Exclusive VT_I4 A number that indicates whether a user can obtain exclusive use of the device. (SPDRP_EXCLUSIVE)
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.
LocationPaths VT_ARRAY of VARIANT with VT_BSTR Location of the device instance in the device tree.
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.
LowerClassFiltersBinaryNames VT_ARRAY of VARIANT with VT_BSTR Names of binaries of all lower class filter drivers for device target.
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.
LowerFiltersBinaryNames VT_ARRAY of VARIANT with VT_BSTR Names of all lower filter drivers for device target.
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. One of the CM_PROB_-prefixed problem values defined in Cfg.h.
ProblemCodeString VT_BSTR The string representation of ProblemCode.
RemovalPolicy VT_I4 Current removal policy of the device. (SPDRP_REMOVAL_POLICY)
RemovalPolicyHWDefault VT_I4 ardware-specified default removal policy of the device. (SPDRP_REMOVAL_POLICY_HW_DEFAULT)
RemovalPolicyOverride VT_I4 Override removal policy (if it exists) of the device. (SPDRP_REMOVAL_POLICY_OVERRIDE)
Service VT_BSTR The service name of the driver for the device.
ServiceBinaryName VT_BSTR Name of function driver for device target.
Status VT_I4 Status flags for the device.
StatusString VT_BSTR The Device Status String.
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.
UIFormat VT_BSTR String used to display the UINumber value. (SPDRP_UI_NUMBER_DESC_FORMAT)
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.
UpperClassFiltersBinaryNames VT_ARRAY of VARIANT with VT_BSTR Names of binaries of all upper class filter drivers for device target.
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.
UpperFiltersBinaryNames VT_ARRAY of VARIANT with VT_BSTR Names of all upper filter drivers for device target

Root Keywords for a System Target

The following table describes the attributes in the root namespace that are valid only for system-type targets.

Keyword VARIANT type Description
IsPhantom VT_BOOL Specifies whether the system is currently available for use.
IsRemote VT_BOOL Specifies whether the target is a remote system.
PageSize VT_I4 Page size of the target system hardware.
ProcArch VT_BSTR Processor architecture of the target system hardware. This field can contain "x86", "IA64", or "x64".
OSMajorVersion VT_I4 Specifies the major version number of the operating system.
OSMinorVersion VT_I4 Specifies the minor version number of the operating system.

Disk Namespace Keywords

The following table describes the attributes in the Disk namespace that are valid only for disk devices.

Note

Most of the attributes in the Disk namespace are retrieved from the operating system through an IOCTL to the disk itself. For more information, see STORAGE_DEVICE_DESCRIPTOR.

Keyword VARIANT type Description
BusType VT_I4 STORAGE_DEVICE_DESCRIPTOR.BusType field.
DeviceType VT_I4 STORAGE_DEVICE_DESCRIPTOR.DeviceTypeModifier field.
IsRemovable VT_BOOL Specifies whether the device contains removable media.
IsCommandQueuing VT_BOOL STORAGE_DEVICE_DESCRIPTOR.CommandQueueing field.
Number VT_UI4 Disk number (likely the same as the Address field).
ProductID VT_BSTR Product identifier.
ProductRev VT_BSTR Product revision value.
SerialNumber VT_BSTR Serial number.
Size VT_I8 Total size of the disk, in bytes.
VendorID VT_BSTR Vendor identifier.

Volume Namespace Keywords

The following table describes the attributes in the Volume namespace that are valid only for volume devices.

Keyword VARIANT Type Description
Boot VT_BOOL Determines if the volume is the boot partition. A value of VARIANT_TRUE indicates that the volume is the boot partition. A boot partition is a partition that contains Windows operating system files.
DeviceName VT_BSTR The current mapping for this Volume's MS-DOS device name.
Disk VT_BSTR The current mapping for this Volume's MS-DOS device name.
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.
FileSystem VT_BSTR The name of the volume's file system. (GetVolumeInformation)
FreeSize VT_I8 Total amount of free space on the volume, in bytes.
GBFreeSize VT_I4 e total number of free gigabytes (GB) on a disk that are available to the user.
GBTotalSize VT_I4 The total number of gigabytes (GB) on a volume that are available to the user.
HasFiles VT_BOOL Determines if the volume has files on it. A value of VARIANT_TRUE indicates the volume has files on it.
IsMediaPresent VT_BOOL Determines if media is present or not for the volume. A value of VARIANT_TRUE indicates the volume has media on it.
IsMediaRemovable VT_BOOL Determines if volume media is removable. A value of VARIANT_TRUE indicates the volume media is removable.
Label VT_BSTR The Volume Label. (GetVolumeInformation)
MBFreeSize VT_I8 The total number of free megabytes (MB) on a disk that are available to the user.
MBTotalSize VT_I8 The total number of megabytes (MB) on a volume that are available to the user. (GetDiskFreeSpaceEx)
MountPaths VT_BSTR All mount paths to this volume.
PagePath VT_BOOL Determines if the volume contains an active page file. A value of VARIANT_TRUE indicates that the volume contains an active page file.
SerialNumber VT_I4 Serial number of the volume.
System VT_BOOL Determines if the volume is the system partition. A value of VARIANT_TRUE indicates that the volume contains the Windows system partition. The system partition contains the hardware-related files (bootable code) that starts the Windows Boot Manager (bootmgr).
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.

Power Namespace Keywords

The following table describes the attributes in the Power namespace that are valid only for power devices.

Keyword VARIANT Type Description
SupportedDeviceUnits VT_ARRAY of VARIANT with VT_BSTR Array of PowerUnit namespaces available for query.

PowerDevice, PowerComponentX, PowerProcessor, and PowerSoC Namespace Keywords

The following table describes the attributes in the various PowerUnit namespaces.

Keyword VARIANT Type Description
SupportedStates VT_ARRAY of VARIANT with VT_BSTR Array of namespaces for power states (C0–C6, D0–D3, F0–F9, SWIS0–SWIS3)
CoveredStates VT_ARRAY of VARIANT with VT_BSTR Array of namespaces for covered states. Only states that have a non-zero hit count are included

PowerProcessorCX, PowerDeviceDX, PowerComponentXFY, PowerSoCSWISX Namespace Keywords

The following table describes the attributes in the various PowerState namespaces.

Keyword VARIANT Type Description
HitCount VT_UI4 The number of times the given power state was entered during the test.
Duration VT_UI4 The period of time in milliseconds spent in the given power state.
Percentage VT_UI4 he percentage of time spent in the given power state.

Interface Namespace Keywords

The following table describes the attributes in the various Interfaces namespaces.

Keyword VARIANT Type Description
All VT_BSTR All the device interfaces for all the device interface GUID a single device supports.
VOLUME VT_BSTR Interfaces for the GUID_DEVINTERFACE_VOLUME GUID.
DISK VT_BSTR Interfaces for the GUID_DEVINTERFACE_DISK GUID.
CDROM VT_BSTR Interfaces for the GUID_DEVINTERFACE_CDROM GUID.
GUID VT_BSTR Interfaces for a single interface GUID.

CAP Namespace Keywords

The following table describes the attributes in the various CAP (Capabilities) namespaces.

Keyword VARIANT Type Description
LockSupported VT_BOOL Specifies whether the device supports physical-device locking that prevents device ejection. (CM_DEVCAP_LOCKSUPPORTED)
EjectSupported VT_BOOL Specifies whether the device supports software-controlled device ejection while the system is in the PowerSystemWorking state. (CM_DEVCAP_EJECTSUPPORTED)
Removable VT_BOOL Specifies whether the device can be dynamically removed from its immediate parent. (CM_DEVCAP_REMOVABLE)
DockDevice VT_BOOL Specifies whether the device is a docking peripheral. (CM_DEVCAP_DOCKDEVICE)
UniqueId VT_BOOL Specifies whether the device's instance ID is unique system-wide. (CM_DEVCAP_UNIQUEID)
SilentInstall VT_BOOL Specifies whether Device Manager should suppress all installation dialog boxes. (CM_DEVCAP_SILENTINSTALL)
RawDeviceOK VT_BOOL Specifies whether the driver for the underlying bus can drive the device if there is no function driver. (CM_DEVCAP_RAWDEVICEOK)
SurpriseRemovalOK VT_BOOL Specifies whether the function driver for the device can handle the case where the device is removed before Windows can send IRP_MN_QUERY_REMOVE_DEVICE to it. (CM_DEVCAP_SURPRISEREMOVALOK)
HardwareDisabled VT_BOOL Specifies if the device's hardware is disabled. (CM_DEVCAP_HARDWAREDISABLED)
NonDynamic VT_BOOL Reserved for future use. (CM_DEVCAP_NONDYNAMIC)

INF Namespace Keywords

The following table describes the attributes in the various INF namespaces.

Keyword VARIANT Type Description
FileName VT_BSTR INF file name.
FileNamePath VT_BSTR INF file name path.
SectionName VT_BSTR INF section name.
Date VT_BSTR INF date.
OriginalInfFileName VT_BSTR Original INF file name.

NET Namespace Keywords

The following table describes the attributes in the various NET namespaces.

Keyword VARIANT Type Description
AdapterName VT_BSTR AdapterName field from IP_ADAPTER_ADDRESSES structure.
IPV6Address VT_BSTR FirstUnicastAddress field from IP_ADAPTER_ADDRESSES structure.
FirstAnycastAddress VT_BSTR FirstAnycastAddress field from IP_ADAPTER_ADDRESSES structure.
FirstMulticastAddress VT_BSTR FirstMulticastAddress field from IP_ADAPTER_ADDRESSES structure.
FirstDnsServerAddress VT_BSTR FirstDnsServerAddress field from IP_ADAPTER_ADDRESSES structure.
FirstPrefix VT_BSTR FirstPrefix field from IP_ADAPTER_ADDRESSES structure.
PrimaryWINSServer VT_BSTR FirstWinsServerAddress field from IP_ADAPTER_ADDRESSES structure.
FirstGatewayAddress VT_BSTR FirstGatewayAddress field from IP_ADAPTER_ADDRESSES structure.
ConnectionSpecificDNSSuffix VT_BSTR DnsSuffix field from IP_ADAPTER_ADDRESSES structure
Description VT_BSTR Description field from IP_ADAPTER_ADDRESSES structure.
FriendlyName VT_BSTR FriendlyName field from IP_ADAPTER_ADDRESSES structure.
PhysicalAddress VT_BSTR MacAddress field from IP_ADAPTER_ADDRESSES structure
Flags VT_UI4 Flags field from IP_ADAPTER_ADDRESSES structure
Mtu VT_UI4 Mtu field from IP_ADAPTER_ADDRESSES structure.
IfType VT_UI4 IfType field from IP_ADAPTER_ADDRESSES structure.
OperStatus VT_UI4 OperStatus field from IP_ADAPTER_ADDRESSES structure
OperationalStatusString VT_BSTR String equivalent of OperStatus field from IP_ADAPTER_ADDRESSES structure
Ipv6IfIndex VT_UI4 Ipv6IfIndex field from IP_ADAPTER_ADDRESSES structure
TransmitLinkSpeedMbps VT_UI4 TransmitLinkSpeedGpbs field from IP_ADAPTER_ADDRESSES structure.
ReceiveLinkSpeedMbps VT_UI4 ReceiveLinkSpeedMbps field from IP_ADAPTER_ADDRESSES structure.
Ipv4Metric VT_UI4 Ipv4Metric field from IP_ADAPTER_ADDRESSES structure.
Ipv6Metric VT_UI4 Ipv6Metric field from IP_ADAPTER_ADDRESSES structure.
DHCPServer VT_BSTR Dhcpv4Server field from IP_ADAPTER_ADDRESSES structure.
CompartmentId VT_UI4 CompartmentId field from IP_ADAPTER_ADDRESSES structure.
NetworkGuid VT_BSTR NetworkGuid field from IP_ADAPTER_ADDRESSES structure.
ConnectionType VT_UI4 ConnectionType field from IP_ADAPTER_ADDRESSES structure.
TunnelType VT_UI4 TunnelType field from IP_ADAPTER_ADDRESSES structure.
Dhcpv6ClientDuidLength VT_UI4 Dhcpv6ClientDuidLength field from IP_ADAPTER_ADDRESSES structure.
Dhcpv6Iaid VT_UI4 Dhcpv6Iaid field from IP_ADAPTER_ADDRESSES structure.
IsOperational VT_BOOL Is Operational.
PhysicalMediaType VT_UI4 Physical media type of the network device.
MediaType VT_UI4 Physical media type of the network device.

OpticalMedia Namespace Keywords

The following table describes the attributes in the various OpticalMedia namespaces.

Keyword VARIANT Type Description
IsMediaPresent VT_BOOL If media is present or not in the optical media device.
Type VT_UI4 The current profile type number as returned in GET_CONFIGURATION_HEADER from IOCTL_CDROM_GET_CONFIGURATION.
ClassTypeString VT_BSTR Type of optical media class.
TypeString VT_BSTR Type of optical media.

StorageMedia Namespace Keywords

The following table describes the attributes in the various StorageMedia namespaces.

Keyword VARIANT Type Description
DeviceType VT_UI4 Specifies one of the system-defined FILE_DEVICE_XXX constants indicating the type of device.
DeviceTypeString VT_BSTR The Device Type associated String.
Count VT_UI4 Contains the number of DEVICE_MEDIA_INFO structures in MediaInfo.
SupportedTypes VT_UI4 Specifies all MEDIA_TYPE or STORAGE_MEDIA_TYPE values that indicates the type of removable disk.
Valid VT_BOOL If the gatherer for this device has valid data.

Windows Namespace Keywords

The following table describes the attributes in the various Windows namespaces.

Keyword VARIANT Type Description
IsDriverVerifierEnabled VT_BOOL True or False to indicate if Driver Verifier is enabled with at least standard settings against all drivers of this device.
IsKernelDebugDevice VT_BOOL True or False to indicate if this device is in use by the kernel debugger.