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