IDiaAddressMap::set_imageHeaders
設定影像標頭以啟用相對虛擬位址轉譯。
語法
HRESULT set_imageHeaders (
DWORD cbData,
BYTE data[],
BOOL originalHeaders
);
參數
cbData
[in] 標頭資料的位元組數目。 必須是 n*sizeof(IMAGE_SECTION_HEADER)
,其中 n
是可執行檔中的區段標頭數目。
data[]
[in] 要當做影像標頭使用的 IMAGE_SECTION_HEADER
結構陣列。
originalHeaders
[in] 如果映像標頭來自新映像,則設為 FALSE
; 如果在升級之前反映原始映像,則設為 TRUE
。 一般而言,這只會在與 IDiaAddressMap::set_addressMap 方法的呼叫結合時設為 TRUE
。
傳回值
如果成功,則會傳回 S_OK
;否則,會傳回錯誤碼。
備註
IMAGE_SECTION_HEADER
結構是以 Winnt.h 宣告,並代表可執行檔的 image 區段標頭格式。
相對虛擬位址計算取決於 IMAGE_SECTION_HEADER
值。 通常,DIA 會從程式資料庫 (.pdb) 檔案擷取這些項目。 如果遺漏這些值,DIA 無法計算相對虛擬位址,而 IDiaAddressMap::get_relativeVirtualAddressEnabled 方法會傳回 FALSE
。 然後,用戶端必須呼叫 IDiaAddressMap::p ut_relativeVirtualAddressEnabled 方法,以在提供影像本身遺漏的影像標頭之後啟用相對虛擬位址計算。