Minifilter如何改变文件大小?
Minifilter how to change file size?
我正在开发一个微过滤器来检测拖放文件到硬盘。当用户将文件拖放到驱动器时:
- 将文件名更改为指定的文件名。例如:redirect_file_name.txt
- 然后我删除这个文件。
但是文件的大小redirect_file_name.txt没有改变。
- 如果源文件的大小是 1GB,redirect_file_name.txt 是 1GB
- 如果源文件的大小是 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);
我正在开发一个微过滤器来检测拖放文件到硬盘。当用户将文件拖放到驱动器时:
- 将文件名更改为指定的文件名。例如:redirect_file_name.txt
- 然后我删除这个文件。
但是文件的大小redirect_file_name.txt没有改变。
- 如果源文件的大小是 1GB,redirect_file_name.txt 是 1GB
- 如果源文件的大小是 100MB,redirect_file_name.txt 是 100MB
我通过
如何更改文件的大小 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);