다음을 통해 공유


EVENT_TRACE_PROPERTIES 구조체(evntrace.h)

EVENT_TRACE_PROPERTIES 구조에는 이벤트 추적 세션에 대한 정보가 포함됩니다. 세션의 속성을 정의, 업데이트 또는 쿼리할 때 StartTraceControlTrace 와 같은 API와 함께 이 구조를 사용합니다.

참고

버전 1 구조체입니다. 추가 옵션은 EVENT_TRACE_PROPERTIES_V2 지원됩니다(예: FilterDescV2Options).

구문

typedef struct _EVENT_TRACE_PROPERTIES {
  WNODE_HEADER Wnode;
  ULONG        BufferSize;
  ULONG        MinimumBuffers;
  ULONG        MaximumBuffers;
  ULONG        MaximumFileSize;
  ULONG        LogFileMode;
  ULONG        FlushTimer;
  ULONG        EnableFlags;
  union {
    LONG AgeLimit;
    LONG FlushThreshold;
  } DUMMYUNIONNAME;
  ULONG        NumberOfBuffers;
  ULONG        FreeBuffers;
  ULONG        EventsLost;
  ULONG        BuffersWritten;
  ULONG        LogBuffersLost;
  ULONG        RealTimeBuffersLost;
  HANDLE       LoggerThreadId;
  ULONG        LogFileNameOffset;
  ULONG        LoggerNameOffset;
} EVENT_TRACE_PROPERTIES, *PEVENT_TRACE_PROPERTIES;

멤버

Wnode

WNODE_HEADER 구조체입니다. BufferSize, FlagsGuid 멤버를 지정해야 합니다. 필요에 따라 ClientContext 멤버를 지정할 수 있습니다.

BufferSize

각 이벤트 추적 세션 버퍼에 할당된 메모리의 킬로바이트입니다. 최소 버퍼 크기는 4(4KB)입니다. 최대 버퍼 크기는 16384(16MB)입니다. 대부분의 추적 세션은 메모리 및 디스크 공간 낭비를 방지하기 위해 64KB 이하의 버퍼 크기를 사용해야 합니다. Windows 8 이전: 최대 버퍼 크기는 1024(1MB)입니다.

버퍼 크기가 작을 경우 세션 메모리 사용량이 줄어들고 로그 파일 크기를 줄일 수 있습니다. 더 큰 버퍼 크기는 ETW가 버퍼 경계를 넘어 이벤트를 조각화하지 않으므로 버퍼 크기보다 큰 이벤트를 수집할 수 없으므로 더 큰 이벤트 수집을 지원합니다. 매우 높은 데이터 처리량과 관련된 시나리오에서 버퍼 크기가 클수록 CPU 오버헤드를 줄일 수도 있습니다.

  • 작은 이벤트와 낮은 이벤트 속도(몇 KB/s)가 있는 세션은 작은 버퍼 크기(4KB~16KB)를 사용해야 합니다.
  • 작은 이벤트와 보통 이벤트 속도가 있는 세션은 중간 버퍼 크기(16KB ~32KB)를 사용해야 합니다.
  • 큰 이벤트 또는 높은 이벤트 속도(몇MB/s)가 있는 세션은 큰 버퍼 크기(64KB~128KB)를 사용해야 합니다.
  • 초당 수백 메가바이트 크기의 데이터가 있는 진단 추적을 위해 대량의 메모리를 예약해야 하는 드문 경우입니다. 거대한 버퍼 크기(256KB~1024KB)는 CPU 오버헤드를 줄일 수 있습니다.

참고

버퍼 크기에 관계없이 ETW는 64KB보다 큰 이벤트를 수집할 수 없습니다.

ETW는 특정 시나리오에서 요청된 BufferSize 를 위쪽으로 조정할 수 있습니다. 예를 들어 추적 파일을 디스크에 쓸 때 ETW는 버퍼 크기를 디스크의 실제 블록 크기의 배수로 늘릴 수 있습니다.

중요

BufferSize 는 추적 세션에 대한 가장 중요한 매개 변수 중 하나입니다. 대용량 버퍼는 일반적으로 메모리 및 디스크 공간을 낭비합니다. 큰 버퍼(256KB 이상)가 있는 추적 세션은 프로덕션 추적이 아닌 진단 조사 또는 테스트에만 사용해야 합니다.

BufferSize를 사용하여 추적 세션의 메모리 사용을 제어하지 마세요. 대신 세션의 이벤트 크기 및 이벤트 속도에 따라 버퍼 크기를 선택한 다음 MinimumBuffersMaximumBuffers 매개 변수를 사용하여 세션 메모리 사용량을 조정합니다.

MinimumBuffers

추적 세션의 버퍼 풀에 예약된 최소 버퍼 수입니다.

ETW는 특정 시나리오에서 이 값을 조정할 수 있습니다.

  • 로깅 모드에 플래그가 EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 포함된 경우 ETW는 최소 2개의 버퍼를 예약합니다.
  • 로깅 모드에 플래그가 EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING 포함되지 않으면 ETW는 각 논리 프로세서에 대해 최소 2개의 버퍼를 예약합니다.
  • 이 값이 ETW 결정 한도보다 큰 경우 과도한 메모리 사용을 방지하기 위해 ETW에서 한도로 줄일 수 있습니다.

이벤트 속도가 보통인 파일 모드 및 실시간 추적의 경우 대부분의 사용자는 MinimumBuffers 를 0으로 설정하거나 최소값(예: 4 또는 8)으로 설정하여 메모리 사용량을 최소화해야 하므로 ETW는 프로세서 수에 따라 값을 위쪽으로 조정할 수 있습니다. ETW는 추적이 시작될 때 (조정된) 최소 버퍼 수를 예약합니다. 버퍼가 처리할 수 있는 것보다 더 빨리 채워지면 ETW는 MaximumBuffers에 지정된 수까지 추가 버퍼를 할당하려고 시도합니다.

버퍼링 모드(메모리 내 순환) 추적의 경우 사용자는 ETW가 세션에 대해 예약하려는 총 메모리 양에 따라 MinimumBuffers 매개 변수를 설정해야 합니다. 이 값은 일반적으로 예상 이벤트 속도 및 추적을 처리할 시간을 기준으로 계산됩니다. 예를 들어 초당 16KB의 데이터 속도가 예상되고 추적에서 60초 이상의 데이터를 기록하려면 960KB가 필요합니다. 버퍼 크기가 32KB라고 가정하면 MinimumBuffers 를 30(버퍼당 총 960KB/32KB = 버퍼 30개)으로 설정합니다. ETW는 추적이 시작될 때 (조정된) 최소 버퍼 수를 예약합니다. 모든 버퍼가 채워지면 ETW는 새 이벤트에 가장 오래된 채워진 버퍼를 다시 사용합니다. ETW는 추가 버퍼를 할당하지 않습니다(ETW는 버퍼링 모드 추적에 대해 MaximumBuffers 를 무시합니다).

MaximumBuffers

추적 세션의 버퍼 풀에 할당할 최대 버퍼 수입니다.

ETW는 특정 시나리오에서 이 값을 조정할 수 있습니다.

  • 이 값이 MinimumBuffers의 조정된 값보다 작은 경우 ETW는 MinimumBuffers보다 크거나 같은 적절한 값으로 증가할 수 있습니다.
  • 이 값이 ETW 결정 한도보다 큰 경우 ETW는 이를 한도로 줄일 수 있습니다.

대부분의 사용자는 MinimumBuffersMaximumBuffers 를 동일한 값으로 설정하여 세션 튜닝을 시작해야 합니다. 그런 다음, 이벤트 속도가 최고조에 달하는 동안 추적이 이벤트를 삭제하는 경우 MaximumBuffers 값을 늘릴 수 있습니다.

이벤트가 높은 IRQL에서 실행되는 드라이버에 의해 생성되는 경우 ETW는 주문형 버퍼를 할당할 수 없습니다. 추적 세션이 높은 IRQL 커널 모드 공급자의 이벤트를 기록해야 하는 경우 더 높은 값의 MinimumBuffers 를 사용하여 버퍼를 강제로 미리 할당해야 할 수 있습니다.

참고

ETW는 버퍼링 모드 세션(로깅 EVENT_TRACE_BUFFERING_MODE모드를 포함하는 세션)에 대해 MaximumBuffers를 무시합니다. 버퍼링 모드 세션은 추적 컬렉션 시작 시 항상 MinimumBuffers 를 할당하고 추가 버퍼를 할당하지 않습니다.

MaximumFileSize

이벤트를 기록하는 데 사용되는 파일의 최대 크기(메가바이트) 또는 크기 제한 없이 0입니다. 일반적으로 LogFileMode 를 로 설정할 때 이 멤버를 사용하여 순환 로그 파일의 크기를 제한합니다 EVENT_TRACE_FILE_MODE_CIRCULAR. LogFileMode에 또는 EVENT_TRACE_FILE_MODE_CIRCULAREVENT_TRACE_FILE_MODE_NEWFILE가 포함된 경우 이 멤버를 0이 아닌 값으로 EVENT_TRACE_FILE_MODE_PREALLOCATE설정해야 합니다.

로깅에 시스템 드라이브(운영 체제가 포함된 드라이브)를 사용하는 경우 ETW는 최대 파일 크기 매개 변수를 사용하는지 여부에 관계없이 200MB의 디스크 공간을 추가로 확인합니다. 따라서 시스템 드라이브에서 추적 파일의 최대 파일 크기로 100MB를 지정하는 경우 드라이브에 300MB의 여유 공간이 있어야 합니다.

LogFileMode

이벤트 추적 세션에 대한 로깅 플래그입니다. 이 멤버를 사용하여 메모리 내 순환 버퍼, 로그 파일 또는 실시간 소비자에 이벤트를 쓸지 여부를 지정합니다. 이 멤버를 사용하여 다른 세션 특성(예: 세션이 프라이빗 로거 세션임)을 지정할 수도 있습니다. 가능한 플래그 목록은 로깅 모드 상수를 참조하세요.

ETW는 세션에 대한 실시간 소비자가 없는 경우 실시간 세션에 대한 이벤트를 버퍼링합니다. 이 버퍼링은 제한됩니다. 제한에 도달하면 새 이벤트가 무시되고 로깅 함수가 로깅에 STATUS_LOG_FILE_FULL실패합니다. Windows Vista 이전: 실시간 소비자가 없으면 이벤트가 삭제되고 로깅이 계속됩니다.

실시간 소비자가 이벤트를 사용하지 않는 한 실시간 로깅 세션을 시작하지 마세요. 소비자가 없는 실시간 세션은 시스템 리소스(이벤트를 버퍼링하기 위한 CPU, 메모리 및 디스크 공간)를 낭비합니다.

소비자가 실시간 이벤트 처리를 시작하면 버퍼링된 이벤트가 먼저 소비됩니다. 버퍼링된 모든 이벤트가 사용된 후 세션은 새 이벤트 보고를 시작합니다.

FlushTimer

비어 있지 않은 추적 버퍼가 플러시되는 빈도(초)입니다. 최소 플러시 시간은 1초입니다.

  • 파일 모드 세션의 경우: FlushTimer 를 0으로 설정하면 시간 기반 플러시(버퍼가 채워질 때, 세션이 중지되거나 세션이 명시적으로 플러시될 때 플러시)가 비활성화됩니다. 대부분의 파일 모드 추적은 추적 파일의 공간 낭비를 방지하기 위해 FlushTimer 를 0으로 설정해야 합니다(즉, 디스크 공간이 대부분 비어 있는 버퍼를 저장하는 데 낭비되지 않도록 함). 추적이 닫혀 있지 않을 가능성이 있는 경우(예: 시스템이 충돌하더라도 이벤트를 가져와야 하는 경우) 타이머를 0이 아닌 값으로 설정할 수 있습니다.
  • 실시간 세션의 경우: FlushTimer 를 0으로 설정하면 기본 시간 제한이 1초로 설정됩니다. 실시간 세션은 데이터를 얼마나 빨리 수신해야 하는지에 따라 플러시 타이머를 설정해야 합니다. 타이머 값이 높을수록 추적에 대한 CPU 오버헤드가 줄어듭니다. 대부분의 실시간 추적은 5초 또는 10초의 타이머로 시작하고 필요에 따라 타이머를 조정해야 합니다.
  • 버퍼링된(메모리 내 순환) 세션의 경우 FlushTimer 는 사용되지 않습니다. 추적 데이터는 주문형으로만 플러시됩니다(예: ControlTrace를 통해 파일로 플러시됨).

EnableFlags

시스템 로거 세션은 추적에 포함해야 하는 SystemTraceProvider 이벤트를 나타내도록 EnableFlags를 설정할 수 있습니다.

참고

EnableFlags는 로거 모드 플래그KERNEL_LOGGER_NAME, 세션 이름, 세션 GUID 또는 GlobalLoggerGuid 세션 GUID를 사용하여 EVENT_TRACE_SYSTEM_LOGGER_MODE 시작된 추적 세션과 같은 시스템 로거에 SystemTraceControlGuid 만 유효합니다.

이 멤버는 다음 값 중 하나 이상을 포함할 수 있습니다. 지정한 이벤트 외에도 를 지정 EVENT_TRACE_FLAG_NO_SYSCONFIG하지 않는 한 로거는 Windows XP의 하드웨어 구성 이벤트와 Windows Server 2003 이상의 시스템 구성 이벤트도 기록합니다.

  • EVENT_TRACE_FLAG_ALPC (0x00100000)

    ALPC 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_CSWITCH (0x00000010)

    다음 Thread 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_DBGPRINT (0x00040000)

    DbgPrintDbgPrintEx 호출을 ETW 이벤트로 변환할 수 있습니다.

  • EVENT_TRACE_FLAG_DISK_FILE_IO (0x00000200)

    다음 FileIo 이벤트 유형을 사용하도록 설정합니다(EVENT_TRACE_FLAG_DISK_IO 사용하도록 설정해야 함).

  • EVENT_TRACE_FLAG_DISK_IO (0x00000100)

    다음 DiskIo 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_DISK_IO_INIT (0x00000400)

    다음 DiskIo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_DISPATCHER (0x00000800)

    다음 Thread 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows 7, Windows Server 2008 R2 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_DPC (0x00000020)

    다음 PerfInfo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_DRIVER (0x00800000)

    다음 DiskIo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_FILE_IO (0x02000000)

    다음 FileIo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_FILE_IO_INIT (0x04000000)

    다음 FileIo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_IMAGE_LOAD (0x00000004)

    다음 Image 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_INTERRUPT (0x00000040)

    다음 PerfInfo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_JOB (0x00080000)

    이 값은 Windows 10 지원됩니다.

  • EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS (0x00002000)

    다음 PageFault_V2 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS (0x00001000)

    다음 PageFault_V2 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_NETWORK_TCPIP (0x00010000)

    TcpIpUdpIp 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_NO_SYSCONFIG (0x10000000)

    시스템 구성 런다운을 수행하지 마세요.

    이 값은 Windows 8, Windows Server 2012 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_PROCESS (0x00000001)

    다음 프로세스 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_PROCESS_COUNTERS (0x00000008)

    다음 Process_V2 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_PROFILE (0x01000000)

    다음 PerfInfo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_REGISTRY (0x00020000)

    레지스트리 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_SPLIT_IO (0x00200000)

    SplitIo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_SYSTEMCALL (0x00000080)

    다음 PerfInfo 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows Vista 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_THREAD (0x00000002)

    다음 Thread 이벤트 유형을 사용하도록 설정합니다.

  • EVENT_TRACE_FLAG_VAMAP (0x00008000)

    맵 및 매핑 해제(이미지 파일 제외) 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows 8, Windows Server 2012 이상에서 지원됩니다.

  • EVENT_TRACE_FLAG_VIRTUAL_ALLOC (0x00004000)

    다음 PageFault_V2 이벤트 유형을 사용하도록 설정합니다.

    이 값은 Windows 7, Windows Server 2008 R2 이상에서 지원됩니다.

DUMMYUNIONNAME

DUMMYUNIONNAME.AgeLimit

사용되지 않습니다.

Windows 2000: 사용하지 않는 버퍼가 해제되기까지의 시간 지연(분)입니다. 기본값은 15분입니다.

DUMMYUNIONNAME.FlushThreshold

NumberOfBuffers

출력에서 이벤트 추적 세션의 버퍼 풀에 할당된 버퍼 수입니다.

FreeBuffers

출력에서 이벤트 추적 세션의 버퍼 풀에서 할당되었지만 사용되지 않는 버퍼의 수입니다.

EventsLost

출력에서 기록되지 않은 이벤트 수입니다.

BuffersWritten

출력에서 기록된 버퍼의 수입니다.

LogBuffersLost

출력에서 로그 파일에 쓸 수 없는 버퍼의 수입니다.

RealTimeBuffersLost

출력 시 소비자에게 실시간으로 전달할 수 없는 버퍼 수입니다.

LoggerThreadId

출력 시 이벤트 추적 세션의 스레드 식별자입니다.

LogFileNameOffset

이 구조체의 할당된 메모리 시작부터 로그 파일 이름을 포함하는 nul로 끝나는 문자열의 시작까지 오프셋(바이트)입니다.

파일 이름에는 일반적으로 확장명 가 있습니다 .etl . 경로의 모든 폴더가 이미 있어야 합니다(ETW는 폴더를 만들지 않음). 경로는 상대 경로, 절대 경로, 로컬 또는 원격일 수 있습니다. 경로의 환경 변수는 확장되지 않습니다. 사용자에게 폴더에 쓸 수 있는 권한이 있어야 합니다.

로그 파일 이름은 1,024자로 제한됩니다. LogFileModeEVENT_TRACE_PRIVATE_LOGGER_MODE 또는 EVENT_TRACE_FILE_MODE_NEWFILE 설정하는 경우 프라이빗 로거 세션의 파일 이름에 추가될 프로세스 식별자와 새 파일 로그 모드를 사용하여 만든 로그 파일에 추가되는 순차적 번호를 포함하기에 충분한 메모리를 예약해야 합니다.

로그 파일에 이벤트를 기록하지 않으려면(예: EVENT_TRACE_REAL_TIME_MODE 만 지정하는 경우) LogFileNameOffset 을 0으로 설정합니다. 실시간 로깅만 지정하고 유효한 로그 파일 이름으로 오프셋을 제공하는 경우 ETW는 로그 파일 이름을 사용하여 이벤트를 실시간 소비자에게 보내는 것 외에도 순차 로그 파일 및 로그 이벤트를 로그 파일에 만듭니다. 또한 LogFileMode 가 0이고 유효한 로그 파일 이름으로 오프셋을 제공하는 경우 ETW는 순차 로그 파일을 만듭니다.

로그 파일에 이벤트를 기록하려면 이 구조체에 대한 충분한 메모리를 예약하여 구조 다음에 로그 파일 이름 및 세션 이름을 포함해야 합니다. 로그 파일 이름은 메모리의 세션 이름을 따라야 합니다. 예제는 설명을 참조하세요.

추적 파일은 기본 보안 설명자를 사용하여 만들어집니다. 즉, 로그 파일에는 부모 디렉터리와 동일한 ACL이 있어야 합니다. 파일에 대한 액세스를 제한하려면 적절한 ACL을 사용하여 부모 디렉터리를 만듭니다.

LoggerNameOffset

구조체의 할당된 메모리 시작부터 세션 이름을 포함하는 nul로 끝나는 문자열의 시작까지 오프셋(바이트)입니다.

중요

세션 이름에서 세션의 소유권 및 사용량을 확인할 수 있도록 세션에 대한 설명이 포함된 이름을 사용합니다. GUID 또는 기타 설명이 없는 값은 사용하지 마세요. 세션 이름을 고유하게 만들려면 임의의 숫자를 추가하지 마세요. ETW 세션은 제한된 리소스이므로 구성 요소가 여러 세션을 시작하지 않아야 합니다. 구성 요소가 시작될 때 구성 요소의 세션이 이미 실행 중인 경우 구성 요소는 두 번째 세션을 만드는 대신 분리된 세션을 클린 합니다.

세션 이름은 1,024자로 제한됩니다. 세션 이름은 대/소문자를 구분하지 않습니다. 이름이 같은 다른 세션이 이미 실행 중인 경우 시스템에서 새 세션을 시작하지 않습니다.

Windows 2000: 세션 이름은 대/소문자를 구분합니다. 따라서 이름이 다른 세션은 경우에만 허용됩니다. 그러나 혼동을 줄이려면 세션 이름이 고유한지 확인해야 합니다.

설명

이 구조체에 대한 메모리를 할당할 때는 구조에 따라 세션 이름 및 로그 파일 이름을 포함할 수 있는 충분한 메모리를 할당해야 합니다. 세션 이름은 메모리의 로그 파일 이름 앞에 와야 합니다. 로그 파일 이름을 오프셋에 복사해야 하지만 세션 이름을 오프셋에 복사하지는 않습니다. StartTrace 함수는 이름을 복사합니다.

멤버를 설정하기 전에 이 구조체의 메모리를 0으로 초기화해야 합니다. 예를 들면 다음과 같습니다.

typedef struct EventTracePropertyData {
    EVENT_TRACE_PROPERTIES Props;
    WCHAR LoggerName[128];
    WCHAR LogFileName[1024];
} EventTracePropertyData;

EventTracePropertyData data = {0};
data.Props.Wnode.BufferSize = sizeof(data);
data.Props.Wnode.Flags = WNODE_FLAG_TRACED_GUID;
data.Props.LogFileNameOffset = offsetof(EventTracePropertyData, LogFileName);
data.Props.LoggerNameOffset = offsetof(EventTracePropertyData, LoggerName);

공급자의 이벤트는 세션의 버퍼에 기록됩니다. 파일 또는 실시간 세션의 버퍼가 가득 차거나 FlushTimer가 만료되면 세션은 이벤트를 로그 파일에 쓰거나 실시간 소비자에게 전달하거나 둘 다 전달하여 버퍼를 플러시합니다. 세션의 버퍼가 플러시할 수 있는 것보다 빠르게 채워지면 새 버퍼가 할당되고 최대 버퍼까지 세션의 버퍼 풀에 추가됩니다. 이 제한을 초과하면 세션은 버퍼를 사용할 수 있게 될 때까지 들어오는 이벤트를 삭제합니다. 각 세션은 삭제된 이벤트 수의 레코드를 유지합니다( EventsLost 멤버 참조).

세션이 실행되는 동안 EventsLost 와 같은 세션 통계를 보려면 ControlTrace 함수를 호출하고 ControlCode 매개 변수를 로 EVENT_TRACE_CONTROL_QUERY설정합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
머리글 evntrace.h

추가 정보

StartTrace

ControlTrace

QueryAllTraces

로깅 모드 상수

EVENT_TRACE_PROPERTIES_V2

WNODE_HEADER