Property Value Requirements
Windows enforces the device property value size requirements that are listed in the following table. Windows only sets a device property value if the device property value complies with these value size requirements.
Property data type | Property value size requirement |
---|---|
A fixed-length base-data-type value |
The specified size of the supplied data must be the number of bytes in the base data type. |
An array of a fixed-length base-data-type values |
The specified size of the supplied data must be the number of bytes of an array of zero or more base-data-type values. |
A DEVPROP_TYPE_SECURITY_DESCRIPTOR data type value |
The specified size of the supplied data must be the number of bytes of a variable-length, self-relative SECURITY_DESCRIPTOR structure. |
A DEVPROP_TYPE_STRING data type value, a DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING data type value, or a DEVPROP_TYPE_STRING_INDIRECT data type value |
The specified size of the supplied data must be the number of bytes of a Unicode REG_SZ string, including the NULL-terminator. |
A list of DEVPROP_TYPE_STRING-typed strings, a list of DEVPROP_TYPE_SECURITY_DESCRIPTOR_STRING-typed strings, or a DEVPROP_TYPE_STRING_LIST data type value |
The specified size of the supplied data must be the number of bytes of a Unicode REG_MULTLI_SZ list of strings, including the final NULL-terminator that terminates the list of strings. |
All property values |
In addition to the property value size requirements that are listed in the other rows of this table, the maximum size, in bytes, of a property value is UNICODE_STRING_MAX_BYTES. |