FsRtlSetKernelEaFile 函数 (ntifs.h)

例程 FsRtlQueryKernelEaFile 用于设置、修改和/或删除 EA (扩展属性) 值,并同步等待该文件完成并返回结果。 它设置 IRP_MN_KERNEL 次要代码,该代码允许此 API 设置 SecureEA。 这允许调用方通过 FileObject 而不是句柄执行此操作。

语法

NTSTATUS FsRtlSetKernelEaFile(
  [in] PFILE_OBJECT FileObject,
  [in] PVOID        EaBuffer,
  [in] ULONG        Length
);

参数

[in] FileObject

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

[in] EaBuffer

指向调用方提供的 FILE_FULL_EA_INFORMATION结构化输入缓冲区的指针,该缓冲区包含要设置的扩展属性值

[in] Length

指定 EA 缓冲区的长度。

返回值

例程 FsRtlSetKernelEaFile 接收操作的状态并返回状态代码之一:

返回代码 说明
STATUS_EA_LIST_INCONSISTENT
EaList 参数的格式不正确。
STATUS_EAS_NOT_SUPPORTED
文件系统不支持扩展属性。
STATUS_INSUFFICIENT_RESOURCES
无法为此请求分配 I/O 请求数据包 (IRP) 。
STATUS_INTERMIXED_KERNEL_EA_OPERATION
请求不能在同一调用中混合正常 EA 和内核 EA。
STATUS_INVALID_DEVICE_REQUEST
请求失败,因为它是直接打开的设备。
STATUS_SUCCESS
请求已成功。

注解

此例程假定所有传入的缓冲区都来自内核模式。

可以在对 FsRtlSetKernelEaFile 的单个调用中设置、修改和/或删除一个或多个内核 EA。 也可以使用 FsRtlSetKernelEaFile 函数设置普通 EA 的 。 可以通过指定 EAValueLength 为零的 EAName 来删除 EA 的 。 可以在一次调用中混合插入新 EA、修改现有 EA 或删除 EA。

要求

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

另请参阅

FsRtlQueryKernelEaFile

ZwQueryEaFile

ZwSetEaFile