我是新来的,正在尝试为 tar '文件系统'(mount tar)开发一个概念 fs 驱动程序。我的问题是,操作系统如何检测到分区具有 TAR 文件系统并自动加载我的驱动程序?
1 回答
首先加载的 FS 称为IoRegisterFileSystem - 此例程将设备对象插入系统中的文件系统列表中。那么你必须有一个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(通过 ZwLoadDriver 调用)的自我 FS 驱动程序或自我识别器(迷你驱动STATUS_FS_DRIVER_REQUIRED
程序IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_MOUNT_VOLUME
)IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_LOAD_FILE_SYSTEM