问题描述
LCN 的本质是什么?
逻辑簇号 (LCN) 描述了簇距 体积内的某个任意点。 LCN 应仅被视为 序数或相对数。没有保证的映射 逻辑集群到物理硬盘驱动器扇区。
然而,我不清楚 arbitrary point
的含义。如何获得这个arbitrary point
? LCN
是一个“相对数字”,但问题是卷的哪一部分实际上与这个数字相关?换句话说,如何发现 LCN #0 的物理偏移量(从卷的开始以字节为单位的偏移量)是多少?
我最初的猜测是 LCN 是从卷开始的集群中的偏移量,即 LCN #0 是卷中的第一个物理集群。但是,根据文档(以及我的一些实验),它看起来不正确。那么真相在哪里?
看看让我问这个问题的例子。:
假设我有一个 32 GB 的卷,格式为 fat32
,簇大小为 16384 字节,这里有一个 100Mb 的文件。使用 FSCTL_GET_RETRIEVAL_POINTERS
我可以获得此文件的 Extent
(RETRIEVAL_POINTERS_BUFFER
) 信息。就我而言,Lcn=1,NextVcn=6400。
根据这个输出,我假设我的文件位于卷的区域,从卷的开头偏移 Lcn * cluster_size
字节,大小为 NextVcn * cluster_size
字节。这是一个正确的假设吗?我不确定,因为根据the layout of FAT32,它在Reserver sectors
之前包含FAT Region
、Root Directory Region
和Data Region
,并且不能有文件数据在物理集群 #1 中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)