Os nós e analisadores do processamento de mensagens gravados na API da linguagem de programação C podem gravar entradas para rastreio.
As funções cci*Trace podem ser utilizadas por uma extensão definida pelo usuário apesar das configurações de rastreio. As funções determinam se o rastreio está ativo e apenas gravam entradas que são apropriadas para as configurações de rastreio. Ao chamar as funções cci*Trace, algum processamento adicional pode ser necessário. A função cciIsTraceActive é fornecida para permitir à extensão definida pelo usuário consultar as configurações de rastreio e impedir esse processamento adicional, quando o rastreio está inativo.
Em muitos casos, será suficiente considerar o valor retornado da função cciIsTraceActive como um valor Booleano. Se o valor retornado for diferente de zero, o rastreio estará ativo em algum nível e será apropriado chamar qualquer uma das funções cci*Trace. O valor retornado também pode ser inspecionado rigorosamente, nos casos quando são necessários detalhes das configurações de rastreio.
As configurações de rastreio podem ser alteradas a qualquer momento, portanto, é aconselhável consultá-las regularmente. Por exemplo, utilize cciIsTraceActive para consultar as configurações de rastreio, quando é informada uma função de implementação.
As entradas de rastreio podem estar associadas a determinados objetos, que permitem refinamento adicional de controle para gravação do rastreio. Uma entrada de rastreio pode ser associada a um nó ou analisador e o rastreio será gravado de acordo com a configuração de rastreio para esse objeto. A configuração de rastreio do objeto é herdada do fluxo de mensagens, ao qual pertence o nó ou o analisador. Se nenhum objeto for especificado, o rastreio será associado ao grupo de execução.