在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 必须以空字符字节终止。