Target User-Mode Langsung

Metode untuk membuat dan melampirkan ke proses yang tercantum dalam topik ini dapat digunakan untuk komputer lokal dan untuk komputer jarak jauh yang menjalankan server proses.

Proses mode pengguna dapat dibuat menggunakan Create Process atau CreateProcess2, yang menjalankan perintah tertentu untuk membuat proses. Metode AttachProcess dapat digunakan untuk melampirkan mesin debugger ke proses mode pengguna yang ada. CreateProcessAndAttach dan CreateProcessAndAttach2 membuat proses mode pengguna baru dan melampirkannya atau proses mode pengguna lain di komputer yang sama. Operasi PermintaanDEBUG_REQUEST_GET_ADDITIONAL_CREATE_OPTIONS, DEBUG_REQUEST_SET_ADDITIONAL_CREATE_OPTIONS, dan DEBUG_REQUEST_SET_LOCAL_IMPLICIT_COMMAND_LINE dapat digunakan untuk mengatur beberapa opsi default untuk membuat proses.

Catatan Mesin tidak sepenuhnya melekat pada proses sampai metode WaitForEvent telah dipanggil. Hanya setelah proses menghasilkan peristiwa -- misalnya, peristiwa pembuatan proses -- apakah itu tersedia dalam sesi debugger. Lihat Sesi Debugging dan Model Eksekusi untuk detail selengkapnya.

Metode GetRunningProcessSystemIds akan mengembalikan ID proses dari semua proses yang berjalan di komputer. ID proses program tertentu dapat ditemukan menggunakan GetRunningProcessSystemIdByExecutableName. Mengingat ID proses, deskripsi proses dikembalikan oleh GetRunningProcessDescription.

Opsi Proses

Opsi proses menentukan bagian dari perilaku mesin ketika dilampirkan ke proses mode pengguna, termasuk apakah mesin debugger akan secara otomatis melekat pada proses turunan yang dibuat oleh proses target dan apa yang dilakukan mesin dengan proses target saat keluar. Lihat DEBUG_PROCESS_XXX untuk deskripsi opsi proses.

Opsi proses dapat dikueri menggunakan GetProcessOptions. Mereka dapat diubah menggunakan AddProcessOptions, RemoveProcessOptions, dan SetProcessOptions.

Memutuskan sambungan dari Proses

Ada tiga cara berbeda bagi mesin untuk memutuskan sambungan dari proses.

  1. Lepaskan. Lanjutkan semua utas dalam proses sehingga akan terus berjalan, tidak lagi di-debug. DetachCurrentProcess akan melepaskan mesin dari proses saat ini dan DetachProcesses akan melepaskan mesin dari semua proses. Tidak semua target mendukung pencopotan. Operasi PermintaanDEBUG_REQUEST_TARGET_CAN_DETACH dapat digunakan untuk memeriksa apakah target mendukung pencopotan.

  2. Hentikan. Mencoba untuk membunuh proses. TerminateCurrentProcess akan mengakhiri proses saat ini dan TerminateProcesses akan mengakhiri semua proses dalam sesi debugger.

  3. Abaikan saja. Hapus proses dari daftar proses yang sedang di-debug. Sistem operasi masih akan menganggap proses sebagai di-debug dan akan tetap ditangguhkan sampai debugger lain melampirkannya atau dimatikan. AbandonCurrentProcess akan meninggalkan proses saat ini.