首页
社区
课程
招聘
[求助]NTFS内部XCB的联系
发表于: 2010-5-9 13:24 5146

[求助]NTFS内部XCB的联系

2010-5-9 13:24
5146
本人菜鸟,最近看ntfs文件系统,看的一头雾水,特别是XCB之间的联系和关系,根据鄙人理解Fcb代表一个文件(\目录),Scb代表文件(\目录)内的某个属性流,CCB代表某个属性流操作的上下文,MCB带表属性流的逻辑簇的映射(以及和虚拟簇的映射关系),然后就是LCB看的不太懂,就知道是联接Fcb和Scb的

一个东西,具体怎样联接,起到一个什么样的作用,还不是很明白...
An Lcb is used to connect an indexed Scb (i.e., a directory) to an Fcb and give it a name.            
Each Scb will only have one parent Fcb but multiple Fcb children (each connected via an Lcb).
An Fcb can have multiple Scb parents (via  Lcbs) and multiple Scb Children.  ( can have multiple Scb parents??这里不解,还请高手指点)

In the following diagram we have two index scb (Scb1 and Scb2).  The  are two file opened under Scb1 both for the same File.  The file was opened once with the name LcbA and another time with the name LcbB. Scb2 also has two opened file one is Fcb1 and named LcbC and the other is Fcb2 and named LcbD. Fcb1 has two opened Scbs under it (Scb3 and  Scb4), and Fcb2 has one opened Scb underneath it (Scb5).
图1:
(如看不到图请复制下面链接到浏览器upload/attach/201005/193956_2e86d436f840c14b.jpg)
这幅图的下半部分我能理解,我的理解是Scb3、Scb4是Fcb1内的2个不同的属性流,Fcb通过LIST_ENTRY将其所有流链接起来.(Scb内部应该还有个Fcb的反向指针没有画).而Scb5是Fcb2的一次打开.
上半部分就看不懂了,我的理解是Scb1是Fcb1的父目录Fcb内的索引根属性流,或者索引分配属性流,可是就算是这样的话,那也应该只是只有一个Lcb链接到Fcb1啊,为什么会出现2个Lcb呢?右半部分单独的话可以理解,Scb2是Fcb1和Fcb2的父目录对应的分配属性流,通过Lcb将其子目录(/文件)联系起来.但是整个上半部分一起看的话又产生疑惑了,怎么一个文件(/目录)Fcb1会有2个不同的父目录?
我原来理解是硬链接(交接?外壳链接?),查了相关资料确实有DLT(分布式链接跟踪),可是资料也只是寥寥数语带过,没深入,结果还是云里雾里,用硬链接解释Scb1到Fcb1也解释不通,怎么会有2个Lcb呢,应该只有一个就够了啊.

另外还有以下疑问:
0.An Fcb can have multiple Scb parents (via  Lcbs) and multiple Scb Children.  ( can have multiple Scb parents??不懂,还请指点)
1.SCB里面怎么没有一个指向LCB的指针(或队列)?倒是FCB里面有一个LcbQueue.
2.VCB 里面已经有了一个SCB *RootIndexScb 为什么还要有一个LCB *RootLcb ,这个LCB在这里起到一个什么作用呢?
3.CCB和LCB的关系:CCB里面有2个结构LcbLinks(LIST_ENTRY)和Lcb(PLCB)
4.结构定义里面还有一个_OVERLAY_LCB结构(如下),这个结构和LCB有什么关系和区别?
struct _OVERLAY_LCB {
    FILE_REFERENCE         OverlayParentDirectory;
    LIST_ENTRY                  CcbQueue;
    NAME_LINK                  ExactCaseLink;
    PFILE_NAME                 FileNameAttr;
    QUICK_INDEX              QuickIndex;
    UCHAR                           OverlayFileNameLength;
    UCHAR                           OverlayFlags;
    WCHAR                          OverlayFileName[1];
}

晚辈不才,还请各位前辈、大牛指点点解,小生在这里先说声谢了.

今天这个问题解决不了,我他妈的就不吃饭了.

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 507
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
图片再发下

2010-5-9 13:42
0
雪    币: 75
活跃值: (723)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
嘿嘿,图看不见。。上传到论坛吧
2010-5-9 13:42
0
雪    币: 507
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
真恶心。。怎么上传哦?
2010-5-9 17:06
0
雪    币: 507
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
+-------- +                +-------- +
           |Scb        |                |Scb       |
           |    1        |                |      2    |
           |              |                |            |
          +-------- +                +-------- +

            |        |                          |       |
         Lcb    Lcb                  Lcb    Lcb
            A     B                     C        D
             |        |                         |        |     
             |        |       +-------+    |         |           +--------  +
             |       +---> |Fcb     | <+       +--->      |Fcb        |
             |                |    1      |                        |        2    |
             +--------> |            |                          |              |
                            +--------+                          +--------  +
                                ^    ^                             ^           ^
                                +    +                             +            +
                            Scb3 Scb 4                       Scb5    Scb5

晕哦真难画...

原图:

           +--------+                +--------+
           |Scb      |                |Scb     |
           |    1      |                |    2   |
           |           |                |        |
           +--------+                +--------+

             |    |                    |    |

            Lcb  Lcb                  Lcb  Lcb
             A    B                    C    D

             |    |     +--------+     |    |     +--------+
             |    +---> |Fcb     | <---+    +---> |Fcb     |
             |          |    1   |                |    2   |
             +--------> |        |                |        |
                        +--------+                +--------+
                          ^    ^                    ^    ^
             +------------+    +------------+  +----+    +----+
             |                              |  |              |
             |  +--------+      +--------+  |  |  +--------+  |
             +> |Scb     | <--> |Scb     | <+  +> |Scb     | <+
                |    3   |      |    4   |        |    5   |
                |        |      |        |        |        |
                +--------+      +--------+        +--------+
2010-5-9 17:25
0
游客
登录 | 注册 方可回帖
返回
//