PDEBUG_EXTENSION_KNOWN_STRUCT função de retorno de chamada (dbgeng.h)
O mecanismo chama a função de retorno de chamada KnownStructOutput para solicitar informações sobre estruturas que a DLL de extensão pode formatar para impressão. O mecanismo chama essa função pelos seguintes motivos.
- Obtenha uma lista de estruturas que a DLL pode formatar para impressão.
- Obtenha uma representação de linha única de uma estrutura específica.
- Pergunte se uma estrutura específica deve ter seu nome impresso junto com sua representação de linha única.
Sintaxe
PDEBUG_EXTENSION_KNOWN_STRUCT PdebugExtensionKnownStruct;
HRESULT PdebugExtensionKnownStruct(
[in] ULONG Flags,
[in] ULONG64 Offset,
[in] PSTR TypeName,
[out] PSTR Buffer,
[in, out] PULONG BufferChars
)
{...}
Parâmetros
[in] Flags
Um dos valores a seguir, dependendo de quais informações o mecanismo deseja obter da DLL de extensão.
Valor | Descrição |
---|---|
DEBUG_KNOWN_STRUCT_GET_NAMES | Obtenha uma lista de nomes de estrutura. |
DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME | Pergunte se uma estrutura deve ter seu nome impresso. |
DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT | Obtenha uma representação de linha única de uma estrutura. |
[in] Offset
Ao obter uma lista de nomes: Utilizadas.
Ao perguntar se um nome deve ser impresso: Utilizadas.
Ao obter uma representação de linha única: Especifica o local no espaço de endereço de memória do destino da estrutura a ser impressa.
[in] TypeName
Ao obter uma lista de nomes: Utilizadas.
Ao perguntar se um nome deve ser impresso: Especifica o nome da estrutura. Esse é um dos nomes retornados da consulta DEBUG_KNOWN_STRUCT_GET_NAMES.
Ao obter uma representação de linha única: Especifica o nome da estrutura. Esse é um dos nomes retornados da consulta DEBUG_KNOWN_STRUCT_GET_NAMES.
[out] Buffer
Ao obter uma lista de nomes: Recebe uma lista dos nomes das estruturas que a extensão pode formatar para impressão. Um caractere nulo deve aparecer entre cada par de nomes. A lista deve ser encerrada com dois caracteres nulos. O número de caracteres gravados nesse buffer não deve exceder o valor de BufferSize.
Ao perguntar se um nome deve ser impresso: Utilizadas.
Ao obter uma representação de linha única: Recebe uma representação da estrutura, identificada por StructName e Address, como uma cadeia de caracteres. O número de caracteres gravados nesse buffer não deve exceder o valor de BufferSize.
[in, out] BufferChars
Ao obter uma lista de nomes: Na entrada, especifica o tamanho, em caracteres, de Buffer. Na saída, se o buffer for muito pequeno, receberá o tamanho do buffer necessário.
Ao perguntar se um nome deve ser impresso: Utilizadas.
Ao obter uma representação de linha única: Na entrada, especifica o tamanho, em caracteres, de Buffer. Na saída, se o buffer for muito pequeno, receberá o tamanho do buffer necessário.
Retornar valor
Código de retorno | Descrição |
---|---|
|
Ao obter uma lista de nomes: o buffer contém a lista solicitada de nomes.
Ao perguntar se um nome deve ser impresso: A impressão do nome deve ser suprimida. Ou seja, o nome não deve ser impresso. Ao obter uma representação de linha única: o buffer contém a representação de linha única solicitada. |
|
Ao obter uma lista de nomes: BufferSize era muito pequeno na entrada. Na saída, BufferSize contém o tamanho do buffer necessário.
Ao perguntar se um nome deve ser impresso: A impressão do nome não deve ser suprimida. Ou seja, o nome deve ser impresso. Ao obter uma representação de linha única: BufferSize era muito pequeno na entrada. Na saída, BufferSize contém o tamanho do buffer necessário. |
Todos os outros valores retornados indicam que a função falhou. O mecanismo continuará ignorando o conteúdo do Buffer.
Comentários
Essa função é opcional. Uma DLL de extensão só precisará exportar KnownStructOutput se ela tiver a capacidade de formatar estruturas especiais para impressão em uma única linha. O mecanismo procura essa função por nome na DLL de extensão.
Depois de inicializar a DLL de extensão, o mecanismo chama essa função para consultar a DLL para obter a lista de nomes de estrutura que ele sabe imprimir. Em seguida, sempre que o mecanismo imprime um resumo de uma das estruturas cujo nome está na lista, ele chama essa função para formatar a estrutura para impressão.
KnownStructOutput é chamado PDEBUG_EXTENSION_KNOWN_STRUCT no arquivo de cabeçalho Dbgeng.h.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | dbgeng.h |