IDiaSectionContrib
Pobiera dane opisujące wkład sekcji, to znaczy ciągłego bloku pamięci stanowiony obrazu przez compiland.
IDiaSectionContrib : IUnknown
Metody w kolejności Vtable
W poniższej tabeli przedstawiono metody IDiaSectionContrib.
Metoda |
Opis |
---|---|
Pobiera odwołanie do symbolu compiland, która przyczyniła się w tej sekcji. |
|
Pobiera część sekcji adresu wkładu. |
|
Pobiera przesunięcia część wkładu adresu. |
|
Pobiera obraz wirtualny adres względny (RVA) wkładu. |
|
Pobiera adres wirtualny (VA) wkładu. |
|
Pobiera liczbę bajtów w sekcji. |
|
Pobiera flagę wskazującą, czy sekcja nie stronicowanej pamięci. |
|
Pobiera flagę wskazującą, czy nie są wyściełane sekcji do następnego granicy pamięci. |
|
Pobiera flagę wskazującą, czy sekcja zawiera kod wykonywalny. |
|
Pobiera flagę wskazującą, czy sekcja zawiera 16-bitowego kodu. |
|
Pobiera flagę wskazującą, czy sekcja zawiera zainicjowane dane. |
|
Pobiera flagę wskazującą, czy sekcja zawiera niezainicjowanych danych. |
|
Pobiera flagę wskazującą, czy sekcja zawiera komentarze lub podobne informacje. |
|
Pobiera flagę wskazującą, czy sekcja jest usuwany przed dokonaniem części obrazu w pamięci. |
|
Pobiera flagę wskazującą, czy sekcja jest rekordu COMDAT. |
|
Pobiera flagę wskazującą, czy sekcja można odrzucone. |
|
Pobiera flagę wskazującą, czy sekcja nie może być buforowane. |
|
Pobiera flagę wskazującą, czy sekcja może być współużytkowany w pamięci. |
|
Pobiera flagę wskazującą, czy sekcja jest wykonywalny jako kod. |
|
Pobiera flagę wskazującą, czy można przeczytać sekcję. |
|
Pobiera flagę wskazującą, czy sekcja może być zapisany. |
|
Pobiera wyboru cyklicznej kontroli redundancji (CRC) w sekcji danych. |
|
Pobiera CRC informacji przeniesienie dla sekcji. |
|
Pobiera identyfikator compiland dla sekcji. |
Uwagi
Uwagi do wywoływania
Ten interfejs jest uzyskiwany przez wywołanie IDiaEnumSectionContribs::Item i IDiaEnumSectionContribs::Next metody.Zobacz IDiaEnumSectionContribs interfejsu, na przykład uzyskania IDiaSectionContrib interfejsu.
Przykład
Funkcja ta pokazuje adres każdej sekcji wraz z dowolnym skojarzone z nimi symbole.Zobacz IDiaEnumSectionContribs interfejsu, aby zobaczyć jak IDiaSectionContrib uzyskuje się interfejs.
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
Biblioteki: diaguids.lib
Biblioteka DLL: msdia80.dll