为新手开始Windows文件系统驱动程序开发的好资源是什么?
Windows NT文件系统内部由Rajeev Nagar。
OSR Online的文件系统资源页面(一般OSR Online):
NTFSD邮件列表/论坛(也由OSR主办):
从Vista开始,以前称为DDK的Windows驱动程序工具包(WDK)现在包括可安装文件系统(IFS)工具包:
只是一个头脑 – Windows文件系统开发是非常复杂的,因为文件系统与Windows内存管理器紧密集成。 这是人们奉献的职业。 只要你有一个想法,你可能会进入。
你可以尝试Windows Hardware Developer Central ,它有驱动程序作者的博客,新闻组,书籍和其他有用资源的链接。
我也建议下载和安装Windows DDK,并探索一些包含的示例。 应该有各种各样的骨架驱动程序,可以用作自定义工作的起点。
对于Windows驱动程序也可以看到这个博客: http : //blogs.msdn.com/doronh/
对于基于Linux的开发,有两本好书: Linux设备驱动程序和Linux内核开发 。 Linux设备驱动程序手册可能有点令人生畏,所以对coreel进行很好的介绍是一个有用的起点。
ext2文件系统的Windows实现的源代码可能是有用的。
但是,正如Mike B正确地提到这是非常复杂的领域,我强烈建议学习一些基本的驱动程序开发概念,并在开始文件系统驱动程序开发之前编写少量的文件系统驱动程序。
如果你这样做是为了商业用途,而不是为了学习的目的,我会建议外包这项工作。这将是最具成本效益的方式去。
本书: http : //www.amazon.com/Windows-2000-Device-Driver-Book/dp/0130204315/ref=sr_1_1?ie= UTF8& s= books& qid= 1246856381& sr=8-1
或者您可以通过Art Baker找到的任何新书。 我大约十年前就读过他的NT设备驱动程序,最后把事情弄清楚了。
顺便说一下,从十年前或更多/更少的书仍然有效。 你不能使用这些例子,但是模型基本上没有改变 – 在典型的M $时尚中变得更加复杂。 IRP的东西都是有效的。
OSR的东西是好的 – 但昂贵的…我想全面了解整个设计贝克不能被打败。 此外,任何人只是想学习Windows驱动程序 – 我会避免NTFS的东西…它的超级复杂,并没有什么关系,你需要完成一个简单的USB驱动程序,甚至是一个DMA设备。
要添加一些用户模式的文件系统驱动程序开发选项:
这些解决方案像FUSE(用于Linux的用户模式软件中的文件系统)一样工作。 他们在内核中完成所有复杂的工作,并将适应的请求传递给用户模式应用程序。
Dokan缺乏当前版本的某些功能,但是我觉得比起从头开始创建文件系统驱动程序更容易做出贡献并添加所需的功能。
Dokan也是内核模式驱动代码的一个很好的例子。