I programmi di analisi e i nodi di elaborazione dei messaggi scritti nell'API del linguaggio di programmazione C possono scrivere voci sulla traccia.
Le funzioni cci*Trace possono essere utilizzate da un'estensione definita dall'utente a prescindere dalle impostazioni di traccia. Le funzioni determinano se la traccia è attiva e scrivono solo voci che sono appropriate per le impostazioni di traccia. Quando si richiamano le funzioni cci*Trace, possono essere richieste ulteriori elaborazioni. La funzione cciIsTraceActive viene fornita per consentire all'estensione definita dall'utente di eseguire query nelle impostazioni di traccia ed evitare questa ulteriore elaborazione quando la traccia non è attiva.
In molti casi, è sufficiente gestire il valore restituito dalla funzione cciIsTraceActive come un valore booleano. Se il valore restituito è diverso da zero, la traccia è attiva a qualche livello ed è appropriato richiamare una qualsiasi funzione cci*Trace. Il valore restituito può essere inoltre esaminato attentamente nel caso in cui siano richiesti i dettagli delle impostazioni di traccia.
E' possibile modificare in qualsiasi momento le impostazioni di traccia è quindi consigliabile effettuare regolarmente delle query. Ad esempio, utilizzare cciIsTraceActive per eseguire delle query sulle impostazioni di traccia quando viene immessa una funzione di implementazione.
Le voci di traccia possono essere associate a determinati oggetti; ciò consente ulteriore accuratezza nella scrittura della traccia. Una voce di traccia può essere associata ad un nodo o a un programma di analisi e la traccia è scritta in base all'impostazione di traccia per tale oggetto. L'impostazione di traccia dell'oggetto è ereditata dal flusso di messaggi a cui appartiene il nodo o il programma di analisi. Se non è specificato alcun oggetto, la traccia è associata al gruppo di esecuzione.