IDiaImageDataIDiaImageData

Expone los detalles de los desplazamientos de memoria y la ubicación base del módulo o la imagen.Exposes the details of the base location and memory offsets of the module or image.

SintaxisSyntax

IDiaImageData : IUnknown  

Métodos en orden de VtableMethods in Vtable Order

La tabla siguiente muestran los métodos de IDiaImageData.The following table shows the methods of IDiaImageData.

MétodoMethod DescripciónDescription
IDiaImageData::get_relativeVirtualAddressIDiaImageData::get_relativeVirtualAddress Recupera la ubicación de la memoria virtual del módulo relativa a la aplicación.Retrieves the location in virtual memory of the module relative to the application.
IDiaImageData::get_virtualAddressIDiaImageData::get_virtualAddress Recupera la ubicación de la memoria virtual de la imagen.Retrieves the location in virtual memory of the image.
IDiaImageData::get_imageBaseIDiaImageData::get_imageBase Recupera la ubicación de memoria donde se debe basar la imagen.Retrieves the memory location where the image should be based.

ComentariosRemarks

Algunas secuencias de depuración (XDATA, PDATA) contienen copias de datos que también se almacenan en la imagen.Some debug streams (XDATA, PDATA) contain copies of data also stored in the image. Estos transmita datos de objetos se pueden consultar para el IDiaImageData interfaz.These stream data objects can be queried for the IDiaImageData interface. Vea la sección "Notas para llamadores" en este tema para obtener más información.See the "Notes for Callers" section in this topic for details.

Notas para los llamadoresNotes for Callers

Obtener esta interfaz mediante una llamada a QueryInterface en un IDiaEnumDebugStreamData objeto.Obtain this interface by calling QueryInterface on an IDiaEnumDebugStreamData object. Tenga en cuenta que no todos depuración flujos de soporte técnico de la IDiaImageData interfaz.Note that not all debug streams support the IDiaImageData interface. Por ejemplo, actualmente solo las secuencias XDATA y PDATA admiten la IDiaImageData interfaz.For example, currently only the XDATA and PDATA streams support the IDiaImageData interface.

EjemploExample

Este ejemplo busca en todas las secuencias de depuración para cualquier secuencia que admita la IDiaImageData interfaz.This example searches all of the debug streams for any stream that supports the IDiaImageData interface. Si se encuentra una secuencia de este tipo, se muestra información acerca de esa secuencia.If such a stream is found, some information about that stream is displayed.

void ShowImageData(IDiaSession *pSession)  
{  
    if (pSession != NULL)  
    {  
        CComPtr<IDiaEnumDebugStreams> pStreamsList;  
        HRESULT hr;  

        hr = pSession->getEnumDebugStreams(&pStreamsList);  
        if (SUCCEEDED(hr))  
        {  
            LONG numStreams = 0;  
            hr = pStreamsList->get_Count(&numStreams);  
            if (SUCCEEDED(hr))  
            {  
                ULONG fetched = 0;  
                for (LONG i = 0; i < numStreams; i++)  
                {  
                    CComPtr<IDiaEnumDebugStreamData> pStream;  
                    hr = pStreamsList->Next(1,&pStream,&fetched);  
                    if (fetched == 1)  
                    {  
                        CComPtr<IDiaImageData> pImageData;  
                        hr = pStream->QueryInterface(__uuidof(IDiaImageData),  
                                                     (void **)&pImageData);  
                        if (SUCCEEDED(hr))  
                        {  
                            CComBSTR name;  
                            hr = pStream->get_name(&name);  
                            if (SUCCEEDED(hr))  
                            {  
                                wprintf(L"Stream %s:\n",(BSTR)name);  
                            }  
                            else  
                            {  
                                wprintf(L"Failed to get name of stream\n");  
                            }  

                            ULONGLONG imageBase = 0;  
                            if (pImageData->get_imageBase(&imageBase) == S_OK)  
                            {  
                                wprintf(L"  image base = 0x%0I64x\n",imageBase);  
                            }  

                            DWORD relVA = 0;  
                            if (pImageData->get_relativeVirtualAddress(&relVA) == S_OK)  
                            {  
                                wprintf(L"  relative virtual address = 0x%08lx\n",relVA);  
                            }  

                            ULONGLONG va = 0;  
                            if (pImageData->get_virtualAddress(&va) == S_OK)  
                            {  
                                wprintf(L"  virtual address = 0x%0I64x\n", va);  
                            }  
                        }  
                    }  
                }  
            }  
        }  
    }  
}  

RequisitosRequirements

Encabezado: Dia2.hHeader: Dia2.h

Biblioteca: diaguids.libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Vea tambiénSee Also

Interfaces (Debug Interface Access SDK) Interfaces (Debug Interface Access SDK)
IDiaEnumDebugStreamDataIDiaEnumDebugStreamData