Funzione FunctionEnter3WithInfo
Notifica al profiler che il controllo viene passato a una funzione e fornisce un handle che può essere passato al metodo ICorProfilerInfo3::GetFunctionEnter3Info per recuperare il frame dello stack e gli argomenti della funzione.
Sintassi
void __stdcall FunctionEnter3WithInfo(
[in] FunctionIDOrClientID functionIDOrClientID,
[in] COR_PRF_ELT_INFO eltInfo);
Parametri
functionIDOrClientID
[in] Identificatore della funzione a cui viene passato il controllo.
eltInfo
[in] Handle opaco che rappresenta informazioni su un determinato frame dello stack. Questo handle è valido solo durante il callback a cui viene passato.
Commenti
Il FunctionEnter3WithInfo
metodo di callback notifica al profiler come funzioni e consente al profiler di usare il metodo ICorProfilerInfo3::GetFunctionEnter3Info per controllare i valori degli argomenti. Per accedere alle informazioni sugli argomenti, il COR_PRF_ENABLE_FUNCTION_ARGS
flag deve essere impostato. Il profiler può usare il metodo ICorProfilerInfo::SetEventMask per impostare i flag di evento e quindi usare il metodo ICorProfilerInfo3::SetEnterLeaveFunctionHooks3WithInfo per registrare l'implementazione di questa funzione.
La FunctionEnter3WithInfo
funzione è un callback. È necessario implementarla. L'implementazione deve usare l'attributo __declspec(naked)
della classe di archiviazione.
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 FunctionEnter3WithInfo
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 FunctionEnter3WithInfo
.
La FunctionEnter3WithInfo
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 2.0