ICorDebug::CreateProcess メソッド

デバッガーの制御下でプロセスとそのプライマリ スレッドを起動します。

HRESULT CreateProcess (
    [in]  LPCWSTR                     lpApplicationName,
    [in]  LPWSTR                      lpCommandLine,
    [in]  LPSECURITY_ATTRIBUTES       lpProcessAttributes,
    [in]  LPSECURITY_ATTRIBUTES       lpThreadAttributes,
    [in]  BOOL                        bInheritHandles,
    [in]  DWORD                       dwCreationFlags,
    [in]  PVOID                       lpEnvironment,
    [in]  LPCWSTR                     lpCurrentDirectory,
    [in]  LPSTARTUPINFOW              lpStartupInfo,
    [in]  LPPROCESS_INFORMATION       lpProcessInformation,
    [in]  CorDebugCreateProcessFlags  debuggingFlags,
    [out] ICorDebugProcess            **ppProcess
);

パラメーター

  • lpApplicationName
    [入力] 起動したプロセスで実行するモジュールを指定する終端が null の文字列へのポインター。 モジュールは、呼び出し元プロセスのセキュリティ コンテキスト内で実行されます。

  • lpCommandLine
    [入力] 起動したプロセスで実行するコマンド ラインを指定する終端が null の文字列へのポインター。

  • lpProcessAttributes
    [入力] プロセスのセキュリティ記述子を指定する Win32 SECURITY_ATTRIBUTES 構造体へのポインター。 lpProcessAttributes が null の場合、プロセスは既定のセキュリティ記述子を取得します。

  • lpThreadAttributes
    [入力] プロセスのプライマリ スレッドのセキュリティ記述子を指定する Win32 SECURITY_ATTRIBUTES 構造体へのポインター。 lpThreadAttributes が null の場合、スレッドは既定のセキュリティ記述子を取得します。

  • bInheritHandles
    [入力] 呼び出し元プロセスの継承可能な各ハンドルを起動したプロセスで継承することを示す場合、true に設定します。そのハンドルを継承しないことを示す場合は、false に設定します。 継承されたハンドルは、元のハンドルと同じ値とアクセス権を持ちます。

  • dwCreationFlags
    [入力] 起動したプロセスの優先順位クラスと動作を制御する Win32 プロセス作成フラグのビットごとの組み合わせ。

  • lpEnvironment
    [入力] 新しいプロセスの環境ブロックへのポインター。

  • lpCurrentDirectory
    [入力] プロセスの現在のディレクトリへの完全パスを指定する null で終わる文字列へのポインター。 このパラメーターが null の場合、呼び出しプロセスと同じ現在のドライブとディレクトリが新しいプロセスで使用されます。

  • lpStartupInfo
    [入力] ウィンドウのステーション、デスクトップ、標準ハンドル、および起動したプロセスのメイン ウィンドウの外観を指定する、Win32 STARTUPINFOW 構造体へのポインター。

  • lpProcessInformation
    [入力] 起動するプロセスについての識別情報を指定する Win32 PROCESS_INFORMATION 構造体へのポインター。

  • debuggingFlags
    [入力] デバッグ オプションを指定する CorDebugCreateProcessFlags 列挙型の値。

  • ppProcess
    [出力] プロセスを表す ICorDebugProcess オブジェクトのアドレスへのポインター。

解説

このメソッドのパラメーターは、Win32 の CreateProcess メソッドのパラメーターと同じです。

アンマネージ混合モードのデバッグを有効にするには、dwCreationFlags を DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS に設定します。 マネージ デバッグのみを使用する場合は、これらのフラグは設定しません。

デバッガーとデバッグするプロセス (アタッチされたプロセス) が 1 つのコンソールを共有する場合、および相互運用機能デバッグを使用する場合は、アタッチされたプロセスがコンソールをロックしたまま、デバッグ イベントの発生場所で停止する可能性があります。 次に、デバッガーを実行するとコンソールの使用がブロックされます。 この問題の発生を防ぐには、dwCreationFlags パラメーターに CREATE_NEW_CONSOLE フラグを設定します。

相互運用機能デバッグは、Win9x および非 x86 プラットフォーム (IA-64 ベースのプラットフォームや AMD-64 ベースのプラットフォームなど) ではサポートされません。

必要条件

プラットフォーム: 「.NET Framework システム要件」を参照

ヘッダー: CorDebug.idl、CorDebug.h

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

参照

参照

ICorDebug インターフェイス