FltSetInformationFile 函数 (fltkernel.h)

FltSetInformationFile 设置给定文件的信息。

语法

NTSTATUS FLTAPI FltSetInformationFile(
  [in] PFLT_INSTANCE          Instance,
  [in] PFILE_OBJECT           FileObject,
  [in] PVOID                  FileInformation,
  [in] ULONG                  Length,
  [in] FILE_INFORMATION_CLASS FileInformationClass
);

参数

[in] Instance

调用方不透明的实例指针。 此参数是必需的,不能为 NULL

[in] FileObject

文件的文件对象指针。 此参数是必需的,不能为 NULL

[in] FileInformation

指向调用方分配的缓冲区的指针,该缓冲区包含要为文件设置的信息。 FileInformationClass 参数指定信息的类型。 此参数是必需的,不能为 NULL

[in] Length

FileInformation 缓冲区的大小(以字节为单位)。

[in] FileInformationClass

指定要为文件设置的信息类型。 定义了以下值。

含义
FileAllocationInformation 为文件设置 FILE_ALLOCATION_INFORMATION
FileBasicInformation 设置 文件的FILE_BASIC_INFORMATION
FileDispositionInformation 为文件设置 FILE_DISPOSITION_INFORMATION
FileEndOfFileInformation 设置 文件的FILE_END_OF_FILE_INFORMATION
FileLinkInformation 为文件设置 FILE_LINK_INFORMATION
FilePositionInformation 为文件设置 FILE_POSITION_INFORMATION
FileRenameInformation 为文件设置 FILE_RENAME_INFORMATION 。 有关文件重命名的详细信息,请参阅以下“备注”部分。
FileValidDataLengthInformation 设置 文件的FILE_VALID_DATA_LENGTH_INFORMATION

返回值

FltSetInformationFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值。

注解

微筛选器驱动程序调用 FltSetInformationFile 来设置给定文件的信息。 文件当前必须处于打开状态。

文件重命名操作对传递给 FltSetInformationFile 的参数值施加以下限制:如 FILE_RENAME_INFORMATION的引用条目中所述,只能在卷中重命名文件或目录。 换句话说,重命名操作不能导致将文件或目录移动到其他卷。 与 ZwSetInformationFile 不同, FltSetInformationFile 不验证FILE_RENAME_INFORMATION结构的内容。 因此, FltSetInformationFile 的调用方负责确保文件或目录的新名称与旧名称位于同一卷上。

微筛选器驱动程序必须使用 FltSetInformationFile 而不是 ZwSetInformationFile 来重命名文件。

要求

要求
目标平台 通用
标头 fltkernel.h (包括 Fltkernel.h)
Library FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

另请参阅

FILE_ALLOCATION_INFORMATION

FILE_BASIC_INFORMATION

FILE_DISPOSITION_INFORMATION

FILE_END_OF_FILE_INFORMATION

FILE_LINK_INFORMATION

FILE_POSITION_INFORMATION

FILE_RENAME_INFORMATION

FILE_VALID_DATA_LENGTH_INFORMATION

FltQueryInformationFile

FltQueryVolumeInformationFile

ZwSetInformationFile