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 SYM_DUMP_PARAM.

Sintaxis

C++
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. Debe establecerse 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 sobre los elementos de la lista con 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 campoCallBack miembro de esta estructura, durante esta operación de 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 de.

DBG_DUMP_LIST debe establecerse en Opciones para indicar a este Ioctl para iterar 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 en el fieldCallBack miembro del linkList y Fields miembros.

pBuffer

Especifica un búfer que recibe información sobre el símbolo. Este búfer solo se usa si la marca de 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 FIELD_INFO estructuras 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

Observaciones

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

Esta operación de 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 Options, se llama a la función de devolución de llamada especificada en callbackRoutine para cada campo del símbolo.

Si nFields es distinto de 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 Campos. Si un campo coincide con un miembro de 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.

Las marcas de bits deXXX DBG_DUMP_ XXX se usan en el miembro Options de la estructura de SYM_DUMP_PARAM para controlar el comportamiento de la operación dede IG_DUMP_SYMBOL_INFO Ioctl.

Las marcas siguientes pueden estar presentes.

Bandera 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 IG_DUMP_SYMBOL_INFO Ioctl itera en esta lista. La descripción del miembro que apunta al siguiente elemento de la lista se especifica mediante el linkList miembro 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 solo el tamaño del símbolo; no imprimirá información de miembro ni funciones de devolución de llamada.
DBG_DUMP_COMPACT_OUT Las nuevas líneas 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 miembro listLink->tamaño de la estructura de SYM_DUMP_PARAM.
DBG_DUMP_ADDRESS_OF_FIELD El valor de addr es en realidad 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 de addr 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 repetir. Nivel puede ser un número comprendido entre 0 y 15.

El DBG_DUMP_FIELD_ marcadores de bits xxx se usa en el miembro fOptions de la estructura FIELD_INFO para controlar el comportamiento de la operación dede IG_DUMP_SYMBOL_INFO Ioctl.

Las marcas siguientes pueden estar presentes.

Bandera 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 Los submembrados del miembro se procesan.
DBG_DUMP_FIELD_FULL_NAME fName debe coincidir completamente, en lugar de tener solo 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.dirección miembro contiene la dirección del miembro del símbolo.

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

DBG_DUMP_FIELD_SIZE_IN_BITS Para un campo de bits, devuelva 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 repetir. Nivel puede ser un número comprendido entre 0 y 15.

Requisitos

Requisito Valor
encabezado de wdbgexts.h (incluya Wdbgexts.h, Dbgeng.h)

Consulte también

DBG_DUMP_XXX

FIELD_INFO

IG_DUMP_SYMBOL_INFO códigos de error

Ioctl