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) |