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