Condividi tramite


SYM_DUMP_PARAM struttura (wdbgexts.h)

L'operazione IG_DUMP_SYMBOL_INFO Ioctl fornisce informazioni sul tipo di un simbolo. Quando si chiama Ioctl con IoctlType impostato su IG_DUMP_SYMBOL_INFO, IpvData deve contenere un'istanza della struttura SYM_DUMP_PARAM.

Sintassi

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;

Members

size

Specifica le dimensioni, in byte, di questa struttura. Deve essere impostato su sizeof(SYM_DUMP_PARAM).

sName

Specifica il nome del simbolo da cercare.

Options

Specifica i flag che determinano il comportamento di questa operazione Ioctl . Per una descrizione di questi flag, vedere Osservazioni.

addr

Specifica l'indirizzo del simbolo.

listLink

Specifica il campo contenente l'elemento successivo in un elenco collegato. Se il simbolo è una voce in un elenco collegato, questa operazione Ioctl può scorrere gli elementi nell'elenco usando il campo specificato qui come puntatore all'elemento successivo nell'elenco. Il tipo di questa struttura è FIELD_INFO.

La funzione di callback specificata nel campoCallBack membro di questa struttura viene chiamata, durante questa operazione Ioctl , per ogni elemento dell'elenco. Quando viene chiamato, viene passata questa struttura linkList con i membri compilati per la voce dell'elenco insieme al contenuto del membro Context .

DBG_DUMP_LIST deve essere impostato in Opzioni per indicare a Ioctl di eseguire l'iterazione nell'elenco.

Context

Specifica un puntatore passato alla funzione callback nel membro CallbackRoutine e alle funzioni di callback nel campoCallBack dei membri linkList e Fields .

pBuffer

Specifica un buffer che riceve informazioni sul simbolo. Questo buffer viene usato solo se il flag di DBG_DUMP_COPY_TYPE_DATA è impostato in Opzioni. Le dimensioni di questo buffer vengono specificate in BufferSize.

CallbackRoutine

Specifica una funzione di callback chiamata dal motore. Il motore fornisce la funzione di callback con informazioni sul simbolo e sui relativi membri.

nFields

Specifica il numero di voci nella matrice Campi .

Fields

Specifica una matrice di strutture FIELD_INFO che controllano il comportamento di questa operazione per singoli membri del simbolo specificato. Per informazioni dettagliate, vedere FIELD_INFO.

ModBase

Riceve la posizione nella memoria della destinazione dell'inizio del modulo che contiene il simbolo.

TypeId

Riceve l'ID del tipo del simbolo.

TypeSize

Riceve le dimensioni, in byte, del simbolo nella memoria della destinazione.

BufferSize

Specifica le dimensioni, in byte, del buffer pBuffer .

fPointer

Riceve un valore booleano che indica se il simbolo è un puntatore. fPointer è FALSE se il simbolo non è un puntatore. È 1 se il simbolo è un puntatore a 32 bit e 3 se il simbolo è un puntatore a 64 bit.

fArray

Riceve un valore booleano che indica se il simbolo è una matrice. fArray è FALSE se il simbolo non è una matrice e TRUE se è.

fStruct

Riceve un valore booleano che indica se il simbolo è una struttura. fStruct è FALSE se il simbolo non è una struttura e TRUE se è.

fConstant

Riceve un valore booleano che indica se il simbolo è una costante. fConstant è FALSE se il simbolo non è una costante e TRUE se è.

Reserved

Commenti

I parametri per l'operazione Ioctl IG_DUMP_SYMBOL_INFO sono i membri della struttura SYM_DUMP_PARAM.

Questa operazione Ioctl cerca le informazioni sul modulo per il simbolo, caricando i simboli del modulo, se possibile.

Se nFields è zero e DBG_DUMP_CALL_FOR_EACH è impostato in Opzioni, la funzione di callback specificata in CallbackRoutine viene chiamata per ogni campo nel simbolo.

Se nFields è diverso da zero e DBG_DUMP_CALL_FOR_EACH è impostato in Opzioni, i callback vengono eseguiti solo per tali campi che corrispondono al membro fName di uno degli elementi Fields . Se un campo corrisponde a un membro fName e il membro fieldCallBack non è NULL, viene chiamata la funzione callback nel campoCallBack ; se è NULL, la funzione di callback in CallbackRoutine viene invece chiamata.

I flag di bit DBG_DUMP_XXX vengono usati dal membro Opzioni della struttura SYM_DUMP_PARAM per controllare il comportamento dell'operazioneIoctl IG_DUMP_SYMBOL_INFO.

I flag seguenti possono essere presenti.

Contrassegno Effetto
DBG_DUMP_NO_INDENT I membri non vengono rientri nell'output.
DBG_DUMP_NO_OFFSET Gli offset non vengono stampati.
DBG_DUMP_VERBOSE Output dettagliato.
DBG_DUMP_CALL_FOR_EACH Viene chiamata una funzione di callback per ogni membro.
DBG_DUMP_LIST Il simbolo è una voce in un elenco collegato e l'operazione IG_DUMP_SYMBOL_INFO Ioctl eseguirà l'iterazione su questo elenco. La descrizione del membro che punta all'elemento successivo nell'elenco viene specificata dal membro linkList della struttura SYM_DUMP_PARAM.
DBG_DUMP_NO_PRINT Niente viene stampato (vengono chiamate solo le funzioni di callback e vengono eseguite copie dei dati).
DBG_DUMP_GET_SIZE_ONLY L'operazione Ioctl restituisce solo le dimensioni del simbolo; non stampa le informazioni sui membri o le funzioni di callback.
DBG_DUMP_COMPACT_OUT Le nuove linee non vengono stampate dopo ogni membro.
DBG_DUMP_ARRAY Il simbolo è una matrice. Il numero di elementi nella matrice viene specificato dalla dimensione del membro listLink-> della struttura SYM_DUMP_PARAM.
DBG_DUMP_ADDRESS_OF_FIELD Il valore di addr è effettivamente l'indirizzo dell'elenco membriLink->fName della struttura SYM_DUMP_PARAM e non l'inizio del simbolo.
DBG_DUMP_ADDRESS_AT_END Il valore di addr è effettivamente l'indirizzo alla fine del simbolo e non l'inizio del simbolo.
DBG_DUMP_COPY_TYPE_DATA Il valore del simbolo viene copiato nel membro pBuffer. Questo può essere usato solo per i tipi primitivi, ad esempio ULONG o PVOID, non può essere usato con strutture.
DBG_DUMP_READ_PHYSICAL Il valore del simbolo verrà letto direttamente dalla memoria fisica della destinazione.
DBG_DUMP_FUNCTION_FORMAT Quando si formatta un simbolo con un tipo di funzione, verrà usato il formato della funzione, ad esempio function(arg1, arg2, ...)
DBG_DUMP_BLOCK_RECURSE Si ripete attraverso strutture nidificate; ma non seguire i puntatori.
 

Inoltre, il risultato della macro DBG_DUMP_RECUR_LEVEL(Livello) può essere aggiunto al set di bit per specificare la profondità delle strutture da ricreare. Il livello può essere un numero compreso tra 0 e 15.

I flag di bit DBG_DUMP_FIELD_XXX vengono usati dal membro fOptionsdella struttura FIELD_INFO per controllare il comportamento dell'operazioneIoctl IG_DUMP_SYMBOL_INFO.

I flag seguenti possono essere presenti.

Contrassegno Effetto
DBG_DUMP_FIELD_CALL_BEFORE_PRINT La funzione di callback viene chiamata prima di stampare il membro.
DBG_DUMP_FIELD_NO_CALLBACK_REQ Non viene chiamata alcuna funzione di callback.
DBG_DUMP_FIELD_RECUR_ON_THIS I sottomember del membro vengono elaborati.
DBG_DUMP_FIELD_FULL_NAME fName deve corrispondere completamente, anziché solo avere un prefisso corrispondente, affinché il membro venga elaborato.
DBG_DUMP_FIELD_ARRAY Stampare gli elementi della matrice di un membro della matrice.
DBG_DUMP_FIELD_COPY_FIELD_DATA Il valore del membro viene copiato in pBuffer.
DBG_DUMP_FIELD_RETURN_ADDRESS Durante un callback o quando Ioctl restituisce, il FIELD_INFO. il membro dell'indirizzo contiene l'indirizzo del membro del simbolo.

Se non viene fornito alcun indirizzo per il tipo, FIELD_INFO. l'indirizzo contiene l'offset totale del membro dall'inizio del tipo.

DBG_DUMP_FIELD_SIZE_IN_BITS Per un campo bit, restituire l'offset e le dimensioni in bit anziché byte.
DBG_DUMP_FIELD_NO_PRINT Non stampare questo membro (viene chiamata solo la funzione callback e vengono eseguite copie dei dati).
DBG_DUMP_FIELD_DEFAULT_STRING DBG_DUMP_FIELD_WCHAR_STRING DBG_DUMP_FIELD_MULTI_STRING DBG_DUMP_FIELD_GUID_STRING Se il membro è un puntatore, viene stampato come stringa, stringa ANSI , stringa WCHAR, STRINGA MULTI o GUID.
 

Inoltre, il risultato della macro DBG_DUMP_RECUR_LEVEL(Livello) può essere aggiunto al set di bit per specificare la profondità delle strutture da ricreare. Il livello può essere un numero compreso tra 0 e 15.

Requisiti

Requisito Valore
Intestazione wdbgexts.h (include Wdbgexts.h, Dbgeng.h)

Vedi anche

DBG_DUMP_XXX

FIELD_INFO

codici di errore IG_DUMP_SYMBOL_INFO

Ioctl