Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Notifica al profiler che la funzione attualmente in esecuzione sta per eseguire una chiamata di coda a un'altra funzione.
Nota
La FunctionTailcall funzione è deprecata in .NET Framework versione 2.0. Continuerà a funzionare, ma comporterà una penalità delle prestazioni. Usare invece la funzione FunctionTailcall2 .
Sintassi
void __stdcall FunctionTailcall (
[in] FunctionID funcID
);
Parametri
funcID [in] Identificatore della funzione attualmente in esecuzione che sta per effettuare una chiamata alla coda.
Commenti
La funzione di destinazione della chiamata finale userà il frame dello stack corrente e restituirà direttamente al chiamante della funzione che ha effettuato la chiamata alla coda. Ciò significa che un callback functionLeave non verrà rilasciato per una funzione che è la destinazione di una chiamata alla coda.
La FunctionTailcall funzione è un callback. È necessario implementarla. L'implementazione deve usare l'attributo __declspecdella classe di archiviazione (naked).
Il motore di esecuzione non salva i registri prima di chiamare questa funzione.
Nella voce è necessario salvare tutti i registri usati, inclusi quelli nell'unità a virgola mobile (FPU).
All'uscita, è necessario ripristinare lo stack rimuovendo tutti i parametri che sono stati sottoposti a push dal chiamante.
L'implementazione di FunctionTailcall non deve essere bloccata perché ritarderà la Garbage Collection. L'implementazione non deve tentare una Garbage Collection perché lo stack potrebbe non essere in uno stato descrittivo di Garbage Collection. Se viene eseguito un tentativo di Garbage Collection, il runtime blocca fino a quando non viene restituito FunctionTailcall .
Inoltre, la FunctionTailcall funzione non deve chiamare nel codice gestito o in alcun modo causare un'allocazione di memoria gestita.
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: CorProf.idl
Libreria: CorGuids.lib
Versioni di .NET Framework: 1.1, 1.0