Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Melampirkan profiler yang ditentukan ke proses yang ditentukan.
Sintaks
HRESULT AttachProfiler(
[in] DWORD dwProfileeProcessID,
[in] DWORD dwMillisecondsMax, // optional
[in] const CLSID * pClsidProfiler,
[in] LPCWSTR wszProfilerPath, // optional
[in] size_is(cbClientData)] void * pvClientData, // optional
[in] UINT cbClientData); // optional
Parameter
dwProfileeProcessID
[in] ID proses dari proses tempat profiler harus dilampirkan. Pada komputer 64-bit, bitness proses yang diprofilkan harus cocok dengan bitness proses pemicu yang memanggil AttachProfiler. Jika akun pengguna tempat AttachProfiler dipanggil memiliki izin administratif, proses target mungkin merupakan proses apa pun pada sistem. Jika tidak, proses target harus dimiliki oleh akun pengguna yang sama.
dwMillisecondsMax
[in] Durasi waktu, dalam milidetik, untuk menyelesaikan AttachProfiler. Proses pemicu harus melewati batas waktu yang diketahui cukup bagi profiler tertentu untuk menyelesaikan inisialisasinya.
pClsidProfiler
[in] Pointer ke CLSID profiler yang akan dimuat. Proses pemicu dapat menggunakan kembali memori ini setelah AttachProfiler kembali.
wszProfilerPath
[in] Jalur lengkap ke file perpustakaan taut-dinamis profiler yang akan dimuat. String ini tidak boleh berisi lebih dari 260 karakter, termasuk terminator null. Jika wszProfilerPath adalah null atau string kosong, runtime bahasa umum (CLR) akan mencoba menemukan lokasi file perpustakaan taut-dinamis profiler dengan mencari CLSID di registri yang ditunjuk pClsidProfiler.
pvClientData
[in] Pointer ke data yang akan diteruskan ke profiler dengan metode ICorProfilerCallback3::InitializeForAttach. Proses pemicu dapat menggunakan kembali memori ini setelah AttachProfiler kembali. Jika pvClientData adalah null, cbClientData harus 0 (nol).
cbClientData
[in] Ukuran data yang ditunjuk pvClientData dalam byte.
Tampilkan Nilai
Metode ini mengembalikan HRESULTs berikut.
| HRESULT | Deskripsi |
|---|---|
| S_OK | Profiler yang ditentukan telah berhasil melampirkan ke proses target. |
| CORPROF_E_PROFILER_ALREADY_ACTIVE | Sudah ada profiler yang aktif atau terlampir pada proses target. |
| CORPROF_E_PROFILER_NOT_ATTACHABLE | Profiler yang ditentukan tidak mendukung lampiran. Proses pemicu mungkin mencoba untuk melampirkan profiler yang berbeda. |
| CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER | Tidak dapat meminta lampiran profiler, karena versi proses target tidak kompatibel dengan proses saat ini yang memanggil AttachProfiler. |
| HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) | Pengguna proses pemicu tidak memiliki akses ke proses target. |
| HRESULT_FROM_WIN32(ERROR_PRIVILEGE_NOT_HELD) | Pengguna proses pemicu tidak memiliki hak istimewa yang diperlukan untuk melampirkan profiler ke proses target yang ditentukan. Log peristiwa aplikasi mungkin berisi lebih banyak informasi. |
| CORPROF_E_IPC_FAILED | Kegagalan terjadi ketika berkomunikasi dengan proses target. Ini biasanya terjadi jika proses target dimatikan. |
| HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) | Proses target tidak ada atau tidak menjalankan runtime bahasa umum yang mendukung lampiran. Ini mungkin mengindikasikan bahwa runtime bahasa umum dibongkar sejak panggilan ke metode enumerasi runtime bahasa umum. |
| HRESULT_FROM_WIN32(ERROR_TIMEOUT) | Batas waktu berakhir tanpa mulai memuat profiler. Anda dapat mencoba kembali operasi lampirkan. Batas waktu terjadi ketika finalizer dalam proses target berjalan untuk waktu yang lebih lama daripada nilai batas waktu. |
| E_INVALIDARG | Satu atau beberapa parameter memiliki nilai yang tidak valid. |
| E_FAIL | Beberapa kegagalan lain yang tidak ditentukan terjadi. |
| Kode kesalahan lainnya | Jika metode ICorProfilerCallback3::InitializeForAttach profiler mengembalikan HRESULT yang mengindikasikan kegagalan, AttachProfiler mengembalikan HRESULT yang sama. Dalam hal ini, E_NOTIMPL diubah menjadi CORPROF_E_PROFILER_NOT_ATTACHABLE. |
Keterangan
Manajemen Memori
Sesuai dengan konvensi COM, pemanggil AttachProfiler (misalnya, kode pemicu yang ditulis oleh pengembang profiler) bertanggung jawab untuk mengalokasikan dan membatalkan alokasikan memori untuk data yang ditunjuk parameter pvClientData. Ketika runtime bahasa umum menjalankan panggilan AttachProfiler, runtime bahasa umum membuat salinan memori yang ditunjuk pvClientData dan mengirimkannya ke proses target. Ketika runtime bahasa umum di dalam proses target menerima salinan blok pvClientData-nya sendiri, runtime bahasa umum meneruskan blok ke profiler melalui metode InitializeForAttach, lalu membatalkan alokasi salinan blok pvClientData dari proses target.
Persyaratan
Platform: Lihat Persyaratan Sistem.
Header: CorProf.idl, CorProf.h
Pustaka: CorGuids.lib
Versi .NET Framework: Tersedia mulai dari 4