Pseudocode for the operation is as follows:
The object store MUST initialize OutputBuffer to zero.
If Open.GrantedAccess does not contain FILE_READ_EA, the operation MUST be failed with STATUS_ACCESS_DENIED.
If Open.File.ExtendedAttributes is not empty:
OutputBuffer is filled with as many complete FILE_FULL_EA_INFORMATION entries from Open.File.ExtendedAttributes, starting with Open.NextEaEntry, as can be contained in OutputBufferSize bytes.
Open.NextEaEntry is set to point to the entry after the last entry returned, if any.
Upon successful completion of the operation, the object store MUST return:
ByteCount set to the size, in bytes, of all FILE_FULL_EA_INFORMATION entries returned.
Status set to:
STATUS_NO_EAS_ON_FILE if there were no entries to return in Open.File.ExtendedAttributes.
STATUS_BUFFER_TOO_SMALL if OutputBufferSize is too small to hold Open.NextEaEntry. No entries are returned.
STATUS_BUFFER_OVERFLOW if at least one entry was returned in OutputBuffer but there are still additional entries to return.
STATUS_SUCCESS when one or more entries were returned from Open.File.ExtendedAttributes and there are no more entries to return.