IDiaSegmentIDiaSegment

Mappe les données à partir du numéro de section à des segments de l’espace d’adressage.Maps data from the section number to segments of address space.

SyntaxeSyntax

IDiaSegment : IUnknown  

Méthodes dans l'ordre VtableMethods in Vtable Order

Le tableau suivant présente les méthodes de IDiaSegment.The following table shows the methods of IDiaSegment.

MéthodeMethod DescriptionDescription
IDiaSegment::get_frameIDiaSegment::get_frame Récupère le numéro de segment.Retrieves the segment number.
IDiaSegment::get_offsetIDiaSegment::get_offset Récupère le décalage en segments où la section commence.Retrieves the offset in segments where the section begins.
IDiaSegment::get_lengthIDiaSegment::get_length Récupère le nombre d’octets dans le segment.Retrieves the number of bytes in the segment.
IDiaSegment::get_readIDiaSegment::get_read Récupère un indicateur qui indique si le segment peut être lue.Retrieves a flag that indicates whether the segment can be read.
IDiaSegment::get_writeIDiaSegment::get_write Récupère un indicateur qui indique si le segment peut être modifié.Retrieves a flag that indicates whether the segment can be modified.
IDiaSegment::get_executeIDiaSegment::get_execute Récupère un indicateur qui indique si le segment est exécutable.Retrieves a flag that indicates whether the segment is executable.
IDiaSegment::get_addressSectionIDiaSegment::get_addressSection Récupère le numéro de la section qui mappe à ce segment.Retrieves the section number that maps to this segment.
IDiaSegment::get_relativeVirtualAddressIDiaSegment::get_relativeVirtualAddress Récupère l’adresse virtuelle relative (RVA) du début de la section.Retrieves the relative virtual address (RVA) of the beginning of the section.
IDiaSegment::get_virtualAddressIDiaSegment::get_virtualAddress Récupère l’adresse virtuelle (VA) du début de la section.Retrieves the virtual address (VA) of the beginning of the section.

NotesRemarks

Étant donné que le SDK DIA exécute déjà traductions à partir du décalage de la section à des adresses virtuelles relatives, la plupart des applications n’apporte utiliser les informations dans le mappage de segments.Because the DIA SDK already performs translations from the section offset to relative virtual addresses, most applications will not make use of the information in the segment map.

Remarques pour les appelantsNotes for Callers

Obtenez cette interface en appelant le IDiaEnumSegments::Item ou IDiaEnumSegments::Next méthodes.Obtain this interface by calling the IDiaEnumSegments::Item or IDiaEnumSegments::Next methods. Consultez l’exemple de détails.See the example for details.

ExempleExample

Cette fonction affiche l’adresse de tous les segments d’une table et le symbole le plus proche.This function displays the address of all segments in a table and the nearest symbol.

void ShowSegments(IDiaTable *pTable, IDiaSession *pSession)  
{  
    CComPtr<IDiaEnumSegments> pSegments;  
    if ( SUCCEEDED( pTable->QueryInterface(  
                                _uuidof( IDiaEnumSegments ),  
                               (void**)&pSegments )  
                  )  
       )  
    {  
        CComPtr<IDiaSegment> pSegment;  
        while ( SUCCEEDED( hr = pSegments->Next( 1, &pSegment, &celt ) ) &&  
                celt == 1 )  
        {  
            DWORD rva;  
            DWORD seg;  

            pSegment->get_addressSection( &seg );  
            if ( pSegment->get_relativeVirtualAddress( &rva ) == S_OK )  
            {  
                printf( "Segment %i addr: 0x%.8X\n", seg, rva );  
                pSegment = 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( "\tClosest symbol: %ws (%ws)\n",  
                            name != NULL ? name : L"",  
                            szTags[ tag ] );  
                }  
            }  
        }  
    }  
}  

SpécificationsRequirements

En-tête : Dia2.hHeader: Dia2.h

Bibliothèque : diaguids.libLibrary: diaguids.lib

DLL : msdia80.dllDLL: msdia80.dll

Voir aussiSee Also

Interfaces (Debug Interface Access SDK) Interfaces (Debug Interface Access SDK)
IDiaEnumSegments::Item IDiaEnumSegments::Item
IDiaEnumSegments::NextIDiaEnumSegments::Next