创建文件系统“驱动程序”
我想为 Windows 物理磁盘上的自定义文件系统创建一个“驱动程序”。我不完全知道解释它的最佳方式,但该设备已经具有适当的驱动程序以及 Windows 与之通信的所有内容,但我希望用户能够将设备插入到他们的电脑,将其显示在“我的电脑”中,并为他们浏览设备提供全面支持。
我意识到,对于一个不知道做这样的事情的基础知识甚至提出问题的人来说,这可能有点可怕,但我已经有了课程和为在我自己的应用程序中阅读它而构建的所有内容......我只是希望一切都可以更加集中,并且最终用户不需要做更多的工作。有人有创建这样的项目的良好指南吗?
I'm looking to create a "driver" I guess for a custom file system on physical disk for Windows. I don't exactly know the best way to explain it, but the device already has proper drivers and everything like that for Windows to communicate with it, but what I want to happen is for the user to be able to plug the device in to their PC, have it show up in My Computer, and give them full support for browsing the device.
I realize it's probably a little scary thinking about someone who doesn't know the basics of doing something like this even asking the question, but I already have classes and everything constructed for reading it within my own app... I just want everything to be more centralized and without more work from the end user. Does anyone have a good guide for creating a project like this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我从您的描述中了解到的最接近的是可安装文件系统,例如 Ext2 可安装文件系统< /a> 允许 Windows 计算机使用
Linux 起源于 ext2(以及某种程度上的 ext3)文件系统。
也许这可以作为您调查的起点。
作为替代方法,有 Shell 扩展 这比 IFS 简单得多。现已失效的 GMail shell 扩展 使用了这种方法,尽管它由于以下原因而变得无法使用GMail的变化,依然可以作为灵感。
The closest thing I know of to what I understand from your description is an installable file system, like the Ext2 installable file system that allows Windows computers to work with
Linux originating ext2 (and to a certain degree ext3) filesystems.
Maybe that can serve as a starting point for your investigations.
As an alternative approach there's the Shell extension which is a lot less complicated than the IFS. The now-defunct GMail shell extension used that approach, and even though it's become nonfunctional due to changes in GMail, it can still serve as inspiration.
您的选择是:
Your options are:
我认为您需要查看Windows Driver Kit文档(以及相关主题)来准确弄清楚您想要创建的内容。
I think you need to look through the Windows Driver Kit documentation (and related subjects) to figure out exactly what you're looking to create.
如果您打算依赖已经存在的驱动程序,即您不需要在内核空间中实际执行代码来与其通信,我建议您查看 FUSE for windows Dokan
如果你确实需要运行在内核空间,并直接与硬件通信,你可能需要下载 windows DDK(驱动开发成套工具)。请记住,用于与块设备和文件系统通信的驱动程序是分开的,听起来就像您在谈论文件系统本身。我相信您在内核空间中运行的任何内容都无法访问 C++ 运行时,这意味着您只能将 C++ 的子集用于内核驱动程序。
If you're intending to rely on the drivers that already exist, i.e. you don't need to actually execute your code in kernel land to communicate with it, I would recommend you take a look at FUSE for windows Dokan
If you indeed need to run in kernel space, and communicate directly with the hardware, you probably want to download windows DDK (driver development kit). Keep in mind that drivers for communicating with a block device and filesystems are separated, and it sound like you're talking about the filesystem itself. I believe that anything you run in kernel space will not have access to the c++ runtime, which means you can only use a subset of c++ for kernel drivers.