Freigeben über


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

_EFN_Analyze

!Analysieren