StartHeapTrace

이 함수는 지정된 PID 집합에 대한 힙 추적 세션을 등록하고 시작합니다. 이 함수를 사용하여 할당 또는 삭제와 같은 특정 힙 이벤트에 대해 스택 워킹을 사용하도록 설정할 수도 있습니다.

이 함수를 호출하기 전에 힙 추적을 사용하도록 설정하는 프로세스를 만들어야 합니다. 프로그램 시작부터 힙 이벤트를 캡처하려면 프로세스를 CREATE_SUSPENDED 플래그로 시작한 다음 PID에 대해 힙 추적을 사용하도록 설정하고 프로세스를 다시 시작하는 것이 좋습니다.

힙 추적은 매우 자세하며 매우 큰 추적 파일을 빠르게 생성할 수 있습니다. 세션의 버퍼가 너무 작거나 너무 적으면 이벤트가 쉽게 손실될 수 있습니다. 이벤트가 손실되지 않도록 힙 추적을 사용하는 프로세스 수를 제한하는 것이 좋습니다. 힙 추적을 사용하도록 설정하면 추적 중인 프로세스에 성능이 영향을 미칠 수 있습니다.

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

매개 변수

TraceHandle [out]
이벤트 추적 세션에 핸들을 저장합니다. 핸들이 잘못되면 이 매개 변수가 0으로 설정됩니다. 이 매개 변수는 INVALID_HANDLE_VALUE와 비교하면 안 됩니다. 함수가 실패하는 경우 이 핸들을 사용하지 마세요.

Properties [in, out]
EVENT_TRACE_PROPERTIES 구조에 포인터를 저장합니다. EVENT_TRACE_PROPERTIES는 세션 동작의 특정 측면을 구성합니다.

이 함수는 항상 고유한 값을 사용하므로 GUID 멤버를 설정할 필요가 없습니다. GUID를 지정해도 사용되지 않습니다.

wszSessionName [in]
StartTrace에 전달할 세션 이름입니다.

Pids [in]
힙 추적을 사용하도록 설정하는 프로세스 ID의 배열입니다.

cPids [in]
Pids 배열의 크기입니다.

cStackTracingEventIds [in]
StackTracingEventIds 배열의 크기입니다.

반환 값

ERROR_SUCCESS는 성공을 나타냅니다.

가능한 오류 값은 다음 테이블에 설명되어 있습니다.

오류 값 설명

ERROR_ALREADY_EXISTS

커널 로거의 단일 인스턴스만 시스템에서 실행됩니다. 다른 구성 요소가 커널 로깅을 시작한 후 이 함수가 시작하려고 하면 이 오류가 반환될 수 있습니다.

ERROR_INVALID_FLAGS

Properties.EnableFlags에 잘못된 추적 플래그가 있음을 나타낼 수 있습니다.

ERROR_OUT_OF_MEMORY

EVENT_TRACE_PROPERTIES에 대한 메모리를 할당하지 못했음을 나타냅니다.

나열된 것 이외의 이유로 함수가 실패하면 시스템 오류 코드가 반환됩니다.

설명

None

함수

UpdateHeapTrace