http://msdn.microsoft.com/en-us/library/windows/hardware/ff545793(v=vs.85).aspxで、
typedef struct _FILE_FULL_EA_INFORMATION {
ULONG NextEntryOffset;
UCHAR Flags;
UCHAR EaNameLength;
USHORT EaValueLength;
CHAR EaName[1];
} FILE_FULL_EA_INFORMATION, *PFILE_FULL_EA_INFORMATION;
MSDNは最後の行で言います:
「各エントリに関連付けられた値はEaName配列に従います。つまり、EAの値はEaName +(EaNameLength + 1)にあります。」
私はそれが間違っていると思います、そして正しいものは
「各エントリに関連付けられた値はEaName配列に従います。つまり、EAの値はEaName+EaNameLengthにあります。」
誰が正しいですか?
PS:
samページで、MSDNは次のように述べています。「EaNameLength:EaName配列のバイト単位の長さ。この値には、EaNameへのヌルターミネータは含まれていません。」
さらに、MSDNは、 EaNameをヌル文字バイトで終了する必要があるとは言っていません。