Bagikan melalui


Metode ICorDebug::CreateProcess

Meluncurkan proses dan utas utamanya di bawah kontrol debugger.

Sintaks

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

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

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

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

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

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

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

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

lpCurrentDirectory
[in] Penunjuk ke string yang diakhiri 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] Penunjuk ke struktur Win32 STARTUPINFOW yang menentukan stasiun jendela, desktop, handel standar, dan tampilan jendela utama untuk proses yang diluncurkan.

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

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

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

Keterangan

Parameter metode ini sama dengan parameter 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 di peristiwa debug. Debugger kemudian akan memblokir segala upaya untuk menggunakan konsol. Untuk menghindari masalah ini, atur bendera CREATE_NEW_CONSOLE dalam parameter dwCreationFlags.

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

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: CorDebug.idl, CorDebug.h

Pustaka: CorGuids.lib

Versi .NET Framework: Tersedia mulai dari versi 1.0

Lihat juga