【发布时间】:2015-01-29 10:58:50
【问题描述】:
我有一个微过滤器(内核模式)。我想从内核模式中删除具有特定路径(\Device\HarddiskVolume1\file.txt 或 C:\file.txt)的文件
有什么办法吗?
更新:20150130
我尝试像Harry Johnston 所说的那样使用ZwDeleteFile routine。这些是我的代码:
RtlInitUnicodeString(&gRedirectFullFilePath, "\\Device\\HarddiskVolume1\\test.txt"); // This file existed
InitializeObjectAttributes(&ObjectAttribute, &gRedirectFullFilePath, OBJ_CASE_INSENSITIVE, NULL, NULL);
status = ZwDeleteFile(&ObjectAttribute);
但它使我的系统崩溃。我的代码有什么问题吗? => 已修复(这是答案)
谢谢!
【问题讨论】:
-
字符串缺少反斜杠,但我不认为这会导致崩溃。为什么
pObjectAttribute是指针?通常它是一个局部变量。这是文件系统微过滤驱动程序吗?我不确定在这种情况下调用 ZwDeleteFile() 是否合法。还要检查有关 IRQL 和特殊内核 APC 的文档化要求。 -
没关系。谢谢你的帮助! @HarryJohnston
标签: c windows driver minifilter kernel-mode