Creating a File System “Driver”

后端 未结 4 782
刺人心
刺人心 2020-12-18 11:14

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

相关标签:
4条回答
  • 2020-12-18 11:39

    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.
    0 讨论(0)
  • 2020-12-18 11:53

    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.

    0 讨论(0)
  • 2020-12-18 11:53

    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.

    0 讨论(0)
  • 2020-12-18 11:57

    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.

    0 讨论(0)
提交回复
热议问题