2013-03-03 81 views
2

是否可以檢索ReFS爲完整性流創建的校驗和/散列?我發現了this文檔,其中描述了一個新的API控制代碼:FSCTL_GET_INTEGRITY_INFORMATION,但它似乎只獲取有關完整性流的一些細節,如校驗和類型和塊大小,而不是校驗和本身。檢索ReFS完整性流校驗和

我對這些信息感興趣,因爲我正在編寫一個程序,它需要比文件名和時間戳更強大地識別文件更改,而且我不想重新執行所有校驗和文件系統已經在做,尤其是因爲我正在處理數TB的數據。

+0

在這裏的文件: http://www.microsoft.com/en-us/download/details.aspx?id=29043 「REFS支持兩種類型的數據流,常規流和完整性的流 常規的。數據流:不提供任何完整性保護的數據流從功能角度來看,傳統數據流的行爲與NTFS數據流的行爲完全一樣。「... 您是否認爲您可以通過一個訪問完整性流校驗和(CRC64)數據不同的數據流調用? – mttjohnson 2013-04-23 17:35:51

+0

ReFS已經放棄了對備用數據流的支持。不過,我使用這個工具http://www.nirsoft.net/utils/alternate_data_streams.html在我的ReFS捲上查找ADS,但空手而歸。我不知道校驗和數據是如何存儲的,但微軟去除ADS僅僅是爲了重新實現他們,他們唯一的新目的是存儲用於完整性流校驗和的單獨數據流將是愚蠢的。將數據與其他文件系統元數據一起存儲似乎也很愚蠢,所以我真的不確定。 – 2013-04-27 06:25:56

回答

1

我認爲你不應該直接訪問校驗和。文件中每個64 KB羣集有一個CRC64校驗和(對於大文件,您可能會得到大量的校驗和)。它們以文件系統的「私有」方式存儲,沒有API訪問權限,我知道。根據我所知道的2012R2中的二進制格式,沒有ADS訪問校驗和,您必須深入分區。

至於最初的問題,您可能會對FILE_ATTRIBUTE_NO_SCRUB_DATA感興趣。其目的是「當應用程序開發人員希望更嚴格地控​​制這些文件的擦除時間和方式時,此屬性對於那些維護其自身完整性信息的應用程序非常有用。」這接近你想要的。

此致敬禮。