我是新来的,我正在尝试为tar'文件系统'(mount tar)开发一个概念fs驱动程序。我的问题是,操作系统如何检测分区是否具有TAR文件系统并自动加载我的驱动程序?
答案 0 :(得分:0)
首先加载称为IoRegisterFileSystem的FS - 此例程将设备对象插入到系统中的文件系统列表中。那你必须有一个WRK。当调用在VPB IopCheckVpbMounted
的设备上打开文件时,他会调用IopMountVolume
- 这是安装理解的关键点。此例程首先遍历列表并注册FS并向所有人发送IRP_MN_MOUNT_VOLUME,直到某些FS不返回成功代码。也是列表中的最后一个条目 - 特殊文件系统识别器 - 他尝试确定卷的格式。如果是 - 他返回STATUS_FS_DRIVER_REQUIRED
- 表示需要为此卷加载新的FS。在这种情况下,系统调用IopLoadFileSystemDriver
。当迷你文件系统识别器驱动程序将卷识别为特定文件系统但尚未加载该文件系统的驱动程序时,将调用此例程。在当前时刻FS_Rec.sys支持下一个FS:
cdfs
ReFS
ReFSv1 // begin from win 10
ExFat
FastFat
Udfs
Ntfs
支持其他 - 您需要或自动加载自我FS驱动程序或自我识别器(迷你驱动程序)识别您的FS并在STATUS_FS_DRIVER_REQUIRED
上返回IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_MOUNT_VOLUME
并加载您的FS(通过ZwLoadDriver调用){ {1}}