MULTI_SECTOR_HEADER 結構
[此結構僅適用于 NTFS 磁片區第 3 版;未來版本可能會改變。]
表示多秒標頭。
語法
typedef struct _MULTI_SECTOR_HEADER {
UCHAR Signature[4];
USHORT UpdateSequenceArrayOffset;
USHORT UpdateSequenceArraySize;
} MULTI_SECTOR_HEADER, *PMULTI_SECTOR_HEADER;
成員
-
簽章
-
簽章。 這個值是使用者的便利性。
-
UpdateSequenceArrayOffset
-
更新序列陣列的位移,從這個 結構的開頭開始。 更新順序陣列必須在第一個磁區的最後一個 USHORT 值之前結束。
-
UpdateSequenceArraySize
-
更新序列陣列的大小,以位元組為單位。
備註
請注意,此結構沒有相關聯的標頭檔。
此結構定義僅適用于主要版本 3 和次要版本 0 或 1,如 FSCTL_GET_NTFS_VOLUME_DATA所報告。
multisector 標頭和更新順序陣列可為實體磁區大小大於或等於序號的裝置,提供未完成的多秒傳輸偵測, (512) 或未依序傳輸磁區。 如果裝置的磁區大小小於序號步調,而且有時會依序傳輸磁區,則更新順序陣列不會提供未完成傳輸的絕對偵測。 序號步進設定為夠小的數位,以提供所有已知硬碟的絕對保護。 它不會設定較小,或可能會有過多的執行時間或空間額外負荷。
更新序列陣列是由 nUSHORT 值的陣列所組成,其中 n 是受保護的結構大小除以序號步進。 第一個字包含更新序號,這是包含結構已寫入磁片之次數的迴圈計數器。 接下來是上次將包含結構寫入磁片時,由更新序號覆寫的 n 儲存 USHORT 值。
每當受保護的結構即將寫入磁片時,每個序號步幅中的最後一個字都會儲存到序號陣列中的個別位置,然後使用下一個更新序號覆寫。 在寫入之後,或每當讀取結構時,從序號陣列儲存的字會還原到結構中的實際位置。 在讀取時還原儲存的字組之前,每個步幅結尾的所有序號都會與陣列開頭的實際序號進行比較。 如果上述任一比較不相等,則偵測到失敗的多秒傳輸。
陣列的大小取決於包含結構的大小。 更新順序陣列應該包含在結構標頭的結尾,因為其大小可變。 使用者必須確定已針對包含結構保留正確的空間: (結構大小 / 512 + 1) * sizeof (USHORT) 。
另請參閱