Bagikan melalui


ICLRProfiling::AttachProfiler Method

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

Lihat juga