IDiaSectionContribIDiaSectionContrib

Ruft Daten ab, die einen Abschnitts Beitrag beschreiben, d. h. ein zusammenhängender Speicherblock, der durch eine kompisierung zum Image beigetragen hat.Retrieves data describing a section contribution, that is, a contiguous block of memory contributed to the image by a compiland.

SyntaxSyntax

IDiaSectionContrib : IUnknown

Methoden in Vtable-ReihenfolgeMethods in Vtable Order

In der folgenden Tabelle sind die Methoden von IDiaSectionContrib aufgeführt.The following table shows the methods of IDiaSectionContrib.

MethodeMethod BeschreibungDescription
IDiaSectionContrib::get_compilandIDiaSectionContrib::get_compiland Ruft einen Verweis auf das compilersymbol ab, das diesen Abschnitt beigetragen hat.Retrieves a reference to the compiland symbol that contributed this section.
IDiaSectionContrib::get_addressSectionIDiaSectionContrib::get_addressSection Ruft den Abschnitts Teil der Adresse des Beitrags ab.Retrieves the section part of the contribution's address.
IDiaSectionContrib::get_addressOffsetIDiaSectionContrib::get_addressOffset Ruft den Offset Teil der Adresse des Beitrags ab.Retrieves the offset part of the contribution's address.
IDiaSectionContrib::get_relativeVirtualAddressIDiaSectionContrib::get_relativeVirtualAddress Ruft die Bild relative virtuelle Adresse (RVA) des Beitrags ab.Retrieves the image relative virtual address (RVA) of the contribution.
IDiaSectionContrib::get_virtualAddressIDiaSectionContrib::get_virtualAddress Ruft die virtuelle Adresse (VA) des Beitrags ab.Retrieves the virtual address (VA) of the contribution.
IDiaSectionContrib::get_lengthIDiaSectionContrib::get_length Ruft die Anzahl der Bytes in einem Abschnitt ab.Retrieves the number of bytes in a section.
IDiaSectionContrib::get_notPagedIDiaSectionContrib::get_notPaged Ruft ein Flag ab, das angibt, ob für den Abschnitt nicht genügend Arbeitsspeicher verfügbar ist.Retrieves a flag that indicates whether the section cannot be paged out of memory.
IDiaSectionContrib::get_nopadIDiaSectionContrib::get_nopad Ruft ein Flag ab, das angibt, ob der Abschnitt nicht an der nächsten Speichergrenze aufgefüllt werden soll.Retrieves a flag indicating whether the section should not be padded to the next memory boundary.
IDiaSectionContrib::get_codeIDiaSectionContrib::get_code Ruft ein Flag ab, das angibt, ob der Abschnitt ausführbaren Code enthält.Retrieves a flag that indicates whether the section contains executable code.
IDiaSectionContrib::get_code16bitIDiaSectionContrib::get_code16bit Ruft ein Flag ab, das angibt, ob der Abschnitt 16-Bit-Code enthält.Retrieves a flag that indicates whether the section contains 16-bit code.
IDiaSectionContrib::get_initializedDataIDiaSectionContrib::get_initializedData Ruft ein Flag ab, das angibt, ob der Abschnitt initialisierte Daten enthält.Retrieves a flag that indicates whether the section contains initialized data.
IDiaSectionContrib::get_uninitializedDataIDiaSectionContrib::get_uninitializedData Ruft ein Flag ab, das angibt, ob der Abschnitt nicht initialisierte Daten enthält.Retrieves a flag that indicates whether the section contains uninitialized data.
IDiaSectionContrib::get_informationalIDiaSectionContrib::get_informational Ruft ein Flag ab, das angibt, ob ein Abschnitt Kommentare oder ähnliche Informationen enthält.Retrieves a flag indicating whether a section contains comments or similar information.
IDiaSectionContrib::get_removeIDiaSectionContrib::get_remove Ruft ein Flag ab, das angibt, ob der Abschnitt entfernt wird, bevor er Teil des in-Memory-Bilds wird.Retrieves a flag that indicates whether the section is removed before it is made part of the in-memory image.
IDiaSectionContrib::get_comdatIDiaSectionContrib::get_comdat Ruft ein Flag ab, das angibt, ob der Abschnitt ein COMDAT-Datensatz ist.Retrieves a flag that indicates whether the section is a COMDAT record.
IDiaSectionContrib::get_discardableIDiaSectionContrib::get_discardable Ruft ein Flag ab, das angibt, ob der Abschnitt verworfen werden kann.Retrieves a flag that indicates whether the section can be discarded.
IDiaSectionContrib::get_notCachedIDiaSectionContrib::get_notCached Ruft ein Flag ab, das angibt, ob der Abschnitt nicht zwischengespeichert werden kann.Retrieves a flag that indicates whether the section cannot be cached.
IDiaSectionContrib::get_shareIDiaSectionContrib::get_share Ruft ein Flag ab, das angibt, ob der Abschnitt im Arbeitsspeicher freigegeben werden kann.Retrieves a flag that indicates whether the section can be shared in memory.
IDiaSectionContrib::get_executeIDiaSectionContrib::get_execute Ruft ein Flag ab, das angibt, ob der Abschnitt ausführbare Dateien als Code ist.Retrieves a flag that indicates whether the section is executable as code.
IDiaSectionContrib::get_readIDiaSectionContrib::get_read Ruft ein Flag ab, das angibt, ob der Abschnitt gelesen werden kann.Retrieves a flag that indicates whether the section can be read.
IDiaSectionContrib::get_writeIDiaSectionContrib::get_write Ruft ein Flag ab, das angibt, ob der Abschnitt geschrieben werden kann.Retrieves a flag that indicates whether the section can be written.
IDiaSectionContrib::get_dataCrcIDiaSectionContrib::get_dataCrc Ruft die zyklische Redundanz Überprüfung (CRC) der Daten im-Abschnitt ab.Retrieves the cyclic redundancy check (CRC) of the data in the section.
IDiaSectionContrib::get_relocationsCrcIDiaSectionContrib::get_relocationsCrc Ruft den CRC der Verschiebungs Informationen für den Abschnitt ab.Retrieves the CRC of the relocation information for the section.
IDiaLineNumber::get_compilandIdIDiaLineNumber::get_compilandId Ruft den Compilerbezeichner für den Abschnitt ab.Retrieves the compiland identifier for the section.

HinweiseRemarks

Hinweise für AufruferNotes for Callers

Diese Schnittstelle wird durch Aufrufen der idiaenumsectioncontrisb:: Item -Methode und der idiaenumsectioncontrisb:: Next -Methode abgerufen.This interface is obtained by calling the IDiaEnumSectionContribs::Item and IDiaEnumSectionContribs::Next methods. Ein Beispiel für das Abrufen der IDiaSectionContrib-Schnittstelle finden Sie in der idiaenumsectioncontrisb -Schnittstelle.See the IDiaEnumSectionContribs interface for an example of obtaining the IDiaSectionContrib interface.

BeispielExample

Diese Funktion zeigt die Adresse jedes Abschnitts sowie alle zugehörigen Symbole an.This function shows the address of each section along with any associated symbols. Sehen Sie sich die idiaenumsectioncontrisb -Schnittstelle an, um zu erfahren, wie die IDiaSectionContrib Schnittstelle abgerufen wird.See the IDiaEnumSectionContribs interface to see how the IDiaSectionContrib interface is obtained.

void PrintSectionContrib(IDiaSectionContrib* pSecContrib, IDiaSession* pSession)
{
    if (pSecContrib != NULL && pSession != NULL)
    {
        DWORD rva;
        if ( pSecContrib->get_relativeVirtualAddress( &rva ) == S_OK )
        {
            printf( "\taddr: 0x%.8X", rva );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( psession->findSymbolByRVA( rva, SymTagNull, &pSym ) == S_OK )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                        name != NULL ? name : L"",
                        szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
        else
        {
            DWORD isect;
            DWORD offset;
            pSecContrib->get_addressSection( &isect );
            pSecContrib->get_addressOffset( &offset );
            printf( "\taddr: 0x%.4X:0x%.8X", isect, offset );
            pSecContrib = NULL;
            CComPtr<IDiaSymbol> pSym;
            if ( SUCCEEDED( psession->findSymbolByAddr(
                                              isect,
                                              offset,
                                              SymTagNull,
                                              &pSym )
                          )
               )
            {
                CDiaBSTR name;
                DWORD    tag;
                pSym->get_symTag( &tag );
                pSym->get_name( &name );
                printf( "     symbol: %ws (%ws)\n",
                    name != NULL ? name : L"",
                    szTags[ tag ] );
            }
            else
            {
                printf( "<no symbol found?>\n" );
            }
        }
    }
}

AnforderungenRequirements

Header: Dia2.hHeader: Dia2.h

Bibliothek: diaguids. libLibrary: diaguids.lib

DLL: msdia80.dllDLL: msdia80.dll

Siehe auchSee also