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 |