Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bölüm katkısını açıklayan, yani bir compiland tarafından görüntüye katkıda bulunan bitişik bir bellek bloğunu açıklayan verileri alır.
Sözdizimi
IDiaSectionContrib : IUnknown
Vtable Sırasına Göre Yöntemler
Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDiaSectionContrib
.
Metot | Açıklama |
---|---|
IDiaSectionContrib::get_compiland |
Bu bölüme katkıda bulunan compiland simgesine bir başvuru alır. |
IDiaSectionContrib::get_addressSection |
Katkı adresinin bölüm bölümünü alır. |
IDiaSectionContrib::get_addressOffset |
Katkı adresinin uzaklık bölümünü alır. |
IDiaSectionContrib::get_relativeVirtualAddress |
Katkının görüntü göreli sanal adresini (RVA) alır. |
IDiaSectionContrib::get_virtualAddress |
Katkının sanal adresini (VA) alır. |
IDiaSectionContrib::get_length |
Bir bölümdeki bayt sayısını alır. |
IDiaSectionContrib::get_notPaged |
Bölümün bellek dışında disk belleğine alınıp alınamayacağını belirten bir bayrak alır. |
IDiaSectionContrib::get_nopad |
Bölümün sonraki bellek sınırına doldurulmaması gerektiğini belirten bir bayrak alır. |
IDiaSectionContrib::get_code |
Bölümün yürütülebilir kod içerip içermediğini gösteren bir bayrak alır. |
IDiaSectionContrib::get_initializedData |
Bölümün başlatılan veriler içerip içermediğini gösteren bir bayrak alır. |
IDiaSectionContrib::get_uninitializedData |
Bölümün başlatılmamış veriler içerip içermediğini gösteren bir bayrak alır. |
IDiaSectionContrib::get_informational |
Bölümün açıklamalar mı yoksa benzer bilgiler mi içerdiğini belirten bir bayrak alır. |
IDiaSectionContrib::get_remove |
Bölümün bellek içi görüntünün bir parçası yapılmadan önce kaldırılıp kaldırılmadığını gösteren bir bayrak alır. |
IDiaSectionContrib::get_comdat |
Bölümün bir COMDAT kaydı olup olmadığını gösteren bir bayrak alır. |
IDiaSectionContrib::get_discardable |
Bölümün atılıp atılamayacağını gösteren bir bayrak alır. |
IDiaSectionContrib::get_notCached |
Bölümün önbelleğe alınıp alınamayacağını belirten bir bayrak alır. |
IDiaSectionContrib::get_share |
Bölümün bellekte paylaşılıp paylaşılamayacağını gösteren bir bayrak alır. |
IDiaSectionContrib::get_execute |
Bölümün kod olarak yürütülebilir olup olmadığını gösteren bir bayrak alır. |
IDiaSectionContrib::get_read |
Bölümün okunup okunamayacağını gösteren bir bayrak alır. |
IDiaSectionContrib::get_write |
Bölümün yazılıp yazılamayacağını gösteren bir bayrak alır. |
IDiaSectionContrib::get_dataCrc |
bölümündeki verilerin döngüsel yedeklilik denetimini (CRC) alır. |
IDiaSectionContrib::get_relocationsCrc |
Bölümün yeniden konumlandırma bilgilerinin CRC'sini alır. |
IDiaSectionContrib::get_compilandId |
Bölümün compiland tanımlayıcısını alır. |
IDiaSectionContrib::get_code16bit |
Bölümün 16 bit kod içerip içermediğini gösteren bir bayrak alır. |
Açıklamalar
Arayanlar İçin Notlar
Bu arabirim ve IDiaEnumSectionContribs::Next
yöntemleri çağrılarak IDiaEnumSectionContribs::Item
elde edilir. IDiaEnumSectionContribs
Arabirimi elde etme örneği için arabirimine IDiaSectionContrib
bakın.
Örnek
Bu işlev, ilişkili sembollerle birlikte her bölümün adresini gösterir. Arabirimin IDiaEnumSectionContribs
nasıl alındiğini görmek için arabirimine IDiaSectionContrib
bakın.
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" );
}
}
}
}
Gereksinimler
Üst bilgi: Dia2.h
Kitaplık: diaguids.lib
DLL: msdia140.dll