【发布时间】:2012-12-05 14:20:39
【问题描述】:
有一些特殊的 USB 驱动器,其 Oxford Semi 控制器自称不可移动,我需要将它们设为可移动 [当然是这样]。牛津不会合作。使用 Hitachi 的 cfadisk.c,调整 QueryPropertyCompletion 函数以确认供应商 ID 是我要查找的 ID,然后在返回之前设置可移动属性。使用 DDK 的 addfilter 为我的一个特殊 USB 设备插入一个较低的过滤器。 addfilter listdevices 显示正确安装了下部过滤器。重新启动。现在特殊的 USB 设备不再出现; Windows 资源管理器看不到它。 addfilter 当然不能用于删除较低的过滤器,因为设备必须首先在那里。在注册表中查找对我的过滤器驱动程序的所有引用,但 regedt32 拒绝删除指定我的驱动程序的“LowerFilter”引用。我什至重命名了找到我的驱动程序的文件夹,重新启动,但 regedt32 仍然拒绝删除引用。如何说服 Windows 放弃较低的过滤驱动程序?而且我想我必须设置一个内核调试器来找出过滤器驱动程序在做什么。谢谢。
【问题讨论】:
-
已经编写了一个程序来搜索注册表值,然后选择性地删除它们,就像 REGEDT32.EXE 一样,除了我的程序在删除失败时提供完整的错误代码和字符串。在找到带有我的驱动程序名称的 LowerFilter 后,失败代码为 5,访问被拒绝。这是使用管理员特权帐户和“以管理员身份运行”的 DOS 窗口。也有一个具有域管理员权限的人尝试相同,并看到同样的失败。
-
右键单击该键。权限设置是什么?
-
LowerFilters 当然是一个没有权限的值。 LowerFilters 上面的键对于所有人只允许读取,对于所有者只允许特殊,对于系统允许完全控制和读取。这是Win7,我使用管理员组成员的帐户登录。在同一系统上也有系统管理员登录,具有管理员域权限,结果相同。