【发布时间】:2016-09-23 00:28:01
【问题描述】:
我是新来的,正在尝试为 tar '文件系统' (mount tar) 开发一个概念 fs 驱动程序。我的问题是,操作系统如何检测到分区具有 TAR 文件系统并自动加载我的驱动程序?
【问题讨论】:
标签: windows filesystems driver kmdf irp
我是新来的,正在尝试为 tar '文件系统' (mount tar) 开发一个概念 fs 驱动程序。我的问题是,操作系统如何检测到分区具有 TAR 文件系统并自动加载我的驱动程序?
【问题讨论】:
标签: windows filesystems driver kmdf irp
首先加载的 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 并在 IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_MOUNT_VOLUME 上返回 STATUS_FS_DRIVER_REQUIRED 并在 IRP_MJ_FILE_SYSTEM_CONTROL.IRP_MN_LOAD_FILE_SYSTEM 上加载您的 FS(通过 ZwLoadDriver 调用)的自我 FS 驱动程序或自我识别器(迷你驱动程序)
【讨论】: