0

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

4

1 回答 1

2

MSDN

EaName(变量)- 包含扩展属性名称的 8 位 ASCII 字符数组,后跟单个终止空字符字节

EaNameLength(1 个字节):一个 8 位无符号整数,包含EaName字段中扩展属性名称的长度(以字节为单位)。此值不得包含终止空字符到EaName.

空终止符的+1帐户。

于 2012-12-15T12:39:32.697 回答