Metadatendateien für Analyseerweiterungs-Plug-Ins
Wenn Sie ein Analyseerweiterungs-Plug-In schreiben, schreiben Sie auch eine Metadatendatei, die die Situationen beschreibt, für die Das Plug-In aufgerufen werden soll. Wenn der Befehl !analyze debugger ausgeführt wird, werden Metadatendateien verwendet, um zu bestimmen, welche Plug-Ins geladen werden sollen.
Erstellen Sie eine Metadatendatei, die denselben Namen wie das Analyseerweiterungs-Plug-In und die Erweiterung ".alz" aufweist. Wenn Ihr Analyseerweiterungs-Plug-In beispielsweise den Namen MyAnalyzer.dll hat, muss Ihre Metadatendatei den Namen MyAnalyzer.alz haben. Platzieren Sie die Metadatendatei im selben Verzeichnis wie Das Analyseerweiterungs-Plug-In.
Eine Metadatendatei für ein Analyseerweiterungs-Plug-In ist eine ASCII-Textdatei, die Schlüssel-Wert-Paare enthält. Schlüssel und Werte werden durch Leerzeichen getrennt. Ein Schlüssel kann ein beliebiges Zeichen ohne Leerzeichen aufweisen. Bei Schlüsseln wird die Groß-/Kleinschreibung nicht beachtet.
Nach dem Schlüssel und dem folgenden Leerzeichen beginnt der entsprechende Wert. Ein Wert kann über eines der folgenden Formulare verfügen.
Beliebige Zeichensätze bis zum Ende der Zeile. Dieses Formular funktioniert für Werte, die keine Zeilenzeilenzeichen enthalten.
Wichtig Wenn der letzte Wert in der Metadatendatei über einen Wert dieses Formulars verfügt, muss die Zeile mit einem Zeilenumbruchzeichen enden.
Beliebige Zeichensätze zwischen Klammern { }. Das Formular funktioniert für Werte, die Zeilenumbruchzeichen enthalten.
Eine Zeile, die mit # beginnt, ist ein Kommentar und wird ignoriert. Kommentare können nur dort beginnen, wo Schlüssel erwartet werden.
Sie können die folgenden Schlüssel in einer Metadatendatei verwenden.
Schlüssel | BESCHREIBUNG |
---|---|
Plug-InId | Zeichenfolge: Identifiziert das Plug-In. |
DebuggeeClass | Zeichenfolge: Mögliche Werte sind "Kernel" und "User". Gibt an, dass das Plug-In nur Kernelmodusfehler oder nur Benutzermodusfehler analysieren möchte. |
BugCheckCode | 32-Bit-Fehlerüberprüfungscode: Gibt an, dass das Plug-In an der Analyse dieses Fehlerüberprüfungscodes interessiert ist. Eine einzelne Metadatendatei kann mehrere Fehlerprüfcodes angeben. |
ExceptionCode | 32-Bit-Ausnahmecode: Gibt an, dass das Plug-In an der Analyse dieses Ausnahmecodes interessiert ist. Eine einzelne Metadatendatei kann mehrere Ausnahmecodes angeben. |
ExecutableName | Zeichenfolge: Gibt an, dass das Plug-In nur an Sitzungen interessiert ist, bei denen es sich um die ausgeführte ausführbare Datei des zu analysierenden Prozesses handelt. Eine einzelne Metadatendatei kann mehrere ausführbare Namen angeben. |
ImageName | Zeichenfolge: Gibt an, dass das Plug-In nur für Sitzungen interessiert ist, bei denen die Standardanalyse dieses Image (dll, sys oder exe) als fehlerhaft betrachtet. Das Plug-In wird aufgerufen, nachdem die Analyse ermittelt hat, welches Image fehlerhaft ist. Eine einzelne Metadatendatei kann mehrere Bildnamen angeben. |
MaxTagCount | Integer: Die maximale Anzahl benutzerdefinierter Tags, die das Plug-In benötigt. Benutzerdefinierte Tags sind andere Tags als die in extsfns.h definierten Tags. |
Beispielmetadatendateien
Die folgende Metadatendatei beschreibt ein Plug-In, das an der Analyse von Fehlerüberprüfungscode 0xE2 interessiert ist. (Denken Sie daran, dass die letzte Zeile mit einem Zeilenumbruchzeichen enden muss.)
PluginId MyPlugin
DebuggeeClass Kernel
BugCheckCode 0xE2
Die folgende Metadatendatei beschreibt ein Plug-In, das an der Analyse von Fehlerüberprüfungen 0x8, 0x9 und 0xA interessiert ist, wenn MyDriver.sys als das fehlerhafte Modul angesehen wird.
PluginId MyPlugin
DebuggeeClass Kernel
BugCheckCode 0x8
BugCheckCode 0x9
BugCheckCode 0xA
ImageName MyDriver.sys
Die folgende Metadatendatei beschreibt ein Plug-In, das an der Analyse von Ausnahmecode 0xC0000005 interessiert ist, wenn MyApp.exe die ausgeführte ausführbare Datei des zu analysierenden Prozesses ist. Außerdem kann das Plug-In bis zu drei benutzerdefinierte Tags erstellen.
PluginId MyPlugin
DebuggeeClass User
ExceptionCode 0xC0000005
ExecutableName MyApp.exe
Debugtools für Windows enthält ein Beispiel, mit dem Sie ein Debuggererweiterungsmodul mit dem Namen dbgexts.dll erstellen können. Dieses Erweiterungsmodul implementiert mehrere Debuggererweiterungsbefehle, kann aber auch als Analyseerweiterungs-Plug-In dienen. Das heißt, es exportiert eine _EFN_Analyze-Funktion . Hier sehen Sie eine Metadatendatei, die dbgexts.dll als Analyseerweiterungs-Plug-In beschreibt.
PluginId PluginSample
DebuggeeClass User
ExceptionCode 0xc0000005
ExecutableName cdb.exe
ExecutableName windbg.exe
#
# Custom tag descriptions
#
TagDesc 0xA0000000 SAMPLE_PLUGIN_DEBUG_TEXT {Sample debug help text from plug-in analysis}
#
Weitere Informationen
Schreiben eines Analyseerweiterungs-Plug-Ins zum Erweitern von !analyze