日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

复合文档格式(五) - 短流、短流容器流和短扇区分配表

發布時間:2024/3/12 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 复合文档格式(五) - 短流、短流容器流和短扇区分配表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.概述

  • 上一篇學習了主扇區分配表和扇區分配表:http://blog.csdn.net/lipinganq/article/details/76785471
  • 在復合文檔頭中的第56 - 59的4個字節指定了標準流(standard streams?)的最小大小(一般為4096 bytes),如果一個流的長度小于此值的流即為短流(Short-Stream
  • 短流不直接使用扇區Sector存儲數據,而是全部嵌入到一個特定的內部控制流(internal control stream )中,稱其為短流容器流 -?short-stream container stream
  • 二.短流容器流 -?Short-Stream Container Stream

    1. 短流容器流(short-stream container stream )像任何其他(長)用戶流一樣存儲:
    • 第一個使用的扇區必須從目錄directory 中的根存儲條目(root storage )獲取,其SecID鏈包含在 扇區分配表(SAT)中
    • 短流容器流(short-stream container stream?)所使用的所有扇區的數據是根據其SecID鏈的順序而來的
    • 在下一步中,該流實際上被分為短扇區(short-sectors,類似于主復合文檔文件中的扇區,但是沒有復合文檔頭結構。 因此,第一個短扇區short-sector
      (SecID為 0)總是位于短流容器流內的偏移量0處。?
    • 在復合文檔頭部的第30 -31的2個字節指定了ssz的大小,最小為7,則扇區sector的大小為2的ssz次方
    • 在復合文檔頭部的第32 - 33的2個字節指定了sssz的大小,短扇區的真實大小為2的sssz次方,最大值為扇區的大小,詳情看:http://blog.csdn.net/lipinganq/article/details/76737002
    2. 復合文檔頭中包含短扇區的大小。 利用該信息,可以根據SecID計算短扇區在短流容器流中的偏移量:
    • short_sec_pos表示SecID對應的短扇區在短流容器流中的位置
    • short_sec_size表示短扇區的大小
    • sssz就是復合文檔頭中第32 - 33的2個字節指定了sssz的大小,則短扇區真實大小為2^sssz
    short_sec_pos(SecID) = SecID ? short_sec_size = SecID ? 2^sssz3. 例子
    • 如果sssz=6,SecID=5
    • short_sec_pos(SecID) = SecID ? 2 ^sssz = 5 ? 2^6 = 5 ? 64 = 320

    三.短扇區分配表 -?Short-Sector Allocation Table

    1. 短扇區分配表short-sector allocation table? SSAT)跟SAT類似,也是一個存儲SecID的數組,包含所有短流的SecID鏈,類似扇區分配表SAT包含標準流的SecID鏈 2. SSAT所使用的扇區中的第一個扇區的SecID在復合文檔的頭中指定了,由第60 - 63的4個字節指定,其余SecID鏈包含在扇區分配表SAT中 3. SSAT是通過read和串聯所有占據的扇區的內容構建的 4. 一個SSAT占據的扇區的內容:
    • sec_size表示一個扇區的大小,單位為字節
    • 則SSAT占據的扇區可以存儲sec_size/4個SecID

    5. SSAT的使用與SAT類似,區別在于SSAT中的SecID鏈指短流容器流中的短扇區

    四.總結

    1. 短扇區分配表存儲了短扇區的SecID,短扇區分配表扇區就是被SSAT所占據的扇區,即SSAT所使用的的扇區 2. SSAT使用的扇區的第一個扇區的SecID從復合文檔頭中獲取 3. SSAT由SAT管理,獲得SSAT使用的扇區的第一個扇區的SecID后,通過扇區之間形成的鏈,可以獲得SSAT所使用的所有扇區,形成完整的SSAT

    五.下一篇

    下一篇 - 復合文檔格式(六) - 目錄Directory :http://blog.csdn.net/lipinganq/article/details/76828145

    總結

    以上是生活随笔為你收集整理的复合文档格式(五) - 短流、短流容器流和短扇区分配表的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。