IDiaSourceFile::get_checksum
擷取總和檢查碼位元組。
語法
HRESULT get_checksum (
DWORD cbData,
DWORD* pcbData,
BYTE data[]
);
參數
cbData
[in] 資料緩衝區的大小,以位元組為單位。
pcbData
[out] 傳回總和檢查碼位元組數目。 這個參數不可以是 NULL
。
data
[in, out] 填入總和檢查碼位元組的緩衝區。 如果此參數是 NULL
,則 pcbData
會傳回所需的位元組數目。
傳回值
如果成功,則會傳回 S_OK
;否則,會傳回錯誤碼。
備註
若要判斷用於產生總和檢查碼位元組的總和檢查碼演算法類型,請呼叫 IDiaSourceFile::get_checksumType 方法。
總和檢查碼通常是從來源檔案的映像所產生,因此來源檔案中的變更會反映在總和檢查碼位元組的變更中。 如果總和檢查碼位元組與從檔案載入的映像產生的總和檢查碼不符,則應將檔案視為已損毀或遭竄改。
一般總和檢查碼的大小絕不超過 32 個位元組,但這並不代表總和檢查碼的大小上限。 將 data
參數設定為 NULL
,以取得擷取總和檢查碼所需的位元組數目。 然後配置適當大小的緩衝區,並使用新緩衝區再次呼叫此方法。