1.8 Vendor-Extensible Fields
This protocol uses HRESULT values that are vendor extensible. Vendors are free to choose their own values for this field as long as the C bit (0x20000000) is set as specified in [MS-ERREF] section 2, indicating that the value is a customer code.
This protocol also uses NTSTATUS values taken from the NTSTATUS number space specified in [MS-ERREF]. Vendors SHOULD reuse those values with their indicated meaning<2> Choosing any other value runs the risk of a collision in the future.
Properties are represented by property specifications, which consist of a GUID representing a collection of properties called a property set, plus a 32-bit property identifier to identify the property within the set. The property identifier value MUST NOT be "0x00000000", "0xFFFFFFFF", or "0xFFFFFFFE". Vendors can guarantee that their properties are uniquely defined by placing them in a property set defined by their own GUIDs.<3>