ZwQueryEaFile 函数 (ntifs.h)

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

语法

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结构化输出缓冲区的指针,用于在其中返回文件的 CA。

[in] Length

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

[in] ReturnSingleEntry

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

[in, optional] EaList

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

[in] EaListLength

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

[in, optional] EaIndex

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

[in] RestartScan

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

返回值

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

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

注解

ZwQueryEaFile 返回的信息量基于 EA 的大小和 Buffer 指向的缓冲区的大小。 也就是说,要么将所有请求的 EA 写入缓冲区,要么如果缓冲区的大小不足以包含所有 EA,则用同样多的完整 EA 填充缓冲区。 仅将完整的 EA 写入缓冲区;不会返回部分 EA。

要求

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

另请参阅

FILE_FULL_EA_INFORMATION

FILE_GET_EA_INFORMATION

ZwSetEaFile