ZwQueryEaFile 函数 (ntifs.h)

ZwQueryEaFile 例程返回与指定文件关联的扩展属性(EA)。

语法

NTSTATUS ZwQueryEaFile(
  [in]           HANDLE           FileHandle,
  [out]          PIO_STATUS_BLOCK IoStatusBlock,
  [out]          PVOID            Buffer,
  [in]           ULONG            Length,
  [in]           BOOLEAN          ReturnSingleEntry,
  [in, optional] PVOID            EaList,
  [in]           ULONG            EaListLength,
  [in, optional] PULONG           EaIndex,
  [in]           BOOLEAN          RestartScan
);

参数

[in] FileHandle

要对其执行操作的文件的句柄。

[out] IoStatusBlock

指向 IO_STATUS_BLOCK 结构的指针,该结构接收最终完成状态以及有关请求的操作的其他信息。

[out] Buffer

指向调用方提供的 FILE_FULL_EA_INFORMATION结构化输出缓冲区的指针,用于返回文件的 EA。

[in] Length

Buffer 指向的缓冲区的长度(以字节为单位)。

[in] ReturnSingleEntry

如果 ZwQueryEaFile 应仅返回它找到的第一个条目,则设置为 TRUE。

[in, optional] EaList

指向调用方提供的 FILE_GET_EA_INFORMATION结构化输入缓冲区的指针,该缓冲区指定要查询的 EA。 此参数是可选的,可以是 NULL。

[in] EaListLength

EaList 参数指向的缓冲区的长度(以字节为单位)。

[in, optional] EaIndex

扫描文件的 EA 列表的条目的索引。 如果 EaList 指向 nonempty 列表,则忽略此参数。 此参数是可选的,可以是 NULL。

[in] RestartScan

如果 ZwQueryEaFile 应开始扫描文件 EA 列表中的第一个条目,则设置为 TRUE。 如果此参数设置为 FALSE,则例程将从上一次调用 ZwQueryEaFile恢复扫描。

返回值

ZwQueryEaFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值,如下所示:

返回值 描述
STATUS_EAS_NOT_SUPPORTED 文件系统不支持 EA。 这是一个错误代码。
STATUS_INSUFFICIENT_RESOURCES 没有足够的内存可用于完成操作。 这是一个错误代码。
STATUS_EA_LIST_INCONSISTENT EaList 参数的格式不正确。 这是一个错误代码。

言论

ZwQueryEaFile 返回的信息量取决于 EA 的大小以及 缓冲区 指向的缓冲区的大小。 也就是说,所有请求的 EA 都写入缓冲区,或者缓冲区填满了任意数量的完整 EA(如果它不够大以包含所有 EA)。 仅将完整的 EA 写入缓冲区;不会返回部分 EA。

要求

要求 价值
最低支持的客户端 Windows 2000
目标平台 普遍
标头 ntifs.h (包括 FltKernel.h、Ntifs.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)PowerIrpDDis(wdm)

另请参阅

FILE_FULL_EA_INFORMATION

FILE_GET_EA_INFORMATION

ZwSetEaFile