[Toc][Index]

FEAs

  
FEAs are complete name/value pairs. In order to simplify and speed up 
scanning and processing of these names, they are represented as 
length-preceded data . FEAs are defined as follows: 

struct FEA {
    unsigned char fEA;        /* byte of flags      */
    unsigned char cbName;     /* length of name     */
    unsigned short cbValue;   /* length of value    */
    unsigned char szName[];   /* ASCIIZ name        */
    unsigned char aValue[];   /* free format value  */
};


There is only one flag defined in fEA. That is 0x80 which is fNeedEA. 
Setting the flag marks this EA as needed for the proper operation on the 
file to which it is associated. Setting this bit has implications for 
access to this file by old applications, so it should not be set 
arbitrarily. 
If a file has one or more NEED EAs, old applications are not allowed to 
open the file. For DOS mode applications to access files with NEED EAs, 
they must have the EA bit set in their exe header. For OS/2 mode, only 
applications with the NEWFILES bit set in the exe header may open files 
with NEED EAs. 
Programs that change EAs should preserve the NEED bit in the EAs unless 
there is a good reason to change it. 
The name length does not include the trailing NUL. The maximum EA name 
length is 255 bytes. The minimum EA name length is 1 byte. The characters 
that form the name are legal filename characters. Wildcard characters are 
not allowed . EA names are case-insensitive and should be uppercased. The 
FSD should call FSH_CHECKEANAME and FSH_UPPERCASE for each EA name it 
receives to check for invalid characters and correct length, and to 
uppercase it. 
The FSD may not modify the flags. 
A list of FEAs is a packed set of FEA structures preceded by a length of 
the list (including the length itself) as indicated in the following 
structure: 

struct FEAList {
    unsigned long cbList;       /* length of list       */
    struct FEA list[];          /* packed set of FEAs   */
};


FEA lists are used for adding, deleting, or changing EAs. A particular FSD 
may store the EAs in whatever format it desires. Certain EAs may be stored 
to optimize retrieval. 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs