Windows Driver Kit: Windows Device Testing Framework
Attribute Tokens in SDEL

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

The sections within this topic describe sets of attribute tokens.

Root Attribute Tokens for All Targets

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

Keyword VARIANT typeDescription
TypeVT_BSTRDefines 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 typeDescription
AddressVT_I4Class-specific (or bus-specific) address.
BusNumberVT_I4Bus number for the device.
CapabilitiesVT_I4Capabilities of the device.
ClassVT_BSTRClass of the device.
ClassGUIDVT_BSTRClass of the device, in GUID form. Use this keyword instead of the Class field when you are using localized builds.
CompatIDsVT_ARRAY of VARIANT with VT_BSTRAll of the compatible IDs that are defined for this device.
ConfigFlagsVT_I4Configuration flags for the device.
DescriptionVT_BSTRDevice description.
DeviceIDVT_BSTRDevice identifier, including the instance identifier for the device. This string is a unique string for every device in the system.
DisplayNameVT_BSTRResolves to the first value that is found (from left to right) in the following attributes: FriendlyName, Description, or DeviceID.
DriverVT_BSTRA key in HKLM\System\CurrentControlSet\Control\Class\ that holds more information about the driver.
DriverNamesVT_ARRAY of VARIANT with VT_BSTRAggregates all of the data from UpperClassFilters, UpperFilters, LowerFilters, LowerClassFilters, and Service.
FiltersVT_ARRAY of VARIANT with VT_BSTRAggregates all of the data from UpperClassFilters, UpperFilters, LowerFilters, and LowerClassFilters.
FriendlyNameVT_BSTRFriendly name of the device.
HardwareIDsVT_ARRAY of VARIANT with VT_BSTRAll of the hardware IDs that are defined for this device.
IsAttachedVT_BOOLThe opposite of the IsPhantom attribute. This keyword is equivalent to "IsPhantom=False".
IsDisableableVT_BOOLExtracts 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".
IsDisabledVT_BOOLChecks 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".
IsFailedStartVT_BOOLChecks 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".
IsFailedInstallVT_BOOLChecks 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".
IsFilteredVT_BOOLExtracts the DN_FILTERED flag out of the Status flags. This keyword is equivalent to "status&0x00000800".
IsManualVT_BOOLExtracts the DN_MANUAL flag out of the Status flags. This keyword is equivalent to "status&0x00000010".
IsMovedVT_BOOLExtracts the DN_MOVED flag out of the Status flags. This keyword is equivalent to "status&0x00001000".
IsPhantomVT_BOOLA value of VARIANT_TRUE indicates that the device is not currently plugged into the system or that it has been uninstalled.
IsRebootNeededVT_BOOLExtracts 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".
IsReinstallNeededVT_BOOLExtracts 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".
IsRemovableVT_BOOLExtracts 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".
IsRemovePendingVT_BOOLExtracts the DN_WILL_BE_REMOVED flag out of the Status flags. This keyword is equivalent to "status&0x00040000".
IsRootEnumeratedVT_BOOLExtracts 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".
IsStartedVT_BOOLExtracts 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".
LegacyBusTypeVT_I4Legacy bus type.
LocationVT_BSTRMore information about the physical location of the device.
LowerClassFiltersVT_ARRAY of VARIANT with VT_BSTRThe service names of every driver that is attached as a lower class filter on the target device.
LowerFiltersVT_ARRAY of VARIANT with VT_BSTRThe service names of every driver that is attached as a lower filter on the target device.
ManufacturerVT_BSTRManufacturer of the device.
PDOVT_BSTRName of the physical device object in the kernel.
ProblemCodeVT_I4Problem code for the device.
ServiceVT_BSTRThe service name of the driver for the device.
StatusVT_I4Status flags for the device.
SymbolicLinkVT_BSTRName 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.
UINumberVT_I4UINumber for the device.
UpperClassFiltersVT_ARRAY of VARIANT with VT_BSTRThe service names of every driver attached as an upper class filter on the target device.
UpperFiltersVT_ARRAY of VARIANT with VT_BSTRThe service names of every driver that is attached as an upper filter on the target device.

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 typeDescription
IsPhantomVT_BOOLSpecifies whether the system is currently available for use.
IsRemoteVT_BOOLSpecifies whether the target is a remote system.
PageSizeVT_I4Page size of the target system hardware.
ProcArchVT_BSTRProcessor architecture of the target system hardware. This field can contain “x86”, “IA64”, or “x64”.

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 typeDescription
BusTypeVT_I4STORAGE_DEVICE_DESCRIPTOR.BusType field.
DeviceTypeVT_I4STORAGE_DEVICE_DESCRIPTOR.DeviceTypeModifier field.
IsRemovableVT_BOOLSpecifies whether the device contains removable media.
IsCommandQueuingVT_BOOLSTORAGE_DEVICE_DESCRIPTOR.CommandQueueing field.
NumberVT_UI4Disk number (likely the same as the Address field).
ProductIDVT_BSTRProduct identifier.
ProductRevVT_BSTRProduct revision value.
SerialNumberVT_BSTRSerial number.
SizeVT_I8Total size of the disk, in bytes.
VendorIDVT_BSTRVendor identifier.

Volume Namespace Keywords

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

Keyword VARIANT TypeDescription
DriveLetterVT_BSTRDrive letter of the volume, including a trailing slash (\).
ExtentCountVT_I4The number of disks that the volume extends across.
ExtentDiskNumbersVT_ARRAY of VARIANT with VT_I4An 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.
ExtentLengthsVT_ARRAY of VARIANT with VT_I8An 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.
ExtentOffsetsVT_ARRAY of VARIANT with VT_I8An 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.
FreeSizeVT_I8Total amount of free space on the volume, in bytes.
SerialNumberVT_I4Serial number of the volume.
TotalSizeVT_I8Total size of the volume, in bytes.
TypeVT_I4Value returned from GetDriveType(DriveLetter). For more information, see GetDriveType in the MSDN Library.


Send feedback on this topic
Built on November 19, 2009
Page view tracker