There are a series of data structures through which OS/2 functions manipulate extended attributes (EAs) for applications:
Full Extended Attribute (FEA2) Data Structure A full EA (FEA2) data structure contains the extended attribute name and value. The name length does not include the trailing NULL. The characters that form the name are legal file name characters.
An FEA2LIST is a list of FEA2 structures, preceded by the length of the list (including the length itself). FEA2Lists are used for querying, adding, deleting, or changing EAs. They are required input parameters for the functions that create or set extended attributes (DosSetFileInfo and DosSetPathInfo). They are required output parameters for the functions that query extended attributes (DosQueryFileInfo, DosQueryPathInfo, and DosEnumAttribute).
FEA2 data structures include the lengths of the extended attribute's names and values. EA name lengths of 0 are illegal and cause errors to be returned by EA functions. An EA value length of 0 has special meaning:
Get Extended Attribute (GEA2) Data Structure A Get EA (GEA2) is an extended attribute name. The name length does not include the trailing NULL.
A GEA2LIST is a list of GEA2 structures, preceded by a length of the list (including the length itself). GEA2Lists are used for retrieving the values for a particular set of extended attributes. They are required input parameters for the functions that query extended attributes (DosQueryFileInfo, DosQueryPathInfo, and DosEnumAttribute).
Note: GEA2 data structures include the lengths of extended attribute's names and values. EA name lengths of 0 are illegal and cause errors to be returned by EA functions. An EA value length of 0 has special meaning. Setting an EA with a value length of 0 in the FEA2 data structure causes that attribute to be deleted, if possible. Getting an EA with a value length of 0 in the FEA2 data structure indicates that the attribute is not present.
Extended Attribute Operation ( EAOP2)
Data Structure
An extended attribute operation (EAOP2)
data structure consists of a GEA2LIST,
an FEA2LIST, and an error field. All
extended attribute manipulation is performed using this structure. Before
calling an extended attribute function, an application must define an EAOP2
structure, with the GEA2LIST and
FEA2LIST appropriately defined.
The use of GEA2LIST and FEA2LIST for each function is described further in the Control Program Programming Reference.