IDebugProcess2::Attach
セッション デバッグ マネージャー (SDM) をプロセスにアタッチします。
構文
int Attach(
IDebugEventCallback2 pCallback,
Guid[] rgguidSpecificEngines,
uint celtSpecificEngines,
int[] rghrEngineAttach
);
パラメーター
pCallback
[入力] デバッグ イベント通知に使用される IDebugEventCallback2 オブジェクト。
rgguidSpecificEngines
[入力] プロセス内で実行されているプログラムをデバッグするために使用するデバッグ エンジンの GUID の配列。 このパラメーターには、null 値を指定できます。 詳細については、「解説」を参照してください。
celtSpecificEngines
[入力] rgguidSpecificEngines
配列内のデバッグ エンジンの数と rghrEngineAttach
配列のサイズ。
rghrEngineAttach
[入力、出力] デバッグ エンジンによって返される HRESULT コードの配列。 この配列のサイズは、celtSpecificEngines
パラメーターで指定します。 各コードは通常、S_OK
または S_ATTACH_DEFERRED
です。 後者は、DE が現在プログラムにアタッチされていないことを示します。
戻り値
成功した場合は、S_OK
を返します。それ以外の場合は、エラー コードを返します。 次の表は、指定可能なその他の値を示しています。
Value | 説明 |
---|---|
E_ATTACH_DEBUGGER_ALREADY_ATTACHED |
指定されたプロセスは既にデバッガーにアタッチされています。 |
E_ATTACH_DEBUGGEE_PROCESS_SECURITY_VIOLATION |
アタッチ プロシージャ中にセキュリティ違反が発生しました。 |
E_ATTACH_CANNOT_ATTACH_TO_DESKTOP |
デスクトップ プロセスをデバッガーにアタッチすることはできません。 |
解説
プロセスにアタッチすると、そのプロセス内で実行されているプログラムのうち、rgguidSpecificEngines
配列で指定されたデバッグ エンジン (DE) でデバッグ可能なすべてのプログラムに SDM がアタッチされます。 プロセス内のすべてのプログラムにアタッチするには、rgguidSpecificEngines
パラメーターを null 値に設定するか、配列内に GUID_NULL
を含めます。
プロセス内で発生するすべてのデバッグ イベントは、指定された IDebugEventCallback2 オブジェクトに送信されます。 この IDebugEventCallback2
オブジェクトは、SDM がこのメソッドを呼び出すときに渡されます。