Funzione FunctionTailcall3

Notifica al profiler che la funzione attualmente in esecuzione sta per eseguire una chiamata di coda a un'altra funzione.

Sintassi

void __stdcall FunctionTailcall3 (FunctionOrRemappedID functionOrRemappedID);  

Parametri

functionOrRemappedID [in] Identificatore della funzione attualmente in esecuzione che sta per effettuare una chiamata alla coda.

Commenti

La FunctionTailcall3 funzione di callback notifica al profiler come funzioni vengono chiamate. Usare il metodo ICorProfilerInfo3::SetEnterLeaveFunctionHooks3 per registrare l'implementazione di questa funzione.

La FunctionTailcall3 funzione è un callback. È necessario implementarla. L'implementazione deve usare l'attributo __declspec(naked) della classe di archiviazione.

Il motore di esecuzione non salva alcun registro prima di chiamare questa funzione.

  • Nella voce è necessario salvare tutti i registri usati, inclusi quelli nell'unità a virgola mobile .On entry, you must save all registers that you use, including those in the floating-point unit (FPU).

  • All'uscita, è necessario ripristinare lo stack rimuovendo tutti i parametri di cui è stato eseguito il push dal chiamante.

L'implementazione di FunctionTailcall3 non deve essere bloccata perché ritarderà l'operazione di Garbage Collection. L'implementazione non deve tentare un'operazione di Garbage Collection, perché lo stack potrebbe non trovarsi in uno stato descrittivo di Garbage Collection. Se si tenta di eseguire un'operazione di Garbage Collection, il runtime verrà bloccato fino a FunctionTailcall3 quando non viene restituito.

La FunctionTailcall3 funzione non deve chiamare nel codice gestito o causare un'allocazione di memoria gestita in alcun modo.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl

Libreria: CorGuids.lib

Versioni di .NET Framework: Disponibile da 4

Vedi anche