创建文件系统“驱动程序”

发布于 2024-12-04 18:34:06 字数 278 浏览 0 评论 0原文

我想为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

↙温凉少女 2024-12-11 18:34:06

我从您的描述中了解到的最接近的是可安装文件系统,例如 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.

泛泛之交 2024-12-11 18:34:06

您的选择是:

  1. 创建内核模式文件系统驱动程序。经验丰富的开发人员需要 9-12 个月的工作时间。
  2. 使用框架并在用户模式下完成所有操作。几周的工作让原型工作起来。这种方法的唯一缺点是它比内核模式驱动程序慢。您可以使用上面提到的Dokan,也可以使用我们的回调文件系统进行商业级开发。

Your options are:

  1. Create a kernel mode file system driver. 9-12 months of work for experienced developer.
  2. Use a framework and do everything in user mode. A couple of weeks of work to get the prototype working. The only drawback of this approach is that it's slower, than kernel-mode driver. You can play with Dokan mentioned above, or you can use our Callback File System for commercial-grade development.
信仰 2024-12-11 18:34:06

我认为您需要查看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.

别闹i 2024-12-11 18:34:06

如果您打算依赖已经存在的驱动程序,即您不需要在内核空间中实际执行代码来与其通信,我建议您查看 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文