функция обратного вызова PDEBUG_EXTENSION_KNOWN_STRUCT (dbgeng.h)
Обработчик вызывает функцию обратного вызова KnownStructOutput для запроса сведений о структурах, которые библиотека DLL расширения может отформатировать для печати. Подсистема вызывает эту функцию по следующим причинам.
- Получение списка структур, которые библиотека DLL может форматировать для печати.
- Получение однострочного представления определенной структуры.
- Спросите, следует ли выводить имя конкретной структуры вместе с однострочное представление.
Синтаксис
PDEBUG_EXTENSION_KNOWN_STRUCT PdebugExtensionKnownStruct;
HRESULT PdebugExtensionKnownStruct(
[in] ULONG Flags,
[in] ULONG64 Offset,
[in] PSTR TypeName,
[out] PSTR Buffer,
[in, out] PULONG BufferChars
)
{...}
Параметры
[in] Flags
Одно из следующих значений в зависимости от того, какие сведения подсистема хочет получить из библиотеки DLL расширения.
Значение | Описание |
---|---|
DEBUG_KNOWN_STRUCT_GET_NAMES | Получение списка имен структур. |
DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME | Спросите, должно ли быть напечатано имя структуры. |
DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT | Получение однострочного представления структуры. |
[in] Offset
При получении списка имен: Неиспользуемые.
При запросе на печать имени : Неиспользуемые.
При получении однострочного представления: Указывает расположение в адресном пространстве памяти целевого объекта для печатаемой структуры.
[in] TypeName
При получении списка имен: Неиспользуемые.
При запросе на печать имени : Указывает имя структуры. Это одно из имен, возвращаемых запросом DEBUG_KNOWN_STRUCT_GET_NAMES.
При получении однострочного представления: Указывает имя структуры. Это одно из имен, возвращаемых запросом DEBUG_KNOWN_STRUCT_GET_NAMES.
[out] Buffer
При получении списка имен: Получает список имен структур, которые расширение может форматировать для печати. Между каждой парой имен должен быть один пустой символ. Список должен заканчиваться двумя символами NULL. Число символов, записанных в этот буфер, не должно превышать значение BufferSize.
При запросе на печать имени : Неиспользуемые.
При получении однострочного представления: Получает представление структуры, определяемой StructName и Address, в виде строки. Число символов, записанных в этот буфер, не должно превышать значение BufferSize.
[in, out] BufferChars
При получении списка имен: На входных данных указывает размер буфера в символах. На выходе, если буфер слишком мал, получает требуемый размер буфера.
При запросе на печать имени : Неиспользуемые.
При получении однострочного представления: На входных данных указывает размер буфера в символах. На выходе, если буфер слишком мал, получает требуемый размер буфера.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
При получении списка имен: Буфер содержит запрошенный список имен.
При запросе на печать имени : Печать имени должна быть подавлена. То есть имя не должно быть напечатано. При получении однострочного представления: буфер содержит запрошенное однострочное представление. |
|
При получении списка имен: BufferSize был слишком мал для входных данных. На выходе BufferSize содержит требуемый размер буфера.
При запросе на печать имени : Печать имени не должна подавляться. То есть имя должно быть напечатано. При получении однострочного представления: BufferSize был слишком мал для входных данных. На выходе BufferSize содержит требуемый размер буфера. |
Все остальные возвращаемые значения указывают на сбой функции. Подсистема будет по-прежнему игнорировать содержимое buffer.
Комментарии
Эта функция является необязательной. Библиотека DLL расширения должна экспортировать KnownStructOutput только в том случае, если она имеет возможность форматирования специальных структур для печати в одной строке. Подсистема ищет эту функцию по имени в библиотеке DLL расширения.
После инициализации библиотеки DLL расширения подсистема вызывает эту функцию, чтобы запросить у библиотеки DLL список имен структур, которые она умеет печатать. Затем, когда подсистема выводит сводку одной из структур, имя которой находится в списке, он вызывает эту функцию для форматирования структуры для печати.
KnownStructOutput вызывается PDEBUG_EXTENSION_KNOWN_STRUCT в файле заголовка Dbgeng.h.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h |