Freigeben über


PDEBUG_EXTENSION_KNOWN_STRUCT Rückruffunktion (dbgeng.h)

Das Modul ruft die KnownStructOutput Rückruffunktion auf, um Informationen zu Strukturen anzufordern, die die Erweiterungs-DLL zum Drucken formatieren kann. Das Modul ruft diese Funktion aus den folgenden Gründen auf.

  • Ruft eine Liste der Strukturen ab, die die DLL zum Drucken formatieren kann.
  • Ruft eine einzeilige Darstellung einer bestimmten Struktur ab.
  • Fragen Sie, ob eine bestimmte Struktur ihren Namen zusammen mit ihrer einzeiligen Darstellung drucken soll.
'''cpp CALLBACK* PDEBUG_EXTENSION_KNOWN_STRUCT KnownStructOutput; ```

Syntax

PDEBUG_EXTENSION_KNOWN_STRUCT PdebugExtensionKnownStruct;

HRESULT PdebugExtensionKnownStruct(
  [in]      ULONG Flags,
  [in]      ULONG64 Offset,
  [in]      PSTR TypeName,
  [out]     PSTR Buffer,
  [in, out] PULONG BufferChars
)
{...}

Parameter

[in] Flags

Einer der folgenden Werte, je nachdem, welche Informationen das Modul von der Erweiterungs-DLL erhalten möchte.

Wert Beschreibung
DEBUG_KNOWN_STRUCT_GET_NAMES Dient zum Abrufen einer Liste von Strukturnamen.
DEBUG_KNOWN_STRUCT_SUPPRESS_TYPE_NAME Fragen Sie, ob eine Struktur ihren Namen gedruckt haben soll.
DEBUG_KNOWN_STRUCT_GET_SINGLE_LINE_OUTPUT Ruft eine einzeilige Darstellung einer Struktur ab.

[in] Offset

Beim Abrufen einer Liste von Namen: Nicht verwendet.

Wenn Sie gefragt werden, ob ein Name gedruckt werden soll: Nicht verwendet.

Beim Abrufen einer einzeiligen Darstellung: Gibt den Speicherort im Speicheradressraum des Ziels der zu drucknden Struktur an.

[in] TypeName

Beim Abrufen einer Liste von Namen: Nicht verwendet.

Wenn Sie fragen, ob ein Name gedruckt werden soll: Gibt den Namen der Struktur an. Dies ist einer der Namen, die von der DEBUG_KNOWN_STRUCT_GET_NAMES Abfrage zurückgegeben werden.

Beim Abrufen einer einzeiligen Darstellung: Gibt den Namen der Struktur an. Dies ist einer der Namen, die von der DEBUG_KNOWN_STRUCT_GET_NAMES Abfrage zurückgegeben werden.

[out] Buffer

Beim Abrufen einer Liste von Namen: Empfängt eine Liste der Namen der Strukturen, die die Erweiterung zum Drucken formatieren kann. Ein Nullzeichen muss zwischen den einzelnen Namenpaaren angezeigt werden. Die Liste muss mit zwei Nullzeichen beendet werden. Die Anzahl der zeichen, die in diesen Puffer geschrieben wurden, darf den Wert von BufferSizenicht überschreiten.

Wenn Sie gefragt werden, ob ein Name gedruckt werden soll: Nicht verwendet.

Beim Abrufen einer einzeiligen Darstellung: Empfängt eine Darstellung der Struktur, die durch StructName und Addressals Zeichenfolge identifiziert wird. Die Anzahl der zeichen, die in diesen Puffer geschrieben wurden, darf den Wert von BufferSizenicht überschreiten.

[in, out] BufferChars

Beim Abrufen einer Liste von Namen: Beim Eingeben gibt die Größe Puffer-in Zeichen an. Wenn der Puffer bei der Ausgabe zu klein ist, wird die erforderliche Puffergröße empfangen.

Wenn Sie gefragt werden, ob ein Name gedruckt werden soll: Nicht verwendet.

Beim Abrufen einer einzeiligen Darstellung: Bei Eingabe gibt die Größe Puffer-in Zeichen an. Wenn der Puffer bei der Ausgabe zu klein ist, wird die erforderliche Puffergröße empfangen.

Rückgabewert

Rückgabecode Beschreibung
S_OK
Beim Abrufen einer Liste von Namen: Buffer enthält die angeforderte Liste der Namen.

Bei der Frage, ob ein Name gedruckt werden soll: Der Druck des Namens sollte unterdrückt werden. Das heißt, der Name sollte nicht gedruckt werden.

Beim Abrufen einer einzeiligen Darstellung: Puffer- enthält die angeforderte einzeilige Darstellung.

S_FALSE
Beim Abrufen einer Liste von Namen: BufferSize zu klein für die Eingabe war. Bei der Ausgabe enthält BufferSize- die erforderliche Puffergröße.

Bei der Frage, ob ein Name gedruckt werden soll: Der Druck des Namens sollte nicht unterdrückt werden. Das heißt, der Name sollte gedruckt werden.

Beim Abrufen einer einzeiligen Darstellung: BufferSize war bei eingaben zu klein. Bei der Ausgabe enthält BufferSize- die erforderliche Puffergröße.

 

Alle anderen Rückgabewerte deuten darauf hin, dass die Funktion fehlgeschlagen ist. Das Modul ignoriert weiterhin den Inhalt Buffer-.

Bemerkungen

Diese Funktion ist optional. Eine Erweiterungs-DLL muss nur KnownStructOutput exportieren, wenn sie spezielle Strukturen zum Drucken in einer einzelnen Zeile formatieren kann. Das Modul sucht diese Funktion anhand des Namens in der Erweiterungs-DLL.

Nach der Initialisierung der Erweiterungs-DLL ruft das Modul diese Funktion auf, um die DLL für die Liste der Strukturnamen abzufragen, die es weiß, wie gedruckt wird. Wenn das Modul dann eine Zusammenfassung einer der Strukturen druckt, deren Name sich in der Liste befindet, wird diese Funktion aufgerufen, um die Struktur für den Druck zu formatieren.

KnownStructOutput- wird in der Headerdatei "Dbgeng.h" PDEBUG_EXTENSION_KNOWN_STRUCT aufgerufen.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- dbgeng.h

Siehe auch

DebugExtensionInitialize