FCB CCB FileObject

來源:互聯網
上載者:User

CCB  ContextControlBlock  是存Private資訊的,這個FO的特殊資訊

FCB  FileControlBlock          是存全域資訊的

FO    FileObject                   代表一個檔案開啟執行個體

 

 

之間關係:

 

FO  與  CCB  是1:1的

即一個FO有一個CCB根著

FCB 與 CCB 是1:n的 (n >= 1)

即一個FCB可能有n個CCB和它關聯.

 

FO->FsContext2指向CCB

FO->FsContext指向CommFCB

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

FCB

    檔案卷中的對象即磁碟上的對象,只要是開啟著的,就在記憶體中有個“檔案控制區”即FCB作為其代表。FCB代表著檔案卷的目標對象(不一定是檔案),而檔案對象FILE_OBJECT結構則代表著這個目標對象的一次開啟,或者說代表著這個目標對象與某個進程的一個串連。一個目標對象最多隻有一個FCB,如果沒有開啟就沒有FCB,但是卻可以有多個檔案對象,因為可以被多次開啟。

    可想而知,檔案對象中一定有指標指向目標對象的FCB。DeviceObject指向目標對象所在的裝置即磁碟裝置。指標FsContext(驅動程式為檔案對象維護的狀態資訊)用來指向代表著目標對象的FCB。對於FAT檔案系統而言這是一個VFATFCB資料結構。另一個指標指向FsContext2,就磁碟檔案和目錄來說,則用來指向一個“內容控制區塊”即CCB。

    目標對象的每次開啟都有個檔案對象即FILE_OBJECT結構作為代表,同時又有個CCB。不過有時候CCB不是必要的。資料結構“檔案參數區塊”VPB把抽象意義上的“檔案卷”更物理意義上的磁碟聯絡在一起了。VPB中有兩個指標,一個是DeviceObject,他指向代表著檔案卷的裝置對象,就是相應FSD所建立的裝置對象。這決定了檔案卷中的資訊時如何組織的;另一個指標是RealDevice,它指向代表著具體(邏輯)磁碟的裝置對象,這決定了資訊是如何儲存的。FILE_OBJECT結構中的指標指向一個VPB,這一方面表明目標卷存在於哪個邏輯磁碟上,另一方面表明這個磁碟承載著什麼樣的檔案卷屬於哪一種檔案系統。

 

/*
 儘管FsContext所指的FCB、DCB或VCB對象可以由檔案系統驅動程式自行定義,
 但是,Windows的緩衝管理器需要依賴於這些對象中的一個公用頭部才可以工作,
 此公用頭部稱為//PFSRTL_COMMON_FCB_HEADER,如果檔案系統驅動程式要使用緩衝管理器提供的
 緩衝功能,那麼,他必須確保這些對象都以//PFSRTL_COMMON_FCB_HEADER作為頭部成員

 */
   PFSRTL_COMMON_FCB_HEADER pFcb;

 /*
  FsContext域表示此檔案對象所代表的實際對象的資料結構,如果檔案對象代表一個磁碟目錄,則它指向FCB
  FsContext2域指向CCB結構,代表檔案對象的已開啟執行個體。
  CCB:Context Control Block
  FCB針對每個檔案而唯一存在,而CCB針對每一次開啟檔案而存在
  例如,兩個應用程式共用訪問同一個檔案,他們的CCB不同,但它們的CCB中所指向的FCB是相同的,
  而且,CCB中記錄了相應的應用程式正在操作該檔案的位移位置。在這種情況下,每個CCB關聯不同的
  檔案對象(FILE_OBJECT)

   */
   pFcb = (PFSRTL_COMMON_FCB_HEADER)pFileObject->FsContext;

轉自:http://blog.csdn.net/redchairman/article/details/7018063

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.