我为一个非常特殊的安全应用程序创建了一个“特殊文件系统”。
我使用空目录创建了一个重解析点。在这个重解析点后面是一个过滤器驱动程序,它处理 NTFS 和一个用户模式程序之间的通信,该程序正在执行一些加密/解密和控制工作(FUSE、TrueCrypt、RamDisc 之间的混合......)。整个东西是 C/C++ 原生的,在 Win7 x64 下工作正常。
现在我有一个很好的任务让它适用于windwos xp x64专业版。当整个应用程序以管理员权限运行时,它工作正常,但是当我切换到用户帐户时,我无法访问挂载的目录。
挂载程序和“特殊文件系统”(我们将其命名为 sfs)是系统服务,其他应用程序必须在用户帐户(COM 相关)下运行,挂载操作成功(当我在挂载操作后切换到管理员帐户时,我可以访问目录),应用程序的其他部分也可以正常工作,但我唯一无法管理的是访问这个目录。
我给了“每个人”和用户组以及特定用户对驱动程序、库(驱动程序和 sfs 之间的链接)、安装程序和特殊文件系统的所有权限,并且在注册表中也做了很多。我还将此权限授予已安装的目录(所有权限,所有者,...),但没有任何效果。
调试输出显示,对目录或内部文件的请求永远不会到达“sfs”。看起来,IO-Manager 从来没有向这个地址发送过一些东西。另一个问题是,我无法从操作系统获取所有调试输出(以本地调试模式启动并使用 SysInternals 的 DebugView.exe),但那是另一回事。
我错过了什么?XP和Win7的安全系统有什么区别?XP中是否有我不知道的基本限制?
请询问您是否需要代码片段。
欢迎任何建议或想法!