DkmNativeModuleInstance Класс

Определение

"Дкмнативемодулеинстанце" используется для модулей, которые содержат код ЦП и/или загружаются загрузчиком Win32.

public ref class DkmNativeModuleInstance : Microsoft::VisualStudio::Debugger::DkmModuleInstance
[System.Runtime.InteropServices.Guid("b7de7beb-acab-76c4-bd78-fbba698e4b65")]
public class DkmNativeModuleInstance : Microsoft.VisualStudio.Debugger.DkmModuleInstance
[<System.Runtime.InteropServices.Guid("b7de7beb-acab-76c4-bd78-fbba698e4b65")>]
type DkmNativeModuleInstance = class
    inherit DkmModuleInstance
Public Class DkmNativeModuleInstance
Inherits DkmModuleInstance
Наследование
Атрибуты

Свойства

BaseAddress

Начальный адрес памяти, в которую загружается модуль. Это значение всегда должно быть допустимым.

ClrHeaderStatus

Содержит сведения из поля "Flags" IMAGE_COR20_HEADER загруженного модуля. Указывает, какой тип файла был загружен.

Connection

Это представляет собой соединение между монитором и интегрированной средой разработки. Это может быть локальное подключение, если монитор выполняется в том же процессе, что и интегрированная среда разработки, или удаленное подключение. В процессе мониторинга существует только одно соединение.

(Унаследовано от DkmModuleInstance)
Flags

Флаги, которые указывают на признаки Дкммодулеинстанце.

(Унаследовано от DkmModuleInstance)
FullName

Полное имя модуля. Для файловых модулей это полный путь к модулю (например: c:\windows\system32\kernel32.dll.

(Унаследовано от DkmModuleInstance)
IsDisabled

Указывает, был ли данный экземпляр модуля отключен. Отключенные модули в основном игнорируются отладчиком. Для собственных модулей диапазон адресов отключенного модуля обрабатывается так, как если бы он не был сопоставлен. Для модулей CLR все кадры из этих модулей скрыты от стека вызовов.

(Унаследовано от DkmModuleInstance)
IsUnloaded

Возвращает значение true, если для данного объекта было вызвано событие "выгружено" (например, вызывается метод Дкмсреад:: Unload), или значение, если объект был закрыт. Обратите внимание, что необходимо использовать осторожность при проверке этого состояния как, без синхронизации, возвращаемое состояние может больше не быть точным после считывания инструкции.

(Унаследовано от DkmDataContainer)
LoadContext

Строковое описание контекста, в котором был загружен этот модуль. Пример: "Win32" или "CLR v 2.0.50727: домен по умолчанию".

(Унаследовано от DkmModuleInstance)
LoadOrder

Целочисленное число экземпляров модулей, загруженных в и включая этот модуль. Каждый экземпляр среды выполнения отслеживает свой собственный счетчик нагрузки.

(Унаследовано от DkmModuleInstance)
MemoryLayout

Перечисление, указывающее, как модуль располагается в памяти.

(Унаследовано от DkmModuleInstance)
MinidumpInfoPart

Используемых "Минидумпинфопарт" используется для передачи дополнительных сведений о модулях в Дкмпроцесс для минидампа.

(Унаследовано от DkmModuleInstance)
Module

Используемых Представление модуля (Дкммодуле) обработчика символов, связанного с этим экземпляром модуля. Это значение изначально равно NULL и присваивается, если символы связаны с этим экземпляром модуля.

(Унаследовано от DkmModuleInstance)
Name

Короткое представление имени модуля. Для файловых модулей это имя файла и расширение (например, kernel32.dll).

(Унаследовано от DkmModuleInstance)
Process

Дкмпроцесс представляет целевой процесс, который отлаживается. Отладчик выполняет обработку ошибок, поэтому это основная единица отладки. Дкмпроцесс может представлять системный процесс или виртуальный процесс, например Мини-дампы.

(Унаследовано от DkmModuleInstance)
RuntimeInstance

Представляет машинный код, исполняемый в целевом процессе.

Size

Число байтов в области памяти модуля.

SymbolFileId

Используемых Содержит сведения, необходимые для нахождение символов для этого модуля. В Win32 эти сведения содержатся в IMAGE_DEBUG_DIRECTORY.

(Унаследовано от DkmModuleInstance)
TagValue

Дкммодулеинстанце является абстрактным базовым классом. Это перечисление указывает, какой производный класс этот объект является экземпляром.

(Унаследовано от DkmModuleInstance)
TimeDateStamp

Дата и время сборки загруженного модуля. Это значение берется из IMAGE_NT_HEADERS загруженного модуля. Единицей измерения является значение FILETIME, которое представляет собой 64-разрядное значение, представляющее число 100-наносекундных интервалов, прошедших с 1 января 1601 (UTC).

(Унаследовано от DkmModuleInstance)
UniqueId

Уникально идентифицирует объект Дкммодулеинстанце.

(Унаследовано от DkmModuleInstance)
Version

Используемых Сведения о версии файла.

(Унаследовано от DkmModuleInstance)

Методы

ClearTransitionModuleFlag()

Экземпляры среды выполнения вызывают этот метод, чтобы пометить модуль как модуль границ. При пошаговом выполнении среда выполнения должна проверить, достигла ли шаг модуля границ, и начать пошаговое арбитраж, если они есть. Обратите внимание, что некоторые среды выполнения могут не поддерживать этот запрос. Диспетчер будет удерживать количество раз, когда было вызвано Флагастранситионмодуле. Только если соответствующее число вызовов Клеартранситионмодулефлаг будет больше не считается модулем перехода.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

(Унаследовано от DkmModuleInstance)
Create(String, String, UInt64, DkmModuleVersion, DkmSymbolFileId, DkmModuleFlags, DkmModuleMemoryLayout, UInt32, String, DkmNativeRuntimeInstance, UInt64, UInt32, DkmClrHeaderStatus, Boolean, DkmModule, DkmModuleInstance+MinidumpInfo, DkmDataItem)

Создайте новый экземпляр объекта Дкмнативемодулеинстанце.

Этот метод будет отсылать событие Модулеинстанцелоад.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

Decompile()

Декомпилирует код для модуля в C# и создает новый переносимый PDB-файл с внедренным исходным кодом. Все модули, которые совместно используют этот файл символов, начнут использовать эти обновленные символы.

Ограничение расположения. Этот метод может быть вызван из интегрированной среды разработки.

Этот API появился в Visual Studio 16 с обновлением 5 (Дкмапиверсион. VS16Update5).

(Унаследовано от DkmModuleInstance)
Decompile(DkmWorkList, DkmCompletionRoutine<DkmDecompileAsyncResult>)

Декомпилирует код для модуля в C# и создает новый переносимый PDB-файл с внедренным исходным кодом. Все модули, которые совместно используют этот файл символов, начнут использовать эти обновленные символы.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

Ограничение расположения. Этот метод может быть вызван из интегрированной среды разработки.

Этот API появился в Visual Studio 16 с обновлением 5 (Дкмапиверсион. VS16Update5).

(Унаследовано от DkmModuleInstance)
FindExportByOrdinal(DkmWorkList, UInt32, Boolean, DkmCompletionRoutine<DkmFindExportByOrdinalAsyncResult>)

Находит адрес экспортированной функции (или экспорта данных), заданный порядковым номером.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

Этот API появился в Visual Studio 15 RTM (Дкмапиверсион. VS15RTM).

FindExportByOrdinal(UInt32, Boolean)

Находит адрес экспортированной функции (или экспорта данных), заданный порядковым номером.

Этот API появился в Visual Studio 15 RTM (Дкмапиверсион. VS15RTM).

FindExportName(DkmWorkList, String, Boolean, DkmCompletionRoutine<DkmFindExportNameAsyncResult>)

Находит адрес указанной именованной экспортированной функции (или экспорта данных).

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

FindExportName(String, Boolean)

Находит адрес указанной именованной экспортированной функции (или экспорта данных).

FlagAsTransitionModule()

Экземпляры среды выполнения вызывают этот метод, чтобы пометить модуль как модуль границ. При пошаговом выполнении среда выполнения должна проверить, достигла ли шаг модуля границ, и начать пошаговое арбитраж, если они есть. Обратите внимание, что некоторые среды выполнения могут не поддерживать этот запрос. Диспетчер будет удерживать количество вызовов этого метода, равное количеству. Модуль больше не будет считаться модулем перехода, только если сопоставленное число вызовов Клеартранситионмодулефлаг.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

(Унаследовано от DkmModuleInstance)
GetDataItem<T>()

Возвращает экземпляр элемента "t", который был добавлен в этот экземпляр контейнера. Если этот контейнер не содержит 'T, эта функция возвратит значение null.

(Унаследовано от DkmDataContainer)
GetFunctionTableEntry(UInt64)

Получите запись таблицы функций для переданного адреса. Формат подсистемы зависит от архитектуры отлаживаемого кода.

GetGPUDisassembly(UInt64, UInt32, Boolean, Boolean)

Получение дизассемблированного кода из диапазона адресов в экземпляре модуля отлаживаемого кода.

(Унаследовано от DkmModuleInstance)
GetGPUDisassemblySize()

Возвращает размер дизассемблированного кода в экземпляре модуля отлаживаемого кода.

(Унаследовано от DkmModuleInstance)
GetNextGPUInstructionAddress(UInt64)

Возвращает адрес следующей инструкции по отношению к начальному адресу.

(Унаследовано от DkmModuleInstance)
GetSymbolLoadInformation()

Возвращает строку, описывающую различные расположения, в которых выполнялся поиск символов, и результат проверки этого расположения. Эти сведения используются для заполнения "сведений о загрузке символов" в окне "модули".

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
GetSymbolStatusMessage(Boolean)

Получите локализованное строковое описание состояния текущего символа.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
IsSuppressed()

Этот метод позволяет компоненту определить, было ли подавлено событие загрузки модуля для модуля.

Этот API появился в Visual Studio 12 с обновлением 3 (Дкмапиверсион. VS12Update3).

(Унаследовано от DkmModuleInstance)
IsTransitionModule()

Возвращает значение true, если любой экземпляр среды выполнения пометил этот модуль как модуль перехода.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

(Унаследовано от DkmModuleInstance)
IsUserCode()

Определяет, считается ли модуль пользовательским кодом.

Ограничение расположения. Этот метод можно вызывать из компонента IDE. Начиная с Visual Studio 2013 обновления 2, его также можно вызвать из компонента монитора для управляемого кода. В Visual Studio 2017 с обновлением 8 Каллдиректион API был сделан "двунаправленным" из "нормального" и теперь может вызываться из любого компонента, Асинккаллер был задан как "true", а Каллерлокатионконстраинт был задан как "None" из "No Маршалловы".

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

(Унаследовано от DkmModuleInstance)
IsUserCode(DkmWorkList, DkmCompletionRoutine<DkmModuleInstanceIsUserCodeAsyncResult>)

Определяет, считается ли модуль пользовательским кодом.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

Ограничение расположения. Этот метод можно вызывать из компонента IDE. Начиная с Visual Studio 2013 обновления 2, его также можно вызвать из компонента монитора для управляемого кода. В Visual Studio 2017 с обновлением 8 Каллдиректион API был сделан "двунаправленным" из "нормального" и теперь может вызываться из любого компонента, Асинккаллер был задан как "true", а Каллерлокатионконстраинт был задан как "None" из "No Маршалловы".

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

(Унаследовано от DkmModuleInstance)
OnBinaryLoaded(String)

Вызов события Бинарилоадед. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Элемент управления возвратит после получения уведомления обо всех компонентах.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

(Унаследовано от DkmModuleInstance)
OnBinaryReloadOpportunity()

Вызов события Бинарирелоадоппортунити. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Элемент управления возвратит после получения уведомления обо всех компонентах.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

Этот API появился в Visual Studio 12 с обновлением 2 (Дкмапиверсион. VS12Update2).

(Унаследовано от DkmModuleInstance)
OnModuleModified()

Этот метод вызывается при изменении модуля из-за пропуска EnC или динамически генерируемого кода.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

(Унаследовано от DkmModuleInstance)
OnSymbolsLoaded(DkmModule, Boolean)

Этот метод вызывается базовыми мониторами отладки в ответ на вызов Идкммодулесимболслоадед. Раисесимболслоадедевент. Этот метод должен вызываться из потока событий или из потока запроса в ходе перезагрузки. Базовые мониторы отладки должны синхронно переключаться в поток событий, приостанавливать целевой процесс и вызывать Онсимболслоадед.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

(Унаследовано от DkmModuleInstance)
OnSymbolsUpdated(DkmModule)

Вызов события Модулесимболсупдатед. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Элемент управления возвратит после получения уведомления обо всех компонентах.

(Унаследовано от DkmModuleInstance)
ReadSymbols()

Этот метод вызывается обработчиками символов для чтения символов для Дкммодулеинстанцес, символы которых находятся в памяти отлаживаемого объекта.

(Унаследовано от DkmModuleInstance)
RemoveDataItem<T>()

Удалить экземпляр из этого контейнера. Обычно нет необходимости вызывать этот метод, так как контейнер данных будет автоматически очищаться при закрытии объекта.

(Унаследовано от DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Поместите новый элемент в контейнер данных.

(Унаследовано от DkmDataContainer)
SetDisabled(Boolean)

Обновляет состояние Disabled для модуля. Этот метод может быть вызван только из события Модулеинстанцелоад. При отключении модуля обычно также подавляется событие загрузки модуля.

(Унаследовано от DkmModuleInstance)
SetModule(DkmModule, Boolean)

Этот метод вызывается поставщиком символов для связи Дкммодуле с Дкммодулеинстанце и для активации события Модулесимболслоадед. Он может быть вызван для объекта Дкммодулеинстанце только один раз. При вызове этого API будет установлено < - > сопоставление дкммодуле дкммодулеинстанце, а также будет вызвано событие модулесимболслоадед.

(Унаследовано от DkmModuleInstance)
TryLoadBinary()

Попытка загрузить двоичный файл, который ранее не удалось загрузить с использованием обновленных путей к символам.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
TryLoadBinary(DkmWorkList, DkmCompletionRoutine<DkmTryLoadBinaryAsyncResult>)

Попытка загрузить двоичный файл, который ранее не удалось загрузить с использованием обновленных путей к символам.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
TryLoadSymbols()

Вызывается для инициации загрузки символов для Дкммодулеинстанцес, символы которых не были найдены при загрузке модуля.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
TryLoadSymbols(DkmWorkList, DkmCompletionRoutine<DkmTryLoadSymbolsAsyncResult>)

Вызывается для инициации загрузки символов для Дкммодулеинстанцес, символы которых не были найдены при загрузке модуля.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента выполняется асинхронно. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

(Унаследовано от DkmModuleInstance)
Unload()

Пометьте объект выгрузки как выгруженный и уведомите компоненты, реализующие интерфейс приемника событий. Элемент управления возвратит после получения уведомления обо всех компонентах.

Этот метод может вызываться только компонентом, создавшим объект.

(Унаследовано от DkmModuleInstance)

Применяется к