FsRtlQueryKernelEaFile 函数 (ntifs.h)

例程 FsRtlQueryKernelEaFile 用于生成显式 QueryEA 请求,并同步等待它完成并返回结果。 这允许调用方通过 FileObject 而不是句柄执行此操作。

语法

NTSTATUS FsRtlQueryKernelEaFile(
  [in]            PFILE_OBJECT FileObject,
  [out]           PVOID        ReturnedEaData,
  [in]            ULONG        Length,
  [in]            BOOLEAN      ReturnSingleEntry,
  [in]            PVOID        EaList,
  [in]            ULONG        EaListLength,
  [in, optional]  PULONG       EaIndex,
  [in]            BOOLEAN      RestartScan,
  [out, optional] PULONG       LengthReturned
);

参数

[in] FileObject

指向要向其发送 QueryEA 请求的 FileObject 的指针。

[out] ReturnedEaData

指向调用方提供的 FILE_FULL_EA_INFORMATION结构化输出缓冲区的指针,将在其中返回扩展属性值。

[in] Length

指定 ReturnedEaData 的长度(以字节为单位)

[in] ReturnSingleEntry

指定是否只返回单个条目,而不是使用尽可能多的 EA 填充缓冲区。

[in] EaList

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

[in] EaListLength

指定 EaList 的长度(如果提供了 EA 列表)。

[in, optional] EaIndex

提供要返回其值的 EA 的可选索引。 如果指定,则仅返回该 EA。

[in] RestartScan

指定是否应从头开始重启 EA 扫描。

[out, optional] LengthReturned

指定 ReturnedEaData 缓冲区中返回的有效数据量。

返回值

例程 FsRtlQueryKernelEaFile 返回状态代码之一:

返回代码 说明
STATUS_EAS_NOT_SUPPORTED
文件系统不支持扩展属性。
STATUS_INVALID_DEVICE_REQUEST
请求失败,因为它是直接打开的设备。
STATUS_INSUFFICIENT_RESOURCES
无法为此请求分配 I/O 请求数据包 (IRP) 。
STATUS_SUCCESS
请求已成功。

注解

此例程 FsRtlQueryKernelEaFile 假定所有传入的缓冲区都来自内核模式,因为它要求给定的输入和输出缓冲区(如果指定)为内核模式地址。 如果指定了用户模式地址,则操作将失败。

要求

要求
最低受支持的客户端 Windows 8
最低受支持的服务器 Windows Server 2012
目标平台 Windows
标头 ntifs.h

另请参阅

FsRtlSetKernelEaFile

ZwQueryEaFile

ZwSetEaFile