Bagikan melalui


Metode ICorDebug::CreateProcess

Meluncurkan proses dan utas utamanya di bawah kendali debugger.

Syntax

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
);

Parameter-parameternya

lpApplicationName [di] Penunjuk ke string yang dihentikan null yang menentukan modul yang akan dijalankan oleh proses yang diluncurkan. Modul dijalankan dalam konteks keamanan proses panggilan.

lpCommandLine [di] Penunjuk ke string null-terminated yang menentukan baris perintah yang akan dijalankan oleh proses yang diluncurkan. Nama aplikasi (misalnya, "SomeApp.exe") harus menjadi argumen pertama.

lpProcessAttributes [di] Penunjuk ke struktur Win32 SECURITY_ATTRIBUTES yang menentukan deskriptor keamanan untuk proses tersebut. Jika lpProcessAttributes null, proses mendapatkan deskriptor keamanan default.

lpThreadAttributes [di] Penunjuk ke struktur Win32 SECURITY_ATTRIBUTES yang menentukan deskriptor keamanan untuk utas utama proses. Jika lpThreadAttributes null, utas mendapatkan deskriptor keamanan default.

bInheritHandles [di] Atur ke true untuk menunjukkan bahwa setiap handel yang dapat diwariskan dalam proses panggilan diwariskan oleh proses yang diluncurkan, atau false untuk menunjukkan bahwa handel tidak diwariskan. Handel yang diwariskan memiliki nilai dan hak akses yang sama dengan handel asli.

dwCreationFlags [di] Kombinasi bitwise dari Bendera Pembuatan Proses Win32 yang mengontrol kelas prioritas dan perilaku proses yang diluncurkan.

lpEnvironment [di] Penunjuk ke blok lingkungan untuk proses baru.

lpCurrentDirectory [di] Penunjuk ke string yang dihentikan null yang menentukan jalur lengkap ke direktori saat ini untuk proses tersebut. Jika parameter ini null, proses baru akan memiliki drive dan direktori saat ini yang sama dengan proses panggilan.

lpStartupInfo [di] Arahkan ke struktur Win32 STARTUPINFOW yang menentukan stasiun jendela, desktop, handel standar, dan tampilan jendela utama untuk proses yang diluncurkan.

lpProcessInformation [di] Pointer ke struktur Win32 PROCESS_INFORMATION yang menentukan informasi identifikasi tentang proses yang akan diluncurkan.

debuggingFlags [di] Nilai enumerasi CorDebugCreateProcessFlags yang menentukan opsi penelusuran kesalahan.

ppProcess [out] Penunjuk ke alamat objek ICorDebugProcess yang mewakili proses.

Komentar

Parameter metode ini sama dengan yang ada di metode Win32 CreateProcess .

Untuk mengaktifkan penelusuran kesalahan mode campuran yang tidak dikelola, atur dwCreationFlags ke DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. Jika Anda hanya ingin menggunakan penelusuran kesalahan terkelola, jangan atur bendera ini.

Jika debugger dan proses yang akan di-debug (proses terlampir) berbagi satu konsol, dan jika penelusuran kesalahan interop digunakan, proses yang terpasang dapat menahan kunci konsol dan berhenti pada peristiwa debug. Debugger kemudian akan memblokir upaya apa pun untuk menggunakan konsol. Untuk menghindari masalah ini, atur bendera CREATE_NEW_CONSOLE dalam dwCreationFlags parameter .

Penelusuran kesalahan interop tidak didukung pada platform Win9x dan non-x86 seperti platform berbasis IA-64 dan berbasis AMD64.

Persyaratan

Platform: Lihat Sistem operasi yang didukung .NET.

Header: CorDebug.idl, CorDebug.h

Perpustakaan: CorGuids.lib

Versi .NET: Tersedia sejak .NET Framework 1.0

Lihat juga