Condividi tramite


Funzione FunctionLeave3WithInfo

Notifica al profiler che il controllo viene restituito da una funzione e fornisce un handle che può essere passato al metodo ICorProfilerInfo3::GetFunctionLeave3Info per recuperare lo stack frame e il valore restituito.

void __stdcall FunctionLeave3WithInfo(
               [in] FunctionIDOrClientID functionIDOrClientID,
               [in] COR_PRF_ELT_INFO eltInfo);

Parametri

  • functionIDOrClientID
    [in] Identificatore della funzione da cui viene restituito il controllo.

  • 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 FunctionLeave3WithInfo notifica al profiler le funzioni che vengono chiamate e consente al profiler di esaminare il valore restituito tramite il metodo ICorProfilerInfo3::GetFunctionLeave3Info. Per accedere alle informazioni sul valore restituito deve essere impostato il flag COR_PRF_ENABLE_FUNCTION_RETVAL. 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 FunctionLeave3WithInfo è 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 FunctionLeave3WithInfo 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 FunctionLeave3WithInfo.

La funzione FunctionLeave3WithInfo 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

Vedere anche

Riferimenti

GetFunctionLeave3Info

FunctionEnter3

FunctionLeave3

FunctionTailcall3

FunctionEnter3WithInfo

FunctionTailcall3WithInfo

SetEnterLeaveFunctionHooks3

SetEnterLeaveFunctionHooks3WithInfo

SetFunctionIDMapper

SetFunctionIDMapper2

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.