ICLRProfiling::AttachProfiler Yöntemi
Belirtilen profil oluşturucuyu belirtilen işleme ekler.
Sözdizimi
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
Parametreler
dwProfileeProcessID
[in] Profil oluşturucunun eklenmesi gereken işlemin işlem kimliği. 64 bit makinede, profili oluşturulan işlemin bitliği çağıran AttachProfiler
tetikleyici işleminin bit hızıyla eşleşmelidir. Altında çağrılan AttachProfiler
kullanıcı hesabının yönetim ayrıcalıkları varsa, hedef işlem sistemdeki herhangi bir işlem olabilir. Aksi takdirde, hedef işlem aynı kullanıcı hesabına ait olmalıdır.
dwMillisecondsMax
[in] Tamamlanması için AttachProfiler
milisaniye cinsinden süre. Tetikleyici işlemi, belirli bir profil oluşturucunun başlatma işlemini tamamlaması için yeterli olduğu bilinen bir zaman aşımı geçirmelidir.
pClsidProfiler
[in] Yüklenecek profil oluşturucunun CLSID işaretçisi. Tetikleyici işlemi, döndürdüğünden sonra AttachProfiler
bu belleği yeniden kullanabilir.
wszProfilerPath
[in] Yüklenecek profil oluşturucu DLL dosyasının tam yolu. Bu dize, null sonlandırıcı da dahil olmak üzere en fazla 260 karakter içermelidir. Null veya boş bir dizeyse wszProfilerPath
, ortak dil çalışma zamanı (CLR), işaret eden CLSID'nin kayıt defterine bakarak profil oluşturucunun DLL dosyasının pClsidProfiler
konumunu bulmaya çalışır.
pvClientData
[in] ICorProfilerCallback3::InitializeForAttach yöntemiyle profil oluşturucuya geçirilecek verilerin işaretçisi. Tetikleyici işlemi, döndürdüğünden sonra AttachProfiler
bu belleği yeniden kullanabilir. null ise pvClientData
, cbClientData
0 (sıfır) olmalıdır.
cbClientData
[in] İşaret eden verilerin pvClientData
bayt cinsinden boyutu.
Dönüş Değeri
Bu yöntem aşağıdaki HRESULTs döndürür.
HRESULT | Description |
---|---|
S_OK | Belirtilen profil oluşturucu hedef işleme başarıyla iliştirildi. |
CORPROF_E_PROFILER_ALREADY_ACTIVE | Zaten etkin bir profil oluşturucu var veya hedef işleme ekleniyor. |
CORPROF_E_PROFILER_NOT_ATTACHABLE | Belirtilen profil oluşturucu eki desteklemiyor. Tetikleyici işlemi farklı bir profil oluşturucu eklemeye çalışabilir. |
CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER | Hedef işlemin sürümü çağıran AttachProfiler geçerli işlemle uyumlu olmadığından profil oluşturucu eki istenemiyor. |
HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) | Tetikleyici işleminin kullanıcısının hedef işleme erişimi yok. |
HRESULT_FROM_WIN32(ERROR_PRIVILEGE_NOT_HELD) | Tetikleyici işleminin kullanıcısı, belirtilen hedef işleme profil oluşturucu eklemek için gerekli ayrıcalıklara sahip değildir. Uygulama olay günlüğü daha fazla bilgi içerebilir. |
CORPROF_E_IPC_FAILED | Hedef işlemle iletişim kurulurken bir hata oluştu. Bu durum genellikle hedef işlem kapatılırken gerçekleşir. |
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) | Hedef işlem yok veya eki destekleyen bir CLR çalıştırmıyor. Bu, çalışma zamanı numaralandırma yöntemi çağrısından bu yana CLR'nin kaldırıldığını gösterebilir. |
HRESULT_FROM_WIN32(ERROR_TIMEOUT) | Profil oluşturucu yüklenmeye başlamadan zaman aşımı süresi doldu. Ekleme işlemini yeniden deneyebilirsiniz. Zaman aşımları, hedef işlemdeki bir sonlandırıcı zaman aşımı değerinden daha uzun süre çalıştığında oluşur. |
E_INVALIDARG | Bir veya daha fazla parametrenin değerleri geçersiz. |
E_FAIL | Başka, belirtilmemiş bir hata oluştu. |
Diğer hata kodları | Profil oluşturucunun ICorProfilerCallback3::InitializeForAttach yöntemi hatayı gösteren bir HRESULT döndürürse, AttachProfiler aynı HRESULT değerini döndürür. Bu durumda, E_NOTIMPL CORPROF_E_PROFILER_NOT_ATTACHABLE dönüştürülür. |
Açıklamalar
Bellek Yönetimi
COM kurallarına uygun olarak, çağıranın AttachProfiler
(örneğin, profil oluşturucu geliştiricisi tarafından yazılan tetikleyici kodu) parametresinin işaret ettiği pvClientData
veriler için belleği ayırma ve ayırma sorumluluğundadır. CLR çağrıyı AttachProfiler
yürütürken, belleğin hedef işleme işaret eden pvClientData
ve bu işleme ileten bir kopyasını oluşturur. Hedef işlemin içindeki CLR bloğun pvClientData
kendi kopyasını aldığında, bloğu yöntemi aracılığıyla InitializeForAttach
profil oluşturucuya geçirir ve ardından bloğun pvClientData
kopyasını hedef işlemden serbestleştirir.
Gereksinimler
Platform: Bkz. Sistem Gereksinimleri.
Üstbilgi: CorProf.idl, CorProf.h
Kitaplığı: CorGuids.lib
.NET Framework Sürümleri: 4'ten beri kullanılabilir
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin