共用方式為


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 ,以取得擷取總和檢查碼所需的位元組數目。 然後配置適當大小的緩衝區,並使用新緩衝區再次呼叫此方法。

另請參閱