Функция обратного вызова ExtExtension::* ExtKnownStructMethod (engextcpp.hpp)
Метод обратного вызова ExtKnownStructMethod вызывается подсистемой для форматирования экземпляра структуры для вывода в одной строке.
Синтаксис
ExtExtension::* ExtKnownStructMethod Extextension::*Extknownstructmethod;
void Extextension::*Extknownstructmethod(
[in] PCSTR TypeName,
[in] ULONG Flags,
[in] ULONG64 Offset
)
{...}
Параметры
[in] TypeName
Указывает имя типа структуры, на которую указывает offset. Это то же самое, что и поле TypeName структуры ExtKnownStruct , используемой для регистрации этого метода обратного вызова.
[in] Flags
Указывает битовые флаги, указывающие способ форматирования выходных данных. В настоящее время для этого параметра задано значение DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT, что означает, что выходные данные должны быть отформатированы для вывода в одной строке.
[in] Offset
Указывает расположение в памяти целевого объекта экземпляра структуры, отформатированного для вывода.
Возвращаемое значение
None
Remarks
Подсистема отладчика ожидает, что выходные данные будут отформатированы для печати в одной строке, поэтому он не ожидает, что форматированная структура будет иметь разрывы строк.
Форматированные выходные данные этого метода должны быть помещены в буфер m_AppendBuffer — член ExtExtension.
Экземпляры этого метода обратного вызова регистрируются в подсистеме с помощью экземпляра структуры ExtKnownStruct , который помещается в массив m_KnownStructs (член ExtExtension) методом Initialize . Структура ExtKnownStruct также указывает имя типа структуры, форматирует этот метод.
Когда подсистема отладчика вызывает известный метод структуры, он заключает вызов в блок try/except . Это защищает подсистему от некоторых типов ошибок в коде расширения; Но поскольку вызовы расширения выполняются в том же потоке, что и подсистема, они все равно могут привести к сбою.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | engextcpp.hpp (включая Engextcpp.hpp) |