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。

要求

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

另请参阅

FsRtlQueryKernelEaFile

ZwQueryEaFile

ZwSetEaFile