Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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