IDiaSectionContrib
Извлекает данные, описывающие вклад раздела, т е непрерывный блок памяти в способствованный образу compiland.
IDiaSectionContrib : IUnknown
Методы в том порядке Vtable
В следующей таблице показаны методы IDiaSectionContrib.
Метод |
Описание |
---|---|
Извлекает ссылку на символ compiland, способствовал в этом разделе. |
|
Извлекает часть раздела адреса вклада. |
|
Извлекает часть смещения адреса вклада. |
|
Получает относительный виртуальный адрес образа (RVA) вклада. |
|
Получает виртуальный адрес (VA вклада.) |
|
Извлекает число байтов в разделе. |
|
Извлекает пометить, указывающее, является ли раздел нельзя вызвать из памяти. |
|
Извлекает пометить указывающее, должен ли раздел не быть проложен к следующей границе памяти. |
|
Извлекает пометить, указывающее, содержит ли раздел исполняемый код. |
|
Извлекает пометить, указывающее, содержит ли раздел 16-разрядный код. |
|
Извлекает пометить, указывающее, содержит ли раздел инициализированные данные. |
|
Извлекает пометить, указывающее, содержит ли раздел неинициализированные данные. |
|
Извлекает пометить указывающее, содержит ли раздел комментарии или аналогичное сведения. |
|
Извлекает пометить, указывающее, удален ли раздел, прежде чем он становится частью образа в памяти. |
|
Извлекает пометить раздела COMDAT, указывающее, является ли запись. |
|
Извлекает пометить, указывающее, может ли секция может быть отменено. |
|
Извлекает пометить, указывающее, может ли секция быть кэшироваться. |
|
Извлекает пометить, указывающее, является ли раздел может использоваться в памяти. |
|
Извлекает пометить, указывающее, является ли раздел исполнительн как код. |
|
Извлекает пометить, указывающее, является ли раздел можно считать. |
|
Извлекает пометить, указывающее, может ли секция может записать. |
|
Извлекает циклическую проверку избыточности (CRC) данных в шаге. |
|
Извлекает CRC данных перемещения для секции. |
|
Извлекает идентификатор compiland для секции. |
Заметки
Замечания для вызывающих объектов
Этот интерфейс полученного вызовом метода IDiaEnumSectionContribs::Item и IDiaEnumSectionContribs::Next методы. См. IDiaEnumSectionContribs интерфейс пример получения IDiaSectionContrib интерфейс.
Пример
Эта функция отображает адрес каждого раздела вместе с всеми связанными символами. См. IDiaEnumSectionContribs интерфейс для просмотра как IDiaSectionContrib интерфейс получен.
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" );
}
}
}
}
Требования
Заголовок: Dia2.h
Библиотеки: diaguids.lib
Библиотеки DLL: msdia80.dll