IDiaSectionContrib
Pobiera dane opisujące współtworzenie sekcji, czyli ciągły blok pamięci, który przyczynił się do obrazu przez compiland.
Składnia
IDiaSectionContrib : IUnknown
Metody w tabeli Vtable Order
W poniższej tabeli przedstawiono metody .IDiaSectionContrib
Metoda | opis |
---|---|
IDiaSectionContrib::get_compiland |
Pobiera odwołanie do symbolu compiland, który przyczynił się do tej sekcji. |
IDiaSectionContrib::get_addressSection |
Pobiera część sekcji adresu współtworzenia. |
IDiaSectionContrib::get_addressOffset |
Pobiera część przesunięcia adresu współtworzenia. |
IDiaSectionContrib::get_relativeVirtualAddress |
Pobiera względny adres wirtualny obrazu (RVA) udziału. |
IDiaSectionContrib::get_virtualAddress |
Pobiera adres wirtualny (VA) udziału. |
IDiaSectionContrib::get_length |
Pobiera liczbę bajtów w sekcji. |
IDiaSectionContrib::get_notPaged |
Pobiera flagę wskazującą, czy nie można odstronicować sekcji z pamięci. |
IDiaSectionContrib::get_nopad |
Pobiera flagę wskazującą, czy sekcja nie powinna być dopełniona do następnej granicy pamięci. |
IDiaSectionContrib::get_code |
Pobiera flagę wskazującą, czy sekcja zawiera kod wykonywalny. |
IDiaSectionContrib::get_initializedData |
Pobiera flagę wskazującą, czy sekcja zawiera zainicjowane dane. |
IDiaSectionContrib::get_uninitializedData |
Pobiera flagę wskazującą, czy sekcja zawiera niezainicjowane dane. |
IDiaSectionContrib::get_informational |
Pobiera flagę wskazującą, czy sekcja zawiera komentarze, czy podobne informacje. |
IDiaSectionContrib::get_remove |
Pobiera flagę wskazującą, czy sekcja została usunięta, zanim zostanie wykonana jako część obrazu w pamięci. |
IDiaSectionContrib::get_comdat |
Pobiera flagę wskazującą, czy sekcja jest rekordem COMDAT. |
IDiaSectionContrib::get_discardable |
Pobiera flagę wskazującą, czy sekcja może zostać odrzucona. |
IDiaSectionContrib::get_notCached |
Pobiera flagę wskazującą, czy nie można buforować sekcji. |
IDiaSectionContrib::get_share |
Pobiera flagę wskazującą, czy sekcja może być współdzielona w pamięci. |
IDiaSectionContrib::get_execute |
Pobiera flagę wskazującą, czy sekcja jest wykonywalna jako kod. |
IDiaSectionContrib::get_read |
Pobiera flagę wskazującą, czy można odczytać sekcję. |
IDiaSectionContrib::get_write |
Pobiera flagę wskazującą, czy można napisać sekcję. |
IDiaSectionContrib::get_dataCrc |
Pobiera cykliczne sprawdzanie nadmiarowości (CRC) danych w sekcji . |
IDiaSectionContrib::get_relocationsCrc |
Pobiera CRC informacji o relokacji dla sekcji. |
IDiaSectionContrib::get_compilandId |
Pobiera identyfikator compiland dla sekcji. |
IDiaSectionContrib::get_code16bit |
Pobiera flagę wskazującą, czy sekcja zawiera 16-bitowy kod. |
Uwagi
Uwagi dotyczące wywoływania
Ten interfejs jest uzyskiwany przez wywołanie IDiaEnumSectionContribs::Item
metod i .IDiaEnumSectionContribs::Next
IDiaEnumSectionContribs
Zobacz interfejs, aby zapoznać się z przykładem uzyskania interfejsuIDiaSectionContrib
.
Przykład
Ta funkcja pokazuje adres każdej sekcji wraz z skojarzonymi symbolami. Zobacz interfejs, IDiaEnumSectionContribs
aby zobaczyć, jak IDiaSectionContrib
interfejs jest uzyskiwany.
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" );
}
}
}
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia140.dll