Share via


Analysis Extension 外掛程式的中繼資料檔

當您撰寫分析延伸模組外掛程式時,也會撰寫中繼資料檔案,描述您想要呼叫外掛程式的情況。 當 !analyze偵錯工具命令執行時,它會使用中繼資料檔案來判斷要載入的外掛程式。

建立與分析延伸模組外掛程式名稱相同的中繼資料檔案,以及 .alz 的副檔名。 例如,如果您的分析延伸模組外掛程式名為 MyAnalyzer.dll,您的中繼資料檔案必須命名為 MyAnalyzer.alz。 將中繼資料檔案放在與分析延伸模組外掛程式相同的目錄中。

分析延伸模組外掛程式的中繼資料檔是包含索引鍵/值組的 ASCII 文字檔。 索引鍵和值會以空白字元分隔。 索引鍵可以有任何非空白字元。 索引鍵不區分大小寫。

在索引鍵和下列空白字元之後,對應的值就會開始。 值可以有下列其中一種形式。

  • 行尾的任何一組字元。 此表單適用于不包含任何分行符號的值。

    重要 如果中繼資料檔案中的最後一個值具有這個格式的值,該行的結尾必須是分行符號。

  • 大括弧 { } 之間的任何一組字元。 此表單適用于包含分行符號的值。

開頭為 # 的行是批註,並會被忽略。 批註只能啟動預期索引鍵的位置。

您可以在中繼資料檔案中使用下列索引鍵。

Key 描述
PluginId 字串 - 識別外掛程式。
DebuggeeClass 字串 - 可能的值為 「Kernel」 和 「User」。 表示外掛程式有興趣只分析核心模式失敗,或只分析使用者模式失敗。
BugCheckCode 32 位錯誤檢查程式碼 - 指出外掛程式有興趣分析此 錯誤檢查程式碼。 單一中繼資料檔案可以指定多個錯誤檢查碼。
ExceptionCode 32 位例外狀況程式碼 - 指出外掛程式有興趣分析此 例外狀況程式碼。 單一中繼資料檔案可以指定多個例外狀況代碼。
ExecutableName 字串 - 表示外掛程式只對要分析之進程的執行可執行檔的會話感興趣。 單一中繼資料檔案可以指定多個可執行檔名稱。
ImageName 字串 - 表示外掛程式只對預設分析將此影像視為 (dll、sys 或 exe) 發生錯誤的會話感興趣。 外掛程式會在分析判斷哪個影像發生錯誤之後叫用。 單一中繼資料檔案可以指定多個映射名稱。
MaxTagCount Integer - 外掛程式所需的自訂標籤數目上限。 自訂標籤是 extsfns.h 中定義的標記以外的標記。

範例中繼資料檔案

下列中繼資料檔案描述有興趣分析錯誤檢查程式碼0xE2的外掛程式。 (回想一下,最後一行的結尾必須是分行符號。)

PluginId      MyPlugin
DebuggeeClass Kernel
BugCheckCode  0xE2

下列中繼資料檔案描述想要分析錯誤檢查0x8、0x9,以及0xA是否將 MyDriver.sys 視為錯誤模組的外掛程式。

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

下列中繼資料檔案描述想要分析例外狀況程式碼的外掛程式,0xC0000005 MyApp.exe 是否為正在分析之進程的執行可執行檔。 此外,外掛程式可能會建立多達三個自訂標籤。

PluginId        MyPlugin
DebuggeeClass   User
ExceptionCode   0xC0000005
ExecutableName  MyApp.exe

適用于 Windows 的偵錯工具有一個範例,可用來建置名為 dbgexts.dll 的偵錯工具擴充模組。 此擴充模組會實作數個偵錯工具擴充命令,但也可以作為分析延伸模組外掛程式;也就是說,它會匯出 _EFN_Analyze 函式。 以下是描述 dbgexts.dll 為分析延伸模組外掛程式的中繼資料檔案。

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

另請參閱

撰寫分析延伸模組外掛程式以擴充 !analyze

_EFN_Analyze

!分析