重定向 Windows 中的所有文件 IO
我正在使用虚拟文件系统 (PhysFS),并且希望整个应用程序通过此 VFS(包括第三方库)执行文件 IO。
如何在 Windows 中通过此 VFS 重定向所有文件 IO 操作(C FILE*
对象和 C++ 流)?
另外,一个相关的问题。文件 IO 重定向是操作系统 API 的常见功能吗?我可以轻松移植我的应用程序吗?
I'm using a virtual file system (PhysFS) and I'd like the entire application to do file IO through this VFS (that includes third-party libraries).
How can I redirect all file IO operations (C FILE*
objects and C++ streams) through this VFS in Windows?
Also, a related question. Is file IO redirection a common feature of OS APIs? Will it be easy for me to port my application?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
API 挂钩可能是解决该问题的唯一方法。可以使用第三方帮助程序库来完成挂钩,例如 Detours 和其他一些。这种方法既重要又不可移植。理论上你可以使用文件系统过滤驱动程序,但这种方式要复杂得多,并且需要内核模式驱动程序(这是一个需要开发的 PITA)。
API hooking is probably the only way to address the problem. Hooking can be done using third-party helper libraries such as Detours and some other. This method is both non-trivial and not portable. In theory you could use a filesystem filter driver, but this way is much more complicated and requires a kernel-mode driver (which is a PITA to develop).