Funzione FunctionLeave3WithInfoFunctionLeave3WithInfo Function

Notifica al profiler che controllo viene restituito da una funzione e fornisce un handle che può essere passato al ICorProfilerInfo3:: GetFunctionLeave3Info per recuperare lo stack frame e il valore restituito.Notifies the profiler that control is being returned from a function, and provides a handle that can be passed to the ICorProfilerInfo3::GetFunctionLeave3Info method to retrieve the stack frame and the return value.

SintassiSyntax

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

ParametriParameters

functionIDOrClientID
[in] Identificatore della funzione da cui il controllo viene restituito.[in] The identifier of the function from which control is returned.

eltInfo
[in] Handle opaco che rappresenta le informazioni su un determinato stack frame.[in] An opaque handle that represents information about a given stack frame. Questo handle è valido solo durante il callback a cui viene passato.This handle is valid only during the callback to which it is passed.

NoteRemarks

Il FunctionLeave3WithInfo metodo di callback di notifica al profiler le funzioni che vengono chiamate e consente al profiler di usare il ICorProfilerInfo3:: GetFunctionLeave3Info per controllare il valore restituito.The FunctionLeave3WithInfo callback method notifies the profiler as functions are called, and allows the profiler to use the ICorProfilerInfo3::GetFunctionLeave3Info method to inspect the return value. Per accedere alle informazioni di valore restituito, il COR_PRF_ENABLE_FUNCTION_RETVAL flag deve essere impostata.To access return value information, the COR_PRF_ENABLE_FUNCTION_RETVAL flag has to be set. Il profiler può utilizzare il metodo ICorProfilerInfo:: SetEventMask per impostare i flag di evento e quindi usare il ICorProfilerInfo3:: SetEnterLeaveFunctionHooks3WithInfo per registrare il implementazione di questa funzione.The profiler can use the ICorProfilerInfo::SetEventMask method to set the event flags, and then use the ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo method to register your implementation of this function.

Il FunctionLeave3WithInfo funzione è un callback, è necessario implementarla.The FunctionLeave3WithInfo function is a callback; you must implement it. L'implementazione deve utilizzare il __declspec(naked) attributo della classe di archiviazione.The implementation must use the __declspec(naked) storage-class attribute.

Il motore di esecuzione non viene salvato alcun registro prima di chiamare questa funzione.The execution engine does not save any registers before calling this function.

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

  • All'uscita, è necessario ripristinare lo stack recuperando tutti i parametri che sono stati inviati dal chiamante.On exit, you must restore the stack by popping off all the parameters that were pushed by its caller.

L'implementazione di FunctionLeave3WithInfo non devono bloccarsi perché ritarderà l'operazione di garbage collection.The implementation of FunctionLeave3WithInfo should not block, because it will delay garbage collection. L'implementazione non deve tentare una garbage collection, perché lo stack potrebbe non essere in uno stato di raccolta semplice garbage.The implementation should not attempt a garbage collection, because the stack may not be in a garbage collection-friendly state. Se si tenta un'operazione di garbage collection, il runtime si bloccherà finché FunctionLeave3WithInfo restituisce.If a garbage collection is attempted, the runtime will block until FunctionLeave3WithInfo returns.

Il FunctionLeave3WithInfo funzione non deve chiamare codice gestito o causare un'allocazione di memoria gestita in alcun modo.The FunctionLeave3WithInfo function must not call into managed code or cause a managed memory allocation in any way.

RequisitiRequirements

Piattaforme: vedere requisiti di sistema.Platforms: See System Requirements.

Intestazione: Corprof. idlHeader: CorProf.idl

Libreria: CorGuids. libLibrary: CorGuids.lib

Versioni di .NET framework: Disponibile dalla 4Available since 4.NET Framework Versions: Disponibile dalla 4Available since 4

Vedere ancheSee Also

GetFunctionLeave3InfoGetFunctionLeave3Info
FunctionEnter3FunctionEnter3
FunctionLeave3FunctionLeave3
FunctionTailcall3FunctionTailcall3
FunctionEnter3WithInfoFunctionEnter3WithInfo
FunctionTailcall3WithInfoFunctionTailcall3WithInfo
Metodo SetEnterLeaveFunctionHooks3SetEnterLeaveFunctionHooks3
SetEnterLeaveFunctionHooks3WithInfoSetEnterLeaveFunctionHooks3WithInfo
SetFunctionIDMapperSetFunctionIDMapper
SetFunctionIDMapper2SetFunctionIDMapper2
Funzioni statiche globali di profilaturaProfiling Global Static Functions