StartHeapTrace

Cette fonction inscrit et démarre une session de suivi de tas pour un ensemble de PID spécifiés. Vous pouvez également activer la marche de pile pour certains événements de tas, tels que l’allocation ou la suppression, à l’aide de cette fonction.

Le processus pour lequel le suivi du tas doit être activé doit être créé avant d’appeler cette fonction. Pour capturer les événements de tas dès le début du programme, il est conseillé de commencer le processus avec l’indicateur CREATE_SUSPENDED , puis de suivre le tas activé pour son PID, puis que le processus a repris.

Le suivi du tas est très détaillé et peut rapidement générer un fichier de trace très volumineux. Les événements peuvent être perdus facilement si les mémoires tampons de la session sont trop petites ou trop peu nombreuses. Il est recommandé de limiter le nombre de processus pour lesquels le suivi du tas est activé afin de ne pas perdre d’événements. L’activation du suivi du tas peut avoir un impact sur les performances du processus en cours de suivi.

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
    );

Paramètres

TraceHandle [out]
Stocke un handle dans une session de suivi d’événements. Ce paramètre est défini sur zéro si le handle n’est pas valide. Ce paramètre ne doit pas être comparé à INVALID_HANDLE_VALUE. N’utilisez pas ce handle si la fonction échoue.

Propriétés [in, out]
Stocke un pointeur vers une structure EVENT_TRACE_PROPERTIES . EVENT_TRACE_PROPERTIES configure certains aspects du comportement de session.

Il n’est pas nécessaire de définir le membre GUID, car cette fonction utilise toujours sa propre valeur. Si vous spécifiez un GUID, il ne sera pas utilisé.

wszSessionName [in]
SNom de session à passer à StartTrace.

Pids [in]
Tableau d’ID de processus pour activer le suivi du tas.

cPids [in]
Taille du tableau Pids.

cStackTracingEventIds [in]
Taille du tableau StackTracingEventIds.

Valeur de retour

ERROR_SUCCESS indique la réussite.

Les valeurs d’erreur possibles sont décrites dans le tableau suivant.

Valeur d’erreur Description

ERROR_ALREADY_EXISTS

Un seul instance du journal du noyau s’exécute sur le système. Si cette fonction tente de démarrer après qu’un autre composant a démarré la journalisation du noyau, cette erreur est probablement retournée.

ERROR_INVALID_FLAGS

Indique peut-être qu’il existe des indicateurs de trace non valides dans Properties.EnableFlags.

ERROR_OUT_OF_MEMORY

Indique éventuellement un échec d’allocation de mémoire pour EVENT_TRACE_PROPERTIES.

Si la fonction échoue pour une raison autre que celles répertoriées, un code d’erreur système est retourné.

Notes

None

Fonctions

UpdateHeapTrace