Property-Data-Type Identifiers
A property-data-type identifier is a DEVPROPTYPE-typed value that represents the data format of a property. In general, a property-data-type identifier is a bitwise OR of a base-data-type identifier and a property-data-type modifier. A property-data-type identifier can represent a single fixed-length base-data-type value, a single variable-length base-data-type value, an array of fixed-length base-data-type values, or a list of variable-length base-data-type values.
The system-supported base-data-type identifiers and property-data-type modifiers are defined in Devpropdef.h.
Windows enforces the following requirements on property-data-type identifiers:
The base-data-type identifier is one of the DEVPROP_TYPE_Xxx identifiers.
If the base-data-type identifier is DEVPROP_TYPE_EMPTY or DEVPROP_TYPE_NULL, the property data-type identifier cannot include a property-data-type modifier.
If the property-data-type identifier includes a property-data-type modifier, the property-data-type modifier is one of the DEVPROP_TYPEMOD_Xxx identifiers.
The DEVPROP_TYPEMOD_ARRAY property-data-type modifier can be combined only with the fixed-length base data types.
The DEVPROP_TYPEMOD_LIST property-data-type modifier can be combined only with the variable-length base data types.
In addition to enforcing requirements on property data type identifiers, Windows also enforces property value requirements that depend on the property data type.
The property functions that retrieve and set a property value take a PropertyType parameter. For the functions that retrieve a property value, PropertyType is an output parameter that receives the property-data-type identifier for a property. For the functions that set a property value, PropertyType is an input parameter that supplies the property-data-type identifier for a device property.
For more information, see Accessing Properties.