共用方式為


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 方法。 此外,引擎會呼叫OnSessionActiveOnSessionInactive、OnSessionAccessibleOnSessionIn 可存取的方法,以通知擴充程式庫偵錯會話的狀態。

擴充命令

EXT_CLASS類別可以包含一些用來執行擴充命令的方法。 每個擴充命令都會使用 EXT_COMMAND_METHOD 宏,在 EXT_CLASS 類別中宣告。 命令的實作是使用 EXT_COMMAND 宏來定義。

已知結構

EXT_CLASS類別可以包含許多使用ExtKnownStructMethod原型的方法。 引擎可以使用 方法,將特定結構類型的實例格式化為輸出。

提供的值

EXT_CLASS類別可以包含一些使用ExtProvideValueMethod原型的方法。 引擎可以使用 方法來評估擴充功能所提供的一些虛擬暫存器。