5 Appendix A: Product Behavior
The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.
Windows NT 4.0 operating system
Windows 2000 operating system
Windows XP operating system
Windows Server 2003 operating system
Windows Vista operating system
Windows Server 2008 operating system
Windows 7 operating system
Windows Server 2008 R2 operating system
Windows 8 operating system
Windows Server 2012 operating system
Windows 8.1 operating system
Windows Server 2012 R2 operating system
Windows 10 operating system
Windows Server 2016 operating system
Windows Server operating system
Windows Server 2019 operating system
Windows Server 2022 operating system
Windows 11 operating system
Windows Server 2025 operating system
Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.
Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.
<1> Section 2.5: Windows presents properties with PropertySet VT_LPSTR (0x001E) to applications as null-terminated string values such that the application cannot reliably detect the presence of trailing null characters or any characters following the first embedded null character. Properties with PropertyType VT_BSTR (0x0008) are presented to the application as a value of type BSTR (for more information, see [MS-DTYP] section 2.2.5), which is an explicitly-sized string type, and in which an application can detect these characters. Identical behavior also applies to scalar values of type VT_LPSTR or VT_BSTR, respectively, when these values are part of a vector or array property type.
<2> Section 2.18.2: Windows enables applications creating a property set to select whether a property set is Unicode, in which case the CodePage property is CP_WINUNICODE (0x04B0). Alternatively, it can select ANSI, in which case the CodePage property is the current ANSI code page identifier for the system.
<3> Section 2.18.3: Windows always selects the current user's default locale for the Locale property.
<4> Section 2.21: Different versions of Windows limit the size of a PropertySetStream packet as follows.
Windows version |
Limit (bytes) |
---|---|
Windows NT operating system |
262,144 |
Windows 2000 |
1,048,576 |
Windows XP |
1,048,576 |
Windows XP operating system Service Pack 2 (SP2) |
1,048,576 |
Windows XP operating system Service Pack 3 (SP3) |
2,097,152 |
Windows Server 2003 operating system with Service Pack 1 (SP1) |
1,048,576 |
Windows Server 2003 operating system with Service Pack 2 (SP2) |
2,097,152 |
Windows Vista and later |
2,097,152 |
Windows Server 2008 and later |
2,097,152 |
<5> Section 2.21: Windows NT does not support version 1 property sets.
<6> Section 2.21: Different versions of Windows write the SystemIdentifier field as follows.
Windows version |
SystemIdentifier |
---|---|
Windows |
0x00020004 |
Windows 2000 |
0x00020005 |
Windows XP |
0x00020105 |
Windows Server 2003 |
0x00020205 |
Windows Vista and later |
0x00020006 |
Windows Server 2008 and later |
0x00020006 |
<7> Section 2.23: Windows provides a mechanism for applications to store property sets in an arbitrary application-provided stream container or storage container.
<8> Section 2.23: Windows converts the mapped characters in positions 0, 8, 16, and 24 to uppercase.
<9> Section 2.24: Windows NT does not support the alternate stream binding for files on NTFS volumes.
<10> Section 3.2.2.1: Different versions of Windows write the SystemIdentifier field as follows.
Windows version |
SystemIdentifier |
---|---|
Windows Vista |
0x00020006 |
Windows 7 |
0x00020106 |
Windows 8 |
0x00020206 |
Windows 8.1 |
0x00020306 |
Windows 10 |
0x0002000a |