Funzione FunctionTailcall3WithInfo
Notifica al profiler che la funzione in esecuzione sta per eseguire una chiamata tail a un'altra funzione e fornisce un handle che può essere passato al metodo ICorProfilerInfo3::GetFunctionTailcall3Info per recuperare lo stack frame.
void __stdcall FunctionTailcall3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parametri
functionIDOrClientID
[in] Identificatore della funzione attualmente in esecuzione che sta per effettuare una chiamata tail.eltInfo
[in] Handle opaco che rappresenta le informazioni su uno stack frame specificato. Questo handle è valido solo durante il callback a cui viene passato.
Note
Il metodo di callback FunctionTailcall3WithInfo notifica al profiler le funzioni che vengono chiamate e consente al profiler di esaminare lo stack frame tramite il metodo ICorProfilerInfo3::GetFunctionTailcall3Info. Per accedere alle informazioni sullo stack frame deve essere impostato il flag COR_PRF_ENABLE_FRAME_INFO. Il profiler può utilizzare prima il metodo ICorProfilerInfo::SetEventMask per impostare i flag dell'evento e quindi il metodo ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo per registrare l'implementazione di questa funzione.
La funzione FunctionTailcall3WithInfo è un callback; è necessario implementarla. L'implementazione deve utilizzare l'attributo della classe di archiviazione __declspec(naked).
Il motore di esecuzione non salva alcun registro prima di chiamare la funzione.
In ingresso, è necessario salvare tutti i registri che si utilizzano, incluso quelli dell'unità a virgola mobile (FPU).
In uscita, è necessario ripristinare lo stack recuperando tutti i parametri inseriti dal chiamante.
L'implementazione di FunctionTailcall3WithInfo non deve bloccarsi perché rimanderà l'operazione di Garbage Collection. L'implementazione non deve tentare una Garbage Collection perché lo stack potrebbe non trovarsi in uno stato favorevole per tale operazione. Se viene tentato un Garbage Collection, il runtime si bloccherà fino al completamento di FunctionTailcall3WithInfo.
Inoltre, la funzione FunctionTailcall3WithInfo non deve effettuare una chiamata nel codice gestito o causare in alcun modo un'allocazione della memoria gestita.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: CorProf.idl
Libreria: CorGuids.lib
Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Vedere anche
Riferimenti
SetEnterLeaveFunctionHooks3WithInfo
Altre risorse
Funzioni statiche globali di profilatura
Cronologia delle modifiche
Data |
Cronologia |
Motivo |
---|---|---|
Ottobre 2010 |
__stdcall è stato aggiunto alla sintassi. |
Commenti e suggerimenti dei clienti. |