FEA2

FEA2 defines the format for setting the full extended attributes in the file.

Type
ULONG  oNextEntryOffset BYTE   fEA BYTE   cbName USHORT cbValue CHAR   szName[1]

C Declaration Method
typedef struct

Fields

 * oNextEntryOffset:Offset to next entry.
 * fEA:Extended attributes flag.
 * FEA_NEEDEA - Extended attributes are critical.
 * If this flag is set, this file cannot be copied to a file system that does not support extended attributes. This flag should only be set if extended attributes are critical to the processing of this file.
 * 0 - Extended attributes are not critical.


 * cbName:Length of szName, not including NULL.
 * This value must be greater than 0.


 * cbValue:Value length.
 * Sending an EA with cbValue set to 0 in the FEA2 data structure causes that attribute to be deleted, if possible. Receiving an EA with cbValue set to 0 in the FEA2 data structure indicates that the attribute is not present.


 * szName[1]:Extended attribute name.

Comment
Extended attributes (EAs) are non-critical by default. A non-critical EA is one that is not necessary to the functionality of the application. If a non-critical EA is lost, the system continues to operate correctly. For example, losing the icons associated with data files does not generally cause any ill effect other than the inability to show the icon.

A critical extended attribute is one which is necessary for the correct operation of the operating system or of a particular operation. EAs should be marked as critical if their loss would cause the system or program to perform incorrectly. For example, a mail program might store mail headers in EAs. The loss of the header from a message would normally render the mail program unable to further use that message. This would be unacceptable, so the mail program should mark this EA as critical.