为什么在 Windows 文件系统中需要 LCB链接控制块?

问题描述

您有一个包含 VCB 的 VDO,由 FS 创建,并通过 VPB 挂载到 volmgr 卷 PDO。每个 VCB 链接到根 DCB,并包含一个表,通过 FileID 对卷上的每个 FCB 进行索引。

每个 FCB 都有一个指向段对象指针的指针,并包含其子 FCB 的列表,并且每个 FCB 由 SCB 指向为文件打开的流。每个 FCB 包含一个 MCB,它似乎用于将文件偏移量转换为逻辑扇区。

每个 FileObject 都包含一个指向文件系统为文件对象定义的 CCB 的指针。文件对象指向与其关联的文件流的 SCB。它还指向部分对象指针,该指针指向文件的图像和数据部分(最终是 PPTE)并指向共享缓存映射(最终是 VACB)。

BCB 与缓存管理器 VACB 相关,BCB 用于“固定”,我认为这是锁定页面,但我不知道细节,任何信息都会很好。我认为 VACB 的缓存管理器 PTE 是可读写的,而不是进程具有的只读 / CoW 映射,我不确定当缓存管理器写入在进程中作为 CoW 打开的页面时会发生什么(我认为缓存管理器使用数据部分 PPTE(与图像部分相反),因此这对于 CoW 图像部分不会成为问题。

我不明白 LCB 在哪里适合或为什么需要它。我认为硬链接可能意味着每个 FCB 有多个 LCB,因此有理由将文件名与 FCB 分开;似乎还有一种情况,文件名有 LCB 但没有 FCB——我不知道这种情况有什么意义。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)