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_SECTION_HEADER
值。 通常,DIA 从程序数据库 (.pdb) 文件中检索这些值。 如果缺少这些值,DIA 将无法计算相对虚拟地址,IDiaAddressMap::get_relativeVirtualAddressEnabled 方法将返回 FALSE
。 然后,客户端必须调用 IDiaAddressMap::put_relativeVirtualAddressEnabled 方法,以在提供映像本身丢失的映像标头后启用相对虚拟地址计算。