EXT_ANALYSIS_PLUGIN Rückruffunktion (extsfns.h)

Wenn Sie eine Analyseerweiterung schreiben, müssen Sie eine EXT_ANALYSIS_PLUGIN implementieren, die als (_EFN_Analyze) exportiert wird. Wenn der Befehl !analyze debugger ausgeführt wird, wird ihr _EFN_Analyze in jeder Phase aufgerufen, damit Sie an der Analyse teilnehmen können.

Die WINAPI-Aufrufkonvention (__stdcall) ist erforderlich. Die Funktion darf keine Ausnahmen (noexcept) verlassen.

Syntax

EXT_ANALYSIS_PLUGIN ExtAnalysisPlugin;

HRESULT ExtAnalysisPlugin(
  [in] PDEBUG_CLIENT4 Client,
  [in] FA_EXTENSION_PLUGIN_PHASE CallPhase,
  [in] PDEBUG_FAILURE_ANALYSIS2 pAnalysis
)
{...}

Parameter

[in] Client

Ein Zeiger auf eine IDebugClient4-Schnittstelle . Verwenden Sie diese Schnittstelle, um auf den Debugger zuzugreifen. Verwenden Sie QueryInterface, um auf andere Debuggerschnittstellen zuzugreifen, z. B. die Schnittstellen Legacy (IDebug*), Debughost (IDebugHost*), Datenmodell (IDataModel*) usw.

[in] CallPhase

Ein Wert in der FA_EXTENSION_PLUGIN_PHASE-Enumeration , der angibt, welche Phase der Analyse derzeit ausgeführt wird. Zu den Analysephasen gehören Initialisierung, Stapelanalyse, Pre-Bucketing und Post-Bucketing.

[in] pAnalysis

Ein Zeiger auf eine IDebugFailureAnalysis2-Schnittstelle . Verwenden Sie diese Schnittstelle, um Eigenschaften der Analyse abzurufen/festzulegen. Verwenden Sie QueryInterface, um auf andere !analyze-Schnittstellen zuzugreifen.

Rückgabewert

S_OK : Es wurde eine Änderung vorgenommen.

S_FALSE : Es wurden keine Änderungen vorgenommen.

E_* : Fehler. !analyze meldet den Fehler über Schlüssel/Wert mithilfe einer Schlüsselzeichenfolge von Plugin.Exception."Phase"."DLL" und der Wertzeichenfolge des HRESULT im Format "0x%08x".

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile extsfns.h

Weitere Informationen

Schreiben einer benutzerdefinierten Analysedebuggererweiterung

Schreiben eines Analyseerweiterungs-Plug-Ins zum Erweitern von !analyze