次の方法で共有


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 がこのメソッドを呼び出すときに渡されます。

関連項目