Minifilter如何改变文件大小?

Minifilter how to change file size?

我正在开发一个微过滤器来检测拖放文件到硬盘。当用户将文件拖放到驱动器时​​:

  1. 将文件名更改为指定的文件名。例如:redirect_file_name.txt
  2. 然后我删除这个文件。

但是文件的大小redirect_file_name.txt没有改变。

  1. 如果源文件的大小是 1GB,redirect_file_name.txt 是 1GB
  2. 如果源文件的大小是 100MB,redirect_file_name.txt 是 100MB

我通过

将源名称更改为 redirect_file_name.txt

如何更改文件的大小 redirect_file_name.txt?

更新:将 FltSetInformationFile 与 FileAllocationInformation 一起使用

FILE_ALLOCATION_INFORMATION fileInformation;
fileInformation.AllocationSize.QuadPart = 1024;
status = FltSetInformationFile( FltObjects->Instance,
                          FltObjects->FileObject,
                          &fileInformation,
                          sizeof(FILE_ALLOCATION_INFORMATION),
                          FileAllocationInformation);

但状态为 0XC000000D (STATUS_INVALID_PARAMETER)

Use these code at IRP_MJ_SET_INFORMATION(如备注所述)

FILE_ALLOCATION_INFORMATION fileInformation;
fileInformation.AllocationSize.QuadPart = 1024; // Size of file
status = FltSetInformationFile( FltObjects->Instance,
                          FltObjects->FileObject,
                          &fileInformation,
                          sizeof(FILE_ALLOCATION_INFORMATION),
                          FileAllocationInformation);