EngExtCpp 延伸模組程式庫
EngExtCpp 延伸模組程式庫是一個 DLL,它會使用 EngExtCpp.h 中找到的 EngExtCpp 延伸模組架構。 偵錯工具引擎載入此程式庫時,其方法和函式可以在 Microsoft Windows 上執行使用者模式或核心模式偵錯時提供額外的功能或自動化工作。
EngExtCpp 延伸模組架構是以 DbgEng 延伸模組架構為基礎。 它提供與偵錯工具引擎互動的相同偵錯工具引擎 API。 但它也會提供額外的功能,讓一般工作更簡單。
如果您執行 Windows 偵錯工具的完整安裝,可以在安裝目錄的 sdk\samples\extcpp 子目錄中找到名為 「extcpp」 的範例 EngExtCpp 擴充功能。
EXT_CLASS 和 ExtExtension
EngExtCpp 擴充程式庫的核心是 EXT_CLASS 類別的單一實例。 EngExtCpp 延伸模組程式庫會提供這個類別的實作,其中包含程式庫匯出之格式化結構的所有擴充命令和方法。
EXT_CLASS是 ExtExtension的子類別。 此類別的單一實例是使用 EXT_DECLARE_GLOBALS 宏建立,此宏必須只出現在擴充程式庫的來源檔案中一次。
載入擴充程式庫時,引擎會呼叫 類別的 Initialize 方法,並在卸載類別之前呼叫 Uninitialize 方法。 此外,引擎會呼叫OnSessionActive、OnSessionInactive、OnSessionAccessible和OnSessionIn 可存取的方法,以通知擴充程式庫偵錯會話的狀態。
擴充命令
EXT_CLASS類別可以包含一些用來執行擴充命令的方法。 每個擴充命令都會使用 EXT_COMMAND_METHOD 宏,在 EXT_CLASS 類別中宣告。 命令的實作是使用 EXT_COMMAND 宏來定義。
已知結構
EXT_CLASS類別可以包含許多使用ExtKnownStructMethod原型的方法。 引擎可以使用 方法,將特定結構類型的實例格式化為輸出。
提供的值
EXT_CLASS類別可以包含一些使用ExtProvideValueMethod原型的方法。 引擎可以使用 方法來評估擴充功能所提供的一些虛擬暫存器。