Dela via


Metadatafiler för analystilläggsinsticksmoduler

När du skriver ett plugin-program för analystillägg skriver du även en metadatafil som beskriver de situationer som du vill att plugin-programmet ska anropas för. När kommandot !analyze debugger körs används metadatafiler för att avgöra vilka plugin-program som ska läsas in.

Skapa en metadatafil med samma namn som analystilläggsplugin-programmet och med filändelsen .alz. Om ditt plugin-program för analystillägget till exempel heter MyAnalyzer.dllmåste metadatafilen ha namnet MyAnalyzer.alz. Placera metadatafilen i samma katalog som plugin-programmet för analystillägget.

En metadatafil för ett plugin-program för analystillägget är en ASCII-textfil som innehåller nyckel/värde-par. Nycklar och värden avgränsas med tomt utrymme. En nyckel kan ha alla tecken som inte är blanksteg. Nycklar är inte skiftlägeskänsliga.

Efter nyckeln och följande blanksteg börjar motsvarande värde. Ett värde kan ha något av följande formulär.

  • Vilken teckensekvens som helst till slutet av raden. Det här formuläret fungerar för värden som inte innehåller några nya radtecken.

    Viktig Om det sista värdet i metadatafilen har ett värde för det här formuläret måste raden sluta med ett nytt radtecken.

  • Teckenuppsättningar mellan klammerparenteser { }. Formuläret fungerar för värden som innehåller nya radtecken.

En rad som börjar med # är en kommentar och ignoreras. Kommentarer kan bara starta där nycklar förväntas.

Du kan använda följande nycklar i en metadatafil.

Nyckel Beskrivning
PluginId Sträng – Identifierar plugin-programmet.
DebuggeeClass Sträng – Möjliga värden är "Kernel" och "User". Anger att plugin-programmet bara är intresserat av att analysera fel i kernelläge eller endast fel i användarläge.
Buggranskningskoden 32-bitars buggkontrollkod – Anger att plugin-programmet är intresserat av att analysera den här felkontrollkoden. En enda metadatafil kan ange flera felkontrollkoder.
Undantagskod 32-bitars undantagskod – Anger att plugin-programmet är intresserat av att analysera den här undantagskoden. En enskild metadatafil kan ange flera undantagskoder.
Programnamn Sträng – Anger att plugin-programmet endast är intresserat av sessioner där detta är den körbara filen för den process som ska analyseras. En enskild metadatafil kan ange flera körbara namn.
Bildnamn Sträng – Anger att plugin-programmet bara är intresserat av sessioner där standardanalysen anser att den här avbildningen (dll, sys eller exe) är felaktig. Plugin-programmet anropas när analysen har fastställt vilken avbildning som är fel. En enskild metadatafil kan ange flera bildnamn.
MaxTagCount Heltal – Det maximala antalet anpassade taggar som plugin-programmet behöver. Anpassade taggar är andra taggar än de som definieras i extsfns.h.

Exempel på metadatafiler

Följande metadatafil beskriver ett plugin-program som är intresserat av att analysera felkontrollkod 0xE2. (Kom ihåg att den sista raden måste sluta med ett nytt radtecken.)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

Följande metadatafil beskriver ett plugin-program som är intresserat av att analysera felkontroller 0x8, 0x9 och 0xA om MyDriver.sys anses vara felmodulen.

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0x8
BugCheckCode  0x9
BugCheckCode  0xA
ImageName     MyDriver.sys

Följande metadatafil beskriver ett insticksprogram som är intresserat av att analysera undantagskod 0xC0000005 om MyApp.exe är den körbara filen för processen som analyseras. Plugin-programmet kan också skapa så många som tre anpassade taggar.

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

Felsökningsverktyg för Windows har ett exempel som du kan använda för att skapa en modul för felsökningstillägg med namnet dbgexts.dll. Den här tilläggsmodulen implementerar flera kommandon för felsökningstillägg, men den kan också fungera som ett plugin-program för analystillägg. det vill: den exporterar en _EFN_Analyze funktion. Här är en metadatafil som beskriver dbgexts.dll som ett analystilläggsinsticksprogram.

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}
#

Se även

Skriva ett insticksprogram för analystillägg för att utöka !analyze

_EFN_Analyze

!analysera