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.
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;
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
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.
Anforderung | Wert |
---|---|
Header- | wdbgexts.h (include Wdbgexts.h, Dbgeng.h) |