EXT_ANALYSIS_PLUGIN Rückruffunktion (extsfns.h)
Wenn Sie eine Analysis Extensionschreiben, müssen Sie eine EXT_ANALYSIS_PLUGIN als (_EFN_Analyze) implementieren. Wenn der !analyze Debuggerbefehl ausgeführt wird, ruft er ihre _EFN_Analyze in jeder Phase auf, sodass Sie an der Analyse teilnehmen können.
Die WINAPI-Aufrufkonvention (__stdcall) ist erforderlich. Keine Ausnahmen (noexcept) sollten die Funktion 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. legacy (IDebug*
), DebugHost (IDebugHost*
), Datenmodell (IDataModel*
), usw. Schnittstellen.
[in] CallPhase
Ein Wert in der FA_EXTENSION_PLUGIN_PHASE-Aufzählung, der angibt, welche Phase der Analyse derzeit ausgeführt wird. Analysephasen umfassen Initialisierung, Stapelanalyse, Vorab-Bucketing und Post-Bucketing.
[in] pAnalysis
Ein Zeiger auf eine IDebugFailureAnalysis2 Schnittstelle. Verwenden Sie diese Schnittstelle, um die Eigenschaften der Analyse abzurufen/festzulegen. Verwenden Sie QueryInterface, um auf andere !analyze-Schnittstellen zuzugreifen.
Rückgabewert
S_OK – Eine Änderung wurde 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 Wertzeichenfolge des HRESULT im Format "0x%08x".
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | extsfns.h |
Siehe auch
Schreiben benutzerdefinierter Analysedebuggererweiterungen
Schreiben eines Analysis Extension Plug-Ins zum Erweitern von !analyze