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 [in]起動されたプロセスによって実行されるモジュールを指定する null で終了する文字列へのポインター。 モジュールは、呼び出し元プロセスのセキュリティ コンテキストで実行されます。

lpCommandLine [in]起動されたプロセスによって実行されるコマンド ラインを指定する null で終わる文字列へのポインター。 アプリケーション名 (たとえば、"SomeApp.exe") は最初の引数である必要があります。

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

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

bInheritHandles [in]呼び出し元プロセス内の継承可能な各ハンドルが起動されたプロセスによって継承されることを示す true に設定するか、ハンドルが継承されていないことを示す false に設定します。 継承されたハンドルは、元のハンドルと同じ値とアクセス権を持ちます。

dwCreationFlags [in]優先度クラスと起動されたプロセスの動作を制御する Win32 プロセス作成フラグ のビットごとの組み合わせ。

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

lpCurrentDirectory [in]プロセスの現在のディレクトリへの完全なパスを指定する null で終わる文字列へのポインター。 このパラメーターが null の場合、新しいプロセスは呼び出し元プロセスと同じ現在のドライブとディレクトリを持つことになります。

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

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

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

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

解説

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

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

デバッガーとデバッグ対象のプロセス (アタッチされたプロセス) が 1 つのコンソールを共有する場合、および相互運用機能デバッグが使用されている場合は、アタッチされたプロセスがコンソール ロックを保持し、デバッグ イベントで停止する可能性があります。 デバッガーは、その後、コンソールの使用の試みをブロックします。 この問題を回避するには、dwCreationFlags パラメーターに CREATE_NEW_CONSOLE フラグを設定します。

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

必要条件

:システム要件」を参照してください。

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

ライブラリ: CorGuids.lib

.NET Framework のバージョン: 1.0 以降で使用可能

関連項目