Compartilhar via


estrutura SYM_DUMP_PARAM (wdbgexts.h)

A operação IG_DUMP_SYMBOL_INFO Ioctl fornece informações sobre o tipo de símbolo. Ao chamar Ioctl com IoctlType definido como IG_DUMP_SYMBOL_INFO, IpvData deve conter uma instância da estrutura SYM_DUMP_PARAM.

Sintaxe

typedef struct _SYM_DUMP_PARAM {
  ULONG                    size;
  PUCHAR                   sName;
  ULONG                    Options;
  ULONG64                  addr;
  PFIELD_INFO              listLink;
  union {
    PVOID Context;
    PVOID pBuffer;
  };
  PSYM_DUMP_FIELD_CALLBACK CallbackRoutine;
  ULONG                    nFields;
  PFIELD_INFO              Fields;
  ULONG64                  ModBase;
  ULONG                    TypeId;
  ULONG                    TypeSize;
  ULONG                    BufferSize;
  ULONG                    fPointer : 2;
  ULONG                    fArray : 1;
  ULONG                    fStruct : 1;
  ULONG                    fConstant : 1;
  ULONG                    Reserved : 27;
} SYM_DUMP_PARAM, *PSYM_DUMP_PARAM;

Membros

size

Especifica o tamanho, em bytes, dessa estrutura. Ele deve ser definido como sizeof(SYM_DUMP_PARAM).

sName

Especifica o nome do símbolo a ser pesquisado.

Options

Especifica os sinalizadores que determinam o comportamento dessa operação de Ioctl. Para obter uma descrição desses sinalizadores, consulte Comentários.

addr

Especifica o endereço do símbolo.

listLink

Especifica o campo que contém o próximo item em uma lista vinculada. Se o símbolo for uma entrada em uma lista vinculada, esta operação ioctl poderá iterar sobre os itens na lista usando o campo especificado aqui como o ponteiro para o próximo item na lista. O tipo dessa estrutura é FIELD_INFO.

A função de retorno de chamada especificada no fieldCallBack membro dessa estrutura é chamada, durante esta operação de Ioctl, para cada item na lista. Quando ele é chamado, é passado essa estrutura de linkList com os membros preenchidos para a entrada de lista juntamente com o conteúdo do membro de Contexto.

DBG_DUMP_LIST deve ser definido em Opções para informar a este Ioctl para iterar na lista.

Context

Especifica um ponteiro que é passado para a função de retorno de chamada no membro CallbackRoutine e para as funções de retorno de chamada no fieldCallBack membros do linkList e Fields membros.

pBuffer

Especifica um buffer que recebe informações sobre o símbolo. Esse buffer só será usado se o sinalizador de DBG_DUMP_COPY_TYPE_DATA estiver definido em Opções. O tamanho desse buffer é especificado em bufferSize.

CallbackRoutine

Especifica uma função de retorno de chamada que é chamada pelo mecanismo. O mecanismo fornece à função de retorno de chamada informações sobre o símbolo e seus membros.

nFields

Especifica o número de entradas na matriz Campos.

Fields

Especifica uma matriz de estruturas de FIELD_INFO que controlam o comportamento dessa operação para membros individuais do símbolo especificado. Consulte FIELD_INFO para obter detalhes.

ModBase

Recebe o local na memória do destino do início do módulo que contém o símbolo.

TypeId

Recebe a ID do tipo do símbolo.

TypeSize

Recebe o tamanho, em bytes, do símbolo na memória do destino.

BufferSize

Especifica o tamanho, em bytes, do buffer de do pBuffer.

fPointer

Recebe um valor booliano que indica se o símbolo é um ponteiro. fPointer será FALSE se o símbolo não for um ponteiro. Será 1 se o símbolo for um ponteiro de 32 bits e 3 se o símbolo for um ponteiro de 64 bits.

fArray

Recebe um valor booliano que indica se o símbolo é uma matriz. fArray será FALSE se o símbolo não for uma matriz e verdadeiro se for.

fStruct

Recebe um valor booliano que indica se o símbolo é uma estrutura. fStruct será FALSE se o símbolo não for uma estrutura e verdadeiro se for.

fConstant

Recebe um valor booliano que indica se o símbolo é uma constante. fConstant será FALSE se o símbolo não for uma constante e VERDADEIRO se for.

Reserved

Observações

Os parâmetros da operação IG_DUMP_SYMBOL_INFO Ioctl são os membros da estrutura SYM_DUMP_PARAM.

Este operação Ioctl pesquisa as informações do módulo para o símbolo, carregando símbolos de módulo, se possível.

Se nFields for zero e DBG_DUMP_CALL_FOR_EACH estiver definido em Opções, a função de retorno de chamada especificada em CallbackRoutine será chamada para cada campo no símbolo.

Se nFields não for zero e DBG_DUMP_CALL_FOR_EACH estiver definido em Opções, os retornos de chamada serão feitos apenas para esses campos correspondentes ao membro fName de um dos elementos campos. Se um campo corresponder a um membro fName e o membro fieldCallBack não for NULL, a função de retorno de chamada no fieldCallBack será chamada; se for NULL, a função de retorno de chamada em CallbackRoutine será chamada.

Os sinalizadores de bitsXXX DBG_DUMP_ são usados pelo membro opções da estrutura SYM_DUMP_PARAM para controlar o comportamento da operação deIG_DUMP_SYMBOL_INFO Ioctl.

Os sinalizadores a seguir podem estar presentes.

Bandeira Efeito
DBG_DUMP_NO_INDENT Os membros não são recuados na saída.
DBG_DUMP_NO_OFFSET Os deslocamentos não são impressos.
DBG_DUMP_VERBOSE Saída detalhada.
DBG_DUMP_CALL_FOR_EACH Uma função de retorno de chamada é chamada para cada membro.
DBG_DUMP_LIST O símbolo é uma entrada em uma lista vinculada e a operação IG_DUMP_SYMBOL_INFO Ioctl iterará nessa lista. A descrição do membro que aponta para o próximo item na lista é especificada pelo linkList membro da estrutura SYM_DUMP_PARAM.
DBG_DUMP_NO_PRINT Nada é impresso (somente funções de retorno de chamada são chamadas e cópias de dados são executadas).
DBG_DUMP_GET_SIZE_ONLY A operação Ioctl retorna o tamanho apenas do símbolo; ele não imprimirá informações de membro ou chamará funções de retorno de chamada.
DBG_DUMP_COMPACT_OUT As novas linhas não são impressas após cada membro.
DBG_DUMP_ARRAY O símbolo é uma matriz. O número de elementos na matriz é especificado pelo membro listLink->tamanho da estrutura SYM_DUMP_PARAM.
DBG_DUMP_ADDRESS_OF_FIELD O valor de do suplemento é, na verdade, o endereço do membro listLink-> fName da estrutura SYM_DUMP_PARAM e não o início do símbolo.
DBG_DUMP_ADDRESS_AT_END O valor de de adição é, na verdade, o endereço no final do símbolo e não o início do símbolo.
DBG_DUMP_COPY_TYPE_DATA O valor do símbolo é copiado para o membro pBuffer. Isso só pode ser usado para tipos primitivos, por exemplo, ULONG ou PVOID, que não podem ser usados com estruturas.
DBG_DUMP_READ_PHYSICAL O valor do símbolo será lido diretamente da memória física do destino.
DBG_DUMP_FUNCTION_FORMAT Ao formatar um símbolo que tenha um tipo de função, o formato de função será usado, por exemplo, function(arg1, arg2, ...)
DBG_DUMP_BLOCK_RECURSE Recorra por meio de estruturas aninhadas; mas não siga ponteiros.
 

Além disso, o resultado da macro DBG_DUMP_RECUR_LEVEL(Level) pode ser adicionado ao conjunto de bits para especificar a profundidade das estruturas a serem recursadas. Nível pode ser um número entre 0 e 15.

Os sinalizadores de bits deXXX DBG_DUMP_FIELD_ XXX são usados pelo membro fOptions da estrutura FIELD_INFO para controlar o comportamento da operação deIG_DUMP_SYMBOL_INFO Ioctl.

Os sinalizadores a seguir podem estar presentes.

Bandeira Efeito
DBG_DUMP_FIELD_CALL_BEFORE_PRINT A função de retorno de chamada é chamada antes de imprimir o membro.
DBG_DUMP_FIELD_NO_CALLBACK_REQ Nenhuma função de retorno de chamada é chamada.
DBG_DUMP_FIELD_RECUR_ON_THIS Submembros do membro são processados.
DBG_DUMP_FIELD_FULL_NAME fName deve corresponder completamente, em vez de ter apenas um prefixo correspondente, para que o membro seja processado.
DBG_DUMP_FIELD_ARRAY Imprimir elementos de matriz de um membro da matriz.
DBG_DUMP_FIELD_COPY_FIELD_DATA O valor do membro é copiado para pBuffer.
DBG_DUMP_FIELD_RETURN_ADDRESS Durante um retorno de chamada ou quando Ioctl retorna, o FIELD_INFO.endereço membro contém o endereço do membro do símbolo.

Se nenhum endereço for fornecido para o tipo, FIELD_INFO.endereço contém o deslocamento total do membro desde o início do tipo.

DBG_DUMP_FIELD_SIZE_IN_BITS Para um campo de bits, retorne o deslocamento e o tamanho em bits em vez de bytes.
DBG_DUMP_FIELD_NO_PRINT Não imprima esse membro (somente a função de retorno de chamada é chamada e as cópias de dados são executadas).
DBG_DUMP_FIELD_DEFAULT_STRING DBG_DUMP_FIELD_WCHAR_STRING DBG_DUMP_FIELD_MULTI_STRING DBG_DUMP_FIELD_GUID_STRING Se o membro for um ponteiro, ele será impresso como uma cadeia de caracteres, cadeia de caracteres ANSI, cadeia de caracteres WCHAR, CADEIA DE CARACTERES MULTI ou GUID.
 

Além disso, o resultado da macro DBG_DUMP_RECUR_LEVEL(Level) pode ser adicionado ao conjunto de bits para especificar a profundidade das estruturas a serem recursadas. Nível pode ser um número entre 0 e 15.

Requisitos

Requisito Valor
cabeçalho wdbgexts.h (inclua Wdbgexts.h, Dbgeng.h)

Consulte também

DBG_DUMP_XXX

FIELD_INFO

IG_DUMP_SYMBOL_INFO códigos de erro

Ioctl