IDiaAddressMap::set_imageHeaders
Establece los encabezados de imagen para habilitar la traducción de direcciones virtuales relativas.
Sintaxis
HRESULT set_imageHeaders (
DWORD cbData,
BYTE data[],
BOOL originalHeaders
);
Parámetros
cbData
[in] Número de bytes de datos de encabezado. Debe ser n*sizeof(IMAGE_SECTION_HEADER)
, donde n
es el número de encabezados de sección en el ejecutable.
data[]
[in] Matriz de estructuras IMAGE_SECTION_HEADER
que se van a usar como encabezados de imagen.
originalHeaders
[in] Establézcalo en FALSE
si los encabezados de imagen proceden de la nueva imagen, TRUE
si reflejan la imagen original antes de una actualización. Normalmente, esto se establecería en TRUE
solo en combinación con llamadas al método IDiaAddressMap::set_addressMap.
Valor devuelto
Si la operación se realiza correctamente, devuelve S_OK
; de lo contrario, devuelve un código de error.
Comentarios
La estructura IMAGE_SECTION_HEADER
se declara en Winnt.h y representa el formato de encabezado de sección de imagen del ejecutable.
Los cálculos de direcciones virtuales relativas dependen de los valores IMAGE_SECTION_HEADER
. Normalmente, DIA los recupera del archivo de base de datos del programa (.pdb). Si faltan estos valores, DIA no puede calcular las direcciones virtuales relativas y el método IDiaAddressMap::get_relativeVirtualAddressEnabled devuelve FALSE
. A continuación, el cliente debe llamar al método IDiaAddressMap::p ut_relativeVirtualAddressEnabled para habilitar los cálculos de direcciones virtuales relativas después de proporcionar los encabezados de imagen que faltan desde la propia imagen.