[英]How to delete a file from kernel-mode?
我有一个微型过滤器(内核模式)。 我想从内核模式中删除具有特定路径(\\ Device \\ HarddiskVolume1 \\ file.txt或C:\\ file.txt)的文件
有什么办法吗?
更新:20150130
我尝试使用ZwDeleteFile例行作为哈利·约翰斯顿说。 这些是我的代码:
RtlInitUnicodeString(&gRedirectFullFilePath, "\\Device\\HarddiskVolume1\\test.txt"); // This file existed
InitializeObjectAttributes(&ObjectAttribute, &gRedirectFullFilePath, OBJ_CASE_INSENSITIVE, NULL, NULL);
status = ZwDeleteFile(&ObjectAttribute);
但它崩溃我的系统。 这有什么错我的代码? =>固定的(这是回答)
谢谢!
ZwDeleteFile例程删除指定的文件。
通过常规方法无法从内核模式(即从设备驱动程序)删除文件。
不鼓励这种做法或想法。
使用FltSetInformationFile()
与函数FileDispositionInformation
类。
如Microsoft的微型筛选器DeleteSample所示,有许多方法可以执行此操作。
研究样本后,一切都应该更加清晰。 还要注意,您可以进行事务删除,也可以通过文件ID删除文件。
祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.