Aracılığıyla paylaş


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 AttachProfilertetikleyici 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 AttachProfilergeç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.