Freigeben über


SYMBOL_INFOW-Struktur (dbghelp.h)

Enthält Symbolinformationen.

Syntax

typedef struct _SYMBOL_INFOW {
  ULONG   SizeOfStruct;
  ULONG   TypeIndex;
  ULONG64 Reserved[2];
  ULONG   Index;
  ULONG   Size;
  ULONG64 ModBase;
  ULONG   Flags;
  ULONG64 Value;
  ULONG64 Address;
  ULONG   Register;
  ULONG   Scope;
  ULONG   Tag;
  ULONG   NameLen;
  ULONG   MaxNameLen;
  WCHAR   Name[1];
} SYMBOL_INFOW, *PSYMBOL_INFOW;

Member

SizeOfStruct

Die Größe der Struktur in Bytes. Dieser Member muss auf sizeof(SYMBOL_INFO)festgelegt werden. Beachten Sie, dass die Gesamtgröße der Daten ist SizeOfStruct + (MaxNameLen - 1) * sizeof(TCHAR). Der Grund für das Subtrahieren ist, dass das erste Zeichen im Namen in der Größe der Struktur berücksichtigt wird.

TypeIndex

Ein eindeutiger Wert, der die Typdaten identifiziert, die das Symbol beschreiben. Dieser Wert wird zwischen Sitzungen nicht beibehalten.

Reserved[2]

Dieser Member ist für die Systemverwendung reserviert.

Index

Der eindeutige Wert für das Symbol. Der einem Symbol zugeordnete Wert ist nicht garantiert bei jeder Ausführung des Prozesses gleich.

Bei PDB-Symbolen wird der Indexwert für ein Symbol erst generiert, wenn das Symbol aufgezählt oder durch eine Suche nach Name oder Adresse abgerufen wird. Die Indexwerte für alle CodeView- und COFF-Symbole werden generiert, wenn die Symbole geladen werden.

Size

Die Symbolgröße in Bytes. Dieser Wert ist nur dann sinnvoll, wenn die Modulsymbole aus einer PDB-Datei stammen. Andernfalls ist dieser Wert in der Regel null und sollte ignoriert werden.

ModBase

Die Basisadresse des Moduls, das das Symbol enthält.

Flags

Bei diesem Member kann es sich um einen oder mehrere der folgenden Werte handeln.

Wert Bedeutung
SYMFLAG_CLR_TOKEN
0x00040000
Das Symbol ist ein CLR-Token.
SYMFLAG_CONSTANT
0x00000100
Das Symbol ist eine Konstante.
SYMFLAG_EXPORT
0x00000200
Das Symbol stammt aus der Exporttabelle.
SYMFLAG_FORWARDER
0x00000400
Das Symbol ist eine Weiterleitung.
SYMFLAG_FRAMEREL
0x00000020
Offsets sind framerelative.
SYMFLAG_FUNCTION
0x00000800
Das Symbol ist eine bekannte Funktion.
SYMFLAG_ILREL
0x00010000
Die Symboladresse ist ein Offset relativ zum Anfang des zwischengeschalteten Sprachblocks. Dies gilt nur für verwalteten Code.
SYMFLAG_LOCAL
0x00000080
Das Symbol ist eine lokale Variable.
SYMFLAG_METADATA
0x00020000
Das Symbol sind verwaltete Metadaten.
SYMFLAG_PARAMETER
0x00000040
Das Symbol ist ein Parameter.
SYMFLAG_REGISTER
0x00000008
Das Symbol ist ein Register. Das Register-Element wird verwendet.
SYMFLAG_REGREL
0x00000010
Offsets sind registerrelative.
SYMFLAG_SLOT
0x00008000
Das Symbol ist ein verwalteter Codeslot.
SYMFLAG_THUNK
0x00002000
Das Symbol ist ein Thunk.
SYMFLAG_TLSREL
0x00004000
Das Symbol ist ein Offset in den TLS-Datenbereich.
SYMFLAG_VALUEPRESENT
0x00000001
Das Value-Element wird verwendet.
SYMFLAG_VIRTUAL
0x00001000
Das Symbol ist ein virtuelles Symbol, das von der SymAddSymbol-Funktion erstellt wird.

Value

Der Wert einer Konstante.

Address

Die virtuelle Adresse des Anfangs des Symbols.

Register

Das Register.

Scope

Der DIA-Bereich. Weitere Informationen finden Sie im Debug Interface Access SDK in der Visual Studio-Dokumentation. (Diese Ressource ist in einigen Sprachen möglicherweise nicht verfügbar.

und Länder.)

Tag

Die PDB-Klassifizierung. Diese Werte werden in Dbghelp.h im SymTagEnum-Enumerationstyp definiert.

NameLen

Die Länge des Namens in Zeichen, ohne das NULL-Endzeichen.

MaxNameLen

Die Größe des Namenspuffers in Zeichen. Wenn dieser Member 0 ist, wird das Name-Element nicht verwendet.

Name[1]

Der Name des Symbols. Der Name kann nicht ausgebucht werden, wenn die Option SYMOPT_UNDNAME mit der SymSetOptions-Funktion verwendet wird.

Hinweise

Hinweis

Der Dbghelp.h-Header definiert SYMBOL_INFO als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Header dbghelp.h
Verteilbare Komponente DbgHelp.dll 5.1 oder höher

Weitere Informationen

SymEnumSymbolsProc

SymFromAddr

SymFromName

SymGetTypeFromName