Compartir a través de


estructura SYM_DUMP_PARAM (wdbgexts.h)

La operación de IG_DUMP_SYMBOL_INFO Ioctl proporciona información sobre el tipo de un símbolo. Al llamar a Ioctl con IoctlType establecido en IG_DUMP_SYMBOL_INFO, IpvData debe contener una instancia de la estructura de SYM_DUMP_PARAM.

Sintaxis

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;

Miembros

size

Especifica el tamaño, en bytes, de esta estructura. Se debe establecer en sizeof(SYM_DUMP_PARAM).

sName

Especifica el nombre del símbolo que se va a buscar.

Options

Especifica las marcas que determinan el comportamiento de esta operación de Ioctl . Para obtener una descripción de estas marcas, vea Comentarios.

addr

Especifica la dirección del símbolo.

listLink

Especifica el campo que contiene el siguiente elemento de una lista vinculada. Si el símbolo es una entrada de una lista vinculada, esta operación Ioctl puede iterar por los elementos de la lista mediante el campo especificado aquí como puntero al siguiente elemento de la lista. El tipo de esta estructura es FIELD_INFO.

Se llama a la función de devolución de llamada especificada en el miembro fieldCallBack de esta estructura, durante esta operación Ioctl , para cada elemento de la lista. Cuando se llama a , se pasa esta estructura linkList con los miembros rellenados para la entrada de lista junto con el contenido del miembro Context .

DBG_DUMP_LIST debe establecerse en Opciones para indicar a este Ioctl que itera en la lista.

Context

Especifica un puntero que se pasa a la función de devolución de llamada en el miembro CallbackRoutine y a las funciones de devolución de llamada del miembro fieldCallBack de los miembros linkList y Fields .

pBuffer

Especifica un búfer que recibe información sobre el símbolo. Este búfer solo se usa si la marca DBG_DUMP_COPY_TYPE_DATA está establecida en Opciones. El tamaño de este búfer se especifica en BufferSize.

CallbackRoutine

Especifica una función de devolución de llamada a la que llama el motor. El motor proporciona la función de devolución de llamada con información sobre el símbolo y sus miembros.

nFields

Especifica el número de entradas de la matriz Fields .

Fields

Especifica una matriz de estructuras de FIELD_INFO que controlan el comportamiento de esta operación para miembros individuales del símbolo especificado. Consulte FIELD_INFO para obtener más información.

ModBase

Recibe la ubicación en la memoria del destino del inicio del módulo que contiene el símbolo.

TypeId

Recibe el identificador de tipo del símbolo.

TypeSize

Recibe el tamaño, en bytes, del símbolo en la memoria del destino.

BufferSize

Especifica el tamaño, en bytes, del búfer de pBuffer .

fPointer

Recibe un valor booleano que indica si el símbolo es un puntero. fPointer es FALSE si el símbolo no es un puntero. Es 1 si el símbolo es un puntero de 32 bits y 3 si el símbolo es un puntero de 64 bits.

fArray

Recibe un valor booleano que indica si el símbolo es una matriz. fArray es FALSE si el símbolo no es una matriz y TRUE si es.

fStruct

Recibe un valor booleano que indica si el símbolo es una estructura. fStruct es FALSE si el símbolo no es una estructura y TRUE si es.

fConstant

Recibe un valor booleano que indica si el símbolo es una constante. fConstant es FALSE si el símbolo no es una constante y TRUE si es.

Reserved

Comentarios

Los parámetros de la operación IG_DUMP_SYMBOL_INFO Ioctl son los miembros de la estructura SYM_DUMP_PARAM.

Esta operación Ioctl busca la información del módulo para el símbolo, cargando símbolos de módulo si es posible.

Si nFields es cero y DBG_DUMP_CALL_FOR_EACH se establece en Opciones, se llama a la función de devolución de llamada especificada en CallbackRoutine para cada campo del símbolo.

Si nFields no es cero y DBG_DUMP_CALL_FOR_EACH se establece en Opciones, las devoluciones de llamada solo se realizan para esos campos que coinciden con el miembro fName de uno de los elementos Fields . Si un campo coincide con un miembro fName y el miembro fieldCallBack no es NULL, se llama a la función de devolución de llamada en fieldCallBack ; si es NULL, se llama a la función de devolución de llamada en CallbackRoutine .

El miembro Options de la estructura de SYM_DUMP_PARAM usa las marcas de bits DBG_DUMP_XXX para controlar el comportamiento de la operación de IG_DUMP_SYMBOL_INFOIoctl.

Las marcas siguientes pueden estar presentes.

Marca Efecto
DBG_DUMP_NO_INDENT Los miembros no tienen sangría en la salida.
DBG_DUMP_NO_OFFSET Los desplazamientos no se imprimen.
DBG_DUMP_VERBOSE Salida detallada.
DBG_DUMP_CALL_FOR_EACH Se llama a una función de devolución de llamada para cada miembro.
DBG_DUMP_LIST El símbolo es una entrada de una lista vinculada y la operación de IG_DUMP_SYMBOL_INFO Ioctl iterará en esta lista. La descripción del miembro que apunta al siguiente elemento de la lista se especifica mediante el miembro linkList de la estructura SYM_DUMP_PARAM.
DBG_DUMP_NO_PRINT No se imprime nada (solo se llaman funciones de devolución de llamada y se realizan copias de datos).
DBG_DUMP_GET_SIZE_ONLY La operación Ioctl devuelve el tamaño del símbolo solo; no imprimirá información de miembro ni funciones de devolución de llamada.
DBG_DUMP_COMPACT_OUT Las líneas nuevas no se imprimen después de cada miembro.
DBG_DUMP_ARRAY El símbolo es una matriz. El número de elementos de la matriz se especifica mediante el tamaño listLink-> miembro de la estructura SYM_DUMP_PARAM.
DBG_DUMP_ADDRESS_OF_FIELD El valor del agregador es realmente la dirección del miembro listLink->fName de la estructura SYM_DUMP_PARAM y no el principio del símbolo.
DBG_DUMP_ADDRESS_AT_END El valor del agregador es realmente la dirección al final del símbolo y no el principio del símbolo.
DBG_DUMP_COPY_TYPE_DATA El valor del símbolo se copia en el miembro pBuffer. Esto solo se puede usar para tipos primitivos(por ejemplo, ULONG o PVOID), no se puede usar con estructuras.
DBG_DUMP_READ_PHYSICAL El valor del símbolo se leerá directamente desde la memoria física del destino.
DBG_DUMP_FUNCTION_FORMAT Al dar formato a un símbolo que tiene un tipo de función, se usará el formato de función, por ejemplo, function(arg1, arg2, ...)
DBG_DUMP_BLOCK_RECURSE Recurse a través de estructuras anidadas; pero no siguen punteros.
 

Además, el resultado de la macro DBG_DUMP_RECUR_LEVEL(Level) se puede agregar al conjunto de bits para especificar la profundidad en las estructuras que se van a recurse. El nivel puede ser un número comprendido entre 0 y 15.

El miembro fOptions de la estructura de FIELD_INFO usa las marcas de bits DBG_DUMP_FIELD_XXX para controlar el comportamiento de la operación de IG_DUMP_SYMBOL_INFOIoctl.

Las marcas siguientes pueden estar presentes.

Marca Efecto
DBG_DUMP_FIELD_CALL_BEFORE_PRINT Se llama a la función de devolución de llamada antes de imprimir el miembro.
DBG_DUMP_FIELD_NO_CALLBACK_REQ No se llama a ninguna función de devolución de llamada.
DBG_DUMP_FIELD_RECUR_ON_THIS Se procesan los submembrados del miembro.
DBG_DUMP_FIELD_FULL_NAME fName debe coincidir completamente, en lugar de tener un prefijo coincidente, para que el miembro se procese.
DBG_DUMP_FIELD_ARRAY Imprimir elementos de matriz de un miembro de matriz.
DBG_DUMP_FIELD_COPY_FIELD_DATA El valor del miembro se copia en pBuffer.
DBG_DUMP_FIELD_RETURN_ADDRESS Durante una devolución de llamada o cuando se devuelve Ioctl , el FIELD_INFO. el miembro address contiene la dirección del miembro del símbolo.

Si no se proporciona ninguna dirección para el tipo, FIELD_INFO. address contiene el desplazamiento total del miembro desde el principio del tipo.

DBG_DUMP_FIELD_SIZE_IN_BITS Para un campo de bits, devuelve el desplazamiento y el tamaño en bits en lugar de bytes.
DBG_DUMP_FIELD_NO_PRINT No imprima este miembro (solo se llama a la función de devolución de llamada y se realizan copias de datos).
DBG_DUMP_FIELD_DEFAULT_STRING DBG_DUMP_FIELD_WCHAR_STRING DBG_DUMP_FIELD_MULTI_STRING DBG_DUMP_FIELD_GUID_STRING Si el miembro es un puntero, se imprime como una cadena, una cadena ANSI, una cadena WCHAR, una cadena MULTI o un GUID.
 

Además, el resultado de la macro DBG_DUMP_RECUR_LEVEL(Level) se puede agregar al conjunto de bits para especificar la profundidad en las estructuras que se van a recursar. El nivel puede ser un número comprendido entre 0 y 15.

Requisitos

Requisito Valor
Header wdbgexts.h (include Wdbgexts.h, Dbgeng.h)

Consulte también

DBG_DUMP_XXX

FIELD_INFO

códigos de error de IG_DUMP_SYMBOL_INFO

Ioctl