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