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必须以空字符字节终止。
答案 0 :(得分:2)
来自MSDN:
EaName
(变量) - 一个8位ASCII字符数组,包含扩展属性名称,后跟单个终止空字符字节。
EaNameLength
(1字节):一个8位无符号整数,包含EaName
字段中扩展属性名称的长度(以字节为单位)。 此值不得包含EaName
的终止空字符。
+1
说明空终止符。