次の方法で共有


EngExtCpp 拡張機能ライブラリ

EngExtCpp 拡張ライブラリは、EngExtCpp.h で見つかった EngExtCpp 拡張フレームワークを使用する DLL です。 このライブラリがデバッガー エンジンによって読み込まれると、そのメソッドと関数は、Microsoft Windows でユーザー モードまたはカーネル モードのデバッグを実行しながら、タスクの追加の機能や自動化を提供できます。

EngExtCpp 拡張フレームワークは、DbgEng 拡張機能フレームワークの上に構築されています。 デバッガー エンジンとの対話用に同じ debugger engine API を提供します。 また、一般的なタスクをシンプルにする追加の機能も提供します。

Debugging Tools for Windows の完全インストールを実行した場合、「extcpp」という名前のサンプル EngExtCpp 拡張機能がインストール ディレクトリの sdk\samples\extcpp サブディレクトリに配置されます。

EXT_CLASS および ExtExtension

EngExtCpp 拡張ライブラリの中核となるのは、EXT_CLASS クラスの単一インスタンスです。 EngExtCpp 拡張ライブラリは、このクラスの実装を指定します。このクラスには、ライブラリによってエクスポートされる構造体を書式設定するためのすべての拡張コマンドとメソッドが含まれています。

EXT_CLASS は ExtExtension のサブクラスです。 このクラスの 1 つのインスタンスは、拡張ライブラリのソース ファイルに 1 回だけ表示する必要がある EXT_DECLARE_GLOBALS マクロを使用して作成されます。

拡張ライブラリが読み込まれると、クラスの Initialize メソッドがエンジンによって呼び出され、Uninitialize メソッドが呼び出されてからクラスがアンロードされます。 さらに、OnSessionActiveOnSessionInactiveOnSessionAccessibleOnSessionInaccessible のメソッドは、デバッグ セッションの状態を拡張ライブラリに通知するためにエンジンによって呼び出されます。

拡張コマンド

EXT_CLASS クラスには、拡張コマンドの実行に使用される多数のメソッドを含めることができます。 各拡張コマンドは、EXT_COMMAND_METHOD マクロを使用して、EXT_CLASS クラスで宣言されます。 コマンドの実装は、EXT_COMMAND マクロを使用して定義されます。

既知の構造体

EXT_CLASS クラスには、ExtKnownStructMethod プロトタイプを使用する多数のメソッドを含めることができます。 メソッドは、エンジンが出力用に特定の構造体型のインスタンスを書式設定するために使用できます。

指定値

EXT_CLASS クラスには、ExtProvideValueMethod プロトタイプを使用する多数のメソッドを含めることができます。 メソッドは、エンジンが拡張機能によって提供されるいくつかの擬似レジスタを評価するために使用できます。