我正在开发一个类似于Mod Organizer程序的应用程序。从本质上讲,该程序的作用是让人们下载并安装游戏《天际线》的MOD。然而,Mod Organizer做了一些有趣的事情;MO不是直接将mod安装到游戏的数据目录中(就像其他mod管理器一样),而是将每个mod安装在其他任意位置的自己的目录中,然后在游戏启动后将所有mod一起加载。这一点很重要,因为它使mod管理变得不那么麻烦。
我的问题是:我如何创建这个动态文件系统,或者让Windows"假装"一个装满mod文件的目录在其他地方。
起初,我想用我的代码创建符号链接,但本指南让我走上了"挂钩"的道路,并特别建议尝试EasyHook。虽然我认为可以理解挂钩的基本概念(本质上是拦截来自操作系统的信号并将其重定向到任何目的),但我真的不知道如何使挂钩真正重定向文件。
如果有人知道这种挂钩的好资源,或者有更好的方法来解决我的问题,我会感谢你的帮助。
您在中对文件系统过滤器驱动程序所做的描述。这个驱动程序拦截对文件系统的请求并插入附加信息,例如告诉系统磁盘上不存在的文件和目录。如果文件预设在磁盘上的某个位置,则可以简单地将请求重定向到现有文件或目录。
文件系统过滤器驱动程序是一个内核模式的驱动程序,不容易实现。您可以使用预先创建的驱动程序,让您在用户模式API中执行任务,例如我们的CBFS过滤器。