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) |