Compartilhar via


IDiaAddressMap::set_imageHeaders

Applies to: yesVisual Studio noVisual Studio for Mac

Note

This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

Sets image headers to enable relative virtual address translation.

Syntax

HRESULT set_imageHeaders ( 
   DWORD cbData,
   BYTE  data[],
   BOOL  originalHeaders
);

Parameters

cbData

[in] Number of bytes of header data. Must be n*sizeof(IMAGE_SECTION_HEADER) where n is the number of section headers in the executable.

data[]

[in] An array of IMAGE_SECTION_HEADER structures to be used as the image headers.

originalHeaders

[in] Set to FALSE if the image headers are from the new image, TRUE if they reflect the original image prior to an upgrade. Typically, this would be set to TRUE only in combination with calls to the IDiaAddressMap::set_addressMap method.

Return Value

If successful, returns S_OK; otherwise, returns an error code.

Remarks

The IMAGE_SECTION_HEADER structure is declared in Winnt.h and represents the image section header format of the executable.

Relative virtual address calculations depend upon the IMAGE_SECTION_HEADER values. Usually, the DIA retrieves these from the program database (.pdb) file. If these values are missing, the DIA is unable to calculate relative virtual addresses and the IDiaAddressMap::get_relativeVirtualAddressEnabled method returns FALSE. The client must then call the IDiaAddressMap::put_relativeVirtualAddressEnabled method to enable the relative virtual address calculations after providing the missing image headers from the image itself.

See also