Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A megadott profilozót a megadott folyamathoz csatolja.
Szintaxis
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
Paraméterek
dwProfileeProcessID
[in] Annak a folyamatnak a folyamatazonosítója, amelyhez a profilkészítőt csatolni kell. Egy 64 bites gépen a profilozott folyamat bitképességének meg kell egyeznie a meghívandó AttachProfilereseményindító folyamat bitképességével. Ha az a felhasználói fiók, amelynek AttachProfiler a neve rendszergazdai jogosultságokkal rendelkezik, a célfolyamat a rendszer bármely folyamata lehet. Ellenkező esetben a célfolyamatnak ugyanannak a felhasználói fióknak kell lennie.
dwMillisecondsMax
[in] A befejezés időtartama ezredmásodpercben AttachProfiler . Az eseményindító folyamatnak olyan időtúllépést kell átadnia, amelyről ismert, hogy elegendő az adott profilkészítő számára az inicializálás befejezéséhez.
pClsidProfiler
[in] Mutató a betöltendő profiler CLSID azonosítójára. Az eseményindító folyamat a visszatérés után AttachProfiler újra felhasználhatja ezt a memóriát.
wszProfilerPath
[in] A profilkészítő betöltendő DLL-fájljának teljes elérési útja. Ez a sztring legfeljebb 260 karakterből állhat, beleértve a null terminátort is. Ha wszProfilerPath null értékű vagy üres sztring, a közös nyelvi futtatókörnyezet (CLR) megpróbálja megkeresni a profilozó DLL-fájljának helyét a clSID pClsidProfiler beállításjegyzékében.
pvClientData
[in] Az ICorProfilerCallback3::InitializeForAttach metódus által a profilozónak átadott adatokra mutató mutató. Az eseményindító folyamat a visszatérés után AttachProfiler újra felhasználhatja ezt a memóriát. Ha pvClientData null, cbClientData akkor 0 -nak (nulla) kell lennie.
cbClientData
[in] Az adatok mérete bájtban kifejezve pvClientData .
Visszatérési érték
Ez a metódus a következő HRESULT-t adja vissza.
| HRESULT | Description |
|---|---|
| S_OK | A megadott profilkészítő sikeresen kapcsolódott a célfolyamathoz. |
| CORPROF_E_PROFILER_ALREADY_ACTIVE | Már van aktív profilozó, vagy kapcsolódik a célfolyamathoz. |
| CORPROF_E_PROFILER_NOT_ATTACHABLE | A megadott profilkészítő nem támogatja a mellékletet. Az eseményindító folyamat megpróbálhat másik profilkészítőt csatolni. |
| CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER | Nem lehet profilermellékletet kérni, mert a célfolyamat verziója nem kompatibilis a jelenleg hívható AttachProfilerfolyamattal. |
| HRESULT_FROM_WIN32(ERROR_ACCESS_DENIED) | Az eseményindító folyamat felhasználója nem rendelkezik hozzáféréssel a célfolyamathoz. |
| HRESULT_FROM_WIN32(ERROR_PRIVILEGE_NOT_HELD) | Az eseményindító folyamat felhasználója nem rendelkezik a profilkészítő adott célfolyamathoz való csatolásához szükséges jogosultságokkal. Az alkalmazás eseménynaplója további információkat tartalmazhat. |
| CORPROF_E_IPC_FAILED | Hiba történt a célfolyamattal való kommunikáció során. Ez általában akkor fordul elő, ha a célfolyamat leállt. |
| HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND) | A célfolyamat nem létezik, vagy nem olyan CLR-t futtat, amely támogatja a mellékletet. Ez azt jelezheti, hogy a CLR ki lett ürítve a futtatókörnyezet enumerálási metódusának hívása óta. |
| HRESULT_FROM_WIN32(ERROR_TIMEOUT) | Az időtúllépés a profilkészítő betöltése nélkül lejárt. Újrapróbálhatja a csatolási műveletet. Időtúllépések akkor fordulnak elő, ha a célfolyamat véglegesítője hosszabb ideig fut, mint az időtúllépési érték. |
| E_INVALIDARG | Egy vagy több paraméter érvénytelen értékekkel rendelkezik. |
| E_FAIL | Más, meghatározatlan hiba történt. |
| Egyéb hibakódok | Ha a profilozó ICorProfilerCallback3::InitializeForAttach metódusa hibát jelző HRESULT értéket ad vissza, AttachProfiler ugyanazt a HRESULT értéket adja vissza. Ebben az esetben a E_NOTIMPL CORPROF_E_PROFILER_NOT_ATTACHABLE lesz konvertálva. |
Megjegyzések
Memóriakezelés
A COM-konvencióknak megfelelően a hívója AttachProfiler (például a profilkészítő fejlesztő által létrehozott triggerkód) felelős a paraméter által megadott adatok pvClientData memóriájának kiosztásáért és kiosztásának megszüntetéséért. Amikor a CLR végrehajtja a AttachProfiler hívást, másolatot készít a memóriáról, amely pvClientData a célfolyamatra mutat és továbbítja azt. Amikor a célfolyamaton belüli CLR megkapja a pvClientData blokk saját példányát, a metóduson keresztül átadja a blokkot a InitializeForAttach profilozónak, majd felszabadítja a blokk másolatát a pvClientData célfolyamatból.
Követelmények
Platformok: Lásd: Rendszerkövetelmények.
Fejléc: CorProf.idl, CorProf.h
Könyvtár: CorGuids.lib
.NET-keretrendszer verziók: 4 óta érhető el