我有一个minifilter(内核模式)。我想从内核模式中删除具有特定路径(\ Device \ HarddiskVolume1 \ file.txt或C:\ file.txt)的文件
有没有办法做到这一点?
更新:20150130
我尝试使用ZwDeleteFile routine作为Harry Johnston说。这些是我的代码:
RtlInitUnicodeString(&gRedirectFullFilePath, "\\Device\\HarddiskVolume1\\test.txt"); // This file existed
InitializeObjectAttributes(&ObjectAttribute, &gRedirectFullFilePath, OBJ_CASE_INSENSITIVE, NULL, NULL);
status = ZwDeleteFile(&ObjectAttribute);
但它崩溃了我的系统。我的代码有什么问题吗? =>修复(这是答案)
谢谢!
答案 0 :(得分:3)
ZwDeleteFile例程删除指定的文件。
答案 1 :(得分:1)
通过常规方法,无法从内核模式中删除文件,即从设备驱动程序中删除文件。
非常不鼓励这种做法或想法。
答案 2 :(得分:1)
将FltSetInformationFile()
功能与FileDispositionInformation
类一起使用。
答案 3 :(得分:0)
有很多方法可以帮助您完成此操作,如Microsoft的minifilter DeleteSample中所示。
研究样本后,一切都应该更加清晰。 另请注意,您可以执行transactioned删除操作,也可以按文件ID删除文件。
祝你好运。