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 方法,以在提供映像本身丢失的映像标头后启用相对虚拟地址计算。

另请参阅