Auf Englisch lesen

Teilen über


SYM_DUMP_PARAM Struktur (wdbgexts.h)

Der IG_DUMP_SYMBOL_INFO Ioctl--Vorgang enthält Informationen zum Typ eines Symbols. Beim Aufrufen von Ioctl mit IoctlType- auf IG_DUMP_SYMBOL_INFO festgelegt, sollte IpvData- eine Instanz der SYM_DUMP_PARAM-Struktur enthalten.

Syntax

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;

Angehörige

size

Gibt die Größe dieser Struktur in Bytes an. Es sollte auf sizeof(SYM_DUMP_PARAM)festgelegt werden.

sName

Gibt den Namen des Symbols an, das nachschlagen soll.

Options

Gibt die Flags an, die das Verhalten dieses Ioctl Vorgangs bestimmen. Eine Beschreibung dieser Kennzeichnungen finden Sie in den Hinweisen.

addr

Gibt die Adresse des Symbols an.

listLink

Gibt das Feld an, das das nächste Element in einer verknüpften Liste enthält. Wenn es sich bei dem Symbol um einen Eintrag in einer verknüpften Liste handelt, kann diese Ioctl- Vorgang die Elemente in der Liste durchlaufen, wobei das hier angegebene Feld als Zeiger auf das nächste Element in der Liste verwendet wird. Der Typ dieser Struktur ist FIELD_INFO.

Die im fieldCallBack Element dieser Struktur angegebene Rückruffunktion wird während dieses Ioctl Vorgangs für jedes Element in der Liste aufgerufen. Wenn sie aufgerufen wird, wird diese linkList- Struktur mit den Elementen übergeben, die für den Listeneintrag sowie den Inhalt des Context Members ausgefüllt sind.

DBG_DUMP_LIST sollte in Optionen festgelegt werden, um diese Ioctl über die Liste zu durchlaufen.

Context

Gibt einen Zeiger an, der an die Rückruffunktion im CallbackRoutine-element und auf die Rückruffunktionen im fieldCallBack Member der linkList und Fields Member übergeben wird.

pBuffer

Gibt einen Puffer an, der Informationen zum Symbol empfängt. Dieser Puffer wird nur verwendet, wenn das DBG_DUMP_COPY_TYPE_DATA-Flag in Optionenfestgelegt ist. Die Größe dieses Puffers wird in BufferSizeangegeben.

CallbackRoutine

Gibt eine Rückruffunktion an, die vom Modul aufgerufen wird. Das Modul stellt die Rückruffunktion mit Informationen zum Symbol und seinen Membern bereit.

nFields

Gibt die Anzahl der Einträge im Fields Array an.

Fields

Gibt ein Array von FIELD_INFO Strukturen an, die das Verhalten dieses Vorgangs für einzelne Elemente des angegebenen Symbols steuern. Weitere Informationen finden Sie unter FIELD_INFO.

ModBase

Empfängt den Speicherort im Speicher des Ziels am Anfang des Moduls, das das Symbol enthält.

TypeId

Empfängt die Typ-ID des Symbols.

TypeSize

Empfängt die Größe des Symbols in Bytes im Speicher des Ziels.

BufferSize

Gibt die Größe des pBuffer- Puffers in Byte an.

fPointer

Empfängt einen booleschen Wert, der angibt, ob das Symbol ein Zeiger ist. fPointer- ist FALSE-, wenn das Symbol kein Zeiger ist. Es ist 1, wenn das Symbol ein 32-Bit-Zeiger und 3 ist, wenn das Symbol ein 64-Bit-Zeiger ist.

fArray

Empfängt einen booleschen Wert, der angibt, ob das Symbol ein Array ist. fArray- ist FALSE-, wenn es sich bei dem Symbol nicht um ein Array handelt, und TRUE wenn dies der Fall ist.

fStruct

Empfängt einen booleschen Wert, der angibt, ob das Symbol eine Struktur ist. fStruct ist FALSE, wenn es sich bei dem Symbol nicht um eine Struktur handelt, und TRUE wenn dies der Fall ist.

fConstant

Empfängt einen booleschen Wert, der angibt, ob das Symbol eine Konstante ist. fConstant- ist FALSE, wenn das Symbol keine Konstante ist, und TRUE wenn dies der Fall ist.

Reserved

Bemerkungen

Die Parameter für den IG_DUMP_SYMBOL_INFO Ioctl--Vorgang sind die Member der SYM_DUMP_PARAM-Struktur.

Mit diesem Ioctl Vorgang werden die Modulinformationen für das Symbol nachschlagen, modulsymbole werden nach Möglichkeit geladen.

Wenn nFields null ist und DBG_DUMP_CALL_FOR_EACH in Optionenfestgelegt wird, wird die in CallbackRou tine angegebene Rückruffunktion für jedes Feld im Symbol aufgerufen.

Wenn nFields- ungleich Null ist und DBG_DUMP_CALL_FOR_EACH in Optionenfestgelegt wird, werden Rückrufe nur für diese Felder vorgenommen, die dem fName Member eines der Fields-Elemente entsprechen. Wenn ein Feld mit einem fName-Element übereinstimmt und das FieldCallBack-element nicht NULL-ist, wird die Rückruffunktion in fieldCallBack- aufgerufen; wenn es NULL-ist, wird stattdessen die Rückruffunktion in CallbackRoutine- aufgerufen.

Die DBG_DUMP_XXX Bitkennzeichnungen werden vom Options-Element Der SYM_DUMP_PARAM Struktur verwendet, um das Verhalten des IG_DUMP_SYMBOL_INFOIoctl Vorgangs zu steuern.

Die folgenden Flags können vorhanden sein.

Flagge Effekt
DBG_DUMP_NO_INDENT Elemente werden in der Ausgabe nicht eingezogen.
DBG_DUMP_NO_OFFSET Offsets werden nicht gedruckt.
DBG_DUMP_VERBOSE Ausführliche Ausgabe.
DBG_DUMP_CALL_FOR_EACH Für jedes Element wird eine Rückruffunktion aufgerufen.
DBG_DUMP_LIST Das Symbol ist ein Eintrag in einer verknüpften Liste, und der IG_DUMP_SYMBOL_INFO Ioctl Vorgang wird über diese Liste durchlaufen. Die Beschreibung des Elements, das auf das nächste Element in der Liste verweist, wird durch das linkList-element Member der SYM_DUMP_PARAM-Struktur angegeben.
DBG_DUMP_NO_PRINT Nichts wird gedruckt (nur Rückruffunktionen werden aufgerufen, und Datenkopien werden ausgeführt).
DBG_DUMP_GET_SIZE_ONLY Der vorgang Ioctl gibt nur die Größe des Symbols zurück; Memberinformationen oder Rückruffunktionen werden nicht gedruckt.
DBG_DUMP_COMPACT_OUT Newlines werden nach jedem Element nicht gedruckt.
DBG_DUMP_ARRAY Das Symbol ist ein Array. Die Anzahl der Elemente im Array wird durch das Element listLink->Größe der SYM_DUMP_PARAM Struktur angegeben.
DBG_DUMP_ADDRESS_OF_FIELD Der Wert addr ist tatsächlich die Adresse des Mitglieds listLink->fName- der SYM_DUMP_PARAM Struktur und nicht der Anfang des Symbols.
DBG_DUMP_ADDRESS_AT_END Der Wert addr ist tatsächlich die Adresse am Ende des Symbols und nicht der Anfang des Symbols.
DBG_DUMP_COPY_TYPE_DATA Der Wert des Symbols wird in das Element pBuffer-kopiert. Dies kann nur für primitive Typen verwendet werden, z. B. ULONG oder PVOID-, es kann nicht mit Strukturen verwendet werden.
DBG_DUMP_READ_PHYSICAL Der Wert des Symbols wird direkt aus dem physischen Speicher des Ziels gelesen.
DBG_DUMP_FUNCTION_FORMAT Beim Formatieren eines Symbols mit einem Funktionstyp wird das Funktionsformat verwendet, z. B. function(arg1, arg2, ...)
DBG_DUMP_BLOCK_RECURSE Rekursieren sie durch geschachtelte Strukturen; aber nicht den Zeigern folgen.
 

Darüber hinaus kann das Ergebnis des Makros DBG_DUMP_RECUR_LEVEL(Ebene) dem Bitsatz hinzugefügt werden, um anzugeben, wie tief in Strukturen rekursiert werden soll. Ebene kann eine Zahl zwischen 0 und 15 sein.

Die DBG_DUMP_FIELD_XXX Bit-Flags werden vom fOptions Member der FIELD_INFO Struktur verwendet, um das Verhalten des IG_DUMP_SYMBOL_INFOIoctl--Vorgangs zu steuern.

Die folgenden Flags können vorhanden sein.

Flagge Effekt
DBG_DUMP_FIELD_CALL_BEFORE_PRINT Die Rückruffunktion wird aufgerufen, bevor das Element gedruckt wird.
DBG_DUMP_FIELD_NO_CALLBACK_REQ Es wird keine Rückruffunktion aufgerufen.
DBG_DUMP_FIELD_RECUR_ON_THIS Untermember des Elements werden verarbeitet.
DBG_DUMP_FIELD_FULL_NAME fName- muss vollständig übereinstimmen, anstatt nur ein passendes Präfix zu haben, damit das Element verarbeitet werden kann.
DBG_DUMP_FIELD_ARRAY Drucken von Arrayelementen eines Arrayelements
DBG_DUMP_FIELD_COPY_FIELD_DATA Der Wert des Elements wird in pBuffer-kopiert.
DBG_DUMP_FIELD_RETURN_ADDRESS Während eines Rückrufs oder wenn Ioctl- zurückgibt, wird die FIELD_INFO.Adresse Mitglied enthält die Adresse des Mitglieds des Symbols.

Wenn für den Typ keine Adresse angegeben wird, FIELD_INFO.Adresse enthält den Gesamtoffset des Elements vom Anfang des Typs.

DBG_DUMP_FIELD_SIZE_IN_BITS Geben Sie für ein Bitfeld den Offset und die Größe in Bits anstelle von Bytes zurück.
DBG_DUMP_FIELD_NO_PRINT Drucken Sie dieses Element nicht (nur Rückruffunktion wird aufgerufen, und Datenkopien werden ausgeführt).
DBG_DUMP_FIELD_DEFAULT_STRING DBG_DUMP_FIELD_WCHAR_STRING DBG_DUMP_FIELD_MULTI_STRING DBG_DUMP_FIELD_GUID_STRING Wenn das Element ein Zeiger ist, wird es als Zeichenfolge, ANSI-Zeichenfolge, WCHAR-Zeichenfolge, MULTI-Zeichenfolge oder GUID gedruckt.
 

Darüber hinaus kann das Ergebnis des Makros DBG_DUMP_RECUR_LEVEL(Ebene) dem Bitsatz hinzugefügt werden, um anzugeben, wie tief in Strukturen rekursiert werden soll. Ebene kann eine Zahl zwischen 0 und 15 sein.

Anforderungen

Anforderung Wert
Header- wdbgexts.h (include Wdbgexts.h, Dbgeng.h)

Siehe auch

DBG_DUMP_XXX

FIELD_INFO

IG_DUMP_SYMBOL_INFO Fehlercodes

Ioctl-