Compartilhar via


StartHeapTrace

Essa função registra e inicia uma sessão de rastreamento de heap para um conjunto de PIDs especificados. Você também pode habilitar o andamento da pilha para determinados eventos de heap, como alocação ou exclusão, usando essa função.

O processo para o qual o rastreamento de heap deve ser habilitado deve ser criado antes de chamar essa função. Para capturar eventos de heap desde o início do programa, é aconselhável que o processo seja iniciado com o sinalizador CREATE_SUSPENDED e, em seguida, o rastreamento de heap habilitado para seu PID e, em seguida, o processo seja retomado.

O rastreamento de heap é muito detalhado e pode gerar rapidamente um arquivo de rastreamento muito grande. Os eventos poderão ser perdidos facilmente se os buffers da sessão forem muito pequenos ou muito poucos. É recomendável que o número de processos para os quais o rastreamento de heap esteja habilitado seja limitado para não perder eventos. Habilitar o rastreamento de heap pode ter um impacto no desempenho do processo que está sendo rastreado.

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

Parâmetros

TraceHandle [out]
Armazena um identificador em uma sessão de rastreamento de eventos. Esse parâmetro será definido como zero se o identificador não for válido. Esse parâmetro não deve ser comparado a INVALID_HANDLE_VALUE. Não use esse identificador se a função falhar.

Propriedades [in, out]
Armazena um ponteiro para uma estrutura EVENT_TRACE_PROPERTIES . EVENT_TRACE_PROPERTIES configura determinados aspectos do comportamento da sessão.

Não é necessário definir o membro Guid porque essa função sempre usa o próprio valor. Se você especificar um GUID, ele não será usado.

wszSessionName [in]
O nome da sessão a ser passada para StartTrace.

Pids [in]
Uma matriz de IDs de processo para habilitar o rastreamento de heap.

cPids [in]
O tamanho da matriz Pids.

cStackTracingEventIds [in]
O tamanho da matriz StackTracingEventIds.

Valor Retornado

ERROR_SUCCESS indica êxito.

Possíveis valores de erro são descritos na tabela a seguir.

Valor do erro Descrição

ERROR_ALREADY_EXISTS

Somente uma única instância do agente de kernel é executada no sistema. Se essa função tentar iniciar depois que outro componente tiver iniciado o registro em log do kernel, esse erro possivelmente será retornado.

ERROR_INVALID_FLAGS

Possivelmente indica que há sinalizadores de rastreamento inválidos em Properties.EnableFlags.

ERROR_OUT_OF_MEMORY

Possivelmente indica falha ao alocar memória para EVENT_TRACE_PROPERTIES.

Se a função falhar por um motivo diferente daqueles listados, um código de erro do sistema será retornado.

Comentários

Nenhum

Funções

UpdateHeapTrace