Condividi tramite


StartHeapTrace

Questa funzione registra e avvia una sessione di traccia dell'heap per un set di PID specificati. È anche possibile abilitare l'analisi dello stack per determinati eventi heap, ad esempio l'allocazione o l'eliminazione usando questa funzione.

Il processo per cui deve essere abilitata la traccia heap deve essere creato prima di chiamare questa funzione. Per acquisire gli eventi dell'heap dall'inizio del programma, è consigliabile avviare il processo con il flag CREATE_SUSPENDED , quindi la traccia dell'heap abilitata per il piD, quindi il processo è ripreso.

La traccia heap è molto dettagliata e può generare rapidamente un file di traccia di grandi dimensioni. Gli eventi possono essere persi facilmente se i buffer della sessione sono troppo piccoli o troppo pochi. È consigliabile limitare il numero di processi per cui è abilitata la traccia dell'heap per evitare di perdere eventi. L'abilitazione della traccia heap può avere un impatto sulle prestazioni del processo di traccia.

ULONG
WINAPI
StartHeapTrace(
    _Out_ PTRACEHANDLE TraceHandle,
    _Inout_ PEVENT_TRACE_PROPERTIES Properties,
    _In_z_ LPCWSTR wszSessionName,
    _In_reads_opt_(cPids) const ULONG Pids[],
    _In_  ULONG cPids,
    _In_reads_opt_(cStackTracingEventIds) const STACK_TRACING_EVENT_ID StackTracingEventIds[],
    _In_  ULONG cStackTracingEventIds
    );

Parametri

TraceHandle [out]
Archivia un handle in una sessione di traccia eventi. Questo parametro è impostato su zero se l'handle non è valido. Questo parametro non deve essere confrontato con INVALID_HANDLE_VALUE. Non usare questo handle se la funzione ha esito negativo.

Proprietà [in, out]
Archivia un puntatore a una struttura EVENT_TRACE_PROPERTIES . EVENT_TRACE_PROPERTIES configura alcuni aspetti del comportamento della sessione.

Non è necessario impostare il membro Guid perché questa funzione usa sempre il proprio valore. Se si specifica un GUID, non verrà usato.

wszSessionName [in]
Nome della sessione da passare a StartTrace.

Pids [in]
Matrice di ID processo in cui abilitare la traccia dell'heap.

cPids [in]
Dimensioni della matrice Pids.

cStackTracingEventIds [in]
Dimensioni della matrice StackTracingEventIds.

Valore restituito

ERROR_SUCCESS indica l'esito positivo.

I valori di errore possibili sono descritti nella tabella seguente.

Valore errore Descrizione

ERROR_ALREADY_EXISTS

Nel sistema viene eseguita solo una singola istanza del logger del kernel. Se questa funzione tenta di avviarsi dopo che un altro componente ha avviato la registrazione del kernel, questo errore potrebbe essere restituito.

ERROR_INVALID_FLAGS

Probabilmente indica che sono presenti flag di traccia non validi in Properties.EnableFlags.

ERROR_OUT_OF_MEMORY

Indica probabilmente l'impossibilità di allocare memoria per EVENT_TRACE_PROPERTIES.

Se la funzione ha esito negativo per un motivo diverso da quelli elencati, viene restituito un codice di errore di sistema.

Osservazioni

nessuno

Funzioni

UpdateHeapTrace