다음을 통해 공유


TRACE_PERIODIC_CAPTURE_STATE_INFO 구조체(evntrace.h)

TraceQueryInformationTraceSetInformation과 함께 사용하여 주기적인 캡처 상태와 관련된 정보를 얻거나 설정합니다.

구문

typedef struct _TRACE_PERIODIC_CAPTURE_STATE_INFO {
  ULONG  CaptureStateFrequencyInSeconds;
  USHORT ProviderCount;
  USHORT Reserved;
} TRACE_PERIODIC_CAPTURE_STATE_INFO, *PTRACE_PERIODIC_CAPTURE_STATE_INFO;

멤버

CaptureStateFrequencyInSeconds

상태 캡처 빈도(초)입니다.

ProviderCount

공급자 수입니다.

Reserved

다음에 사용하도록 예약됩니다.

설명

주기적 캡처 상태는 캡처 상태 알림을 공급자에게 정기적으로 보낼 수 있도록 하는 방법입니다. 이 기능을 사용하도록 설정하면 알림은 이전에 현재 세션에 사용하도록 설정된 공급자 등록으로만 전송됩니다. 각 공급자는 알림에 대한 자체 응답(있는 경우)을 정의할 수 있습니다. 알림에 대한 응답으로 공급자가 기록한 이벤트는 수동으로 요청된 캡처 상태와 유사하게 공급자가 사용하도록 설정된 모든 ETW 세션으로 전송됩니다.

주기적인 캡처 상태를 사용하려면 다음을 수행합니다.

  1. TRACE_PERIODIC_CAPTURE_STATE_INFO 형식의 버퍼를 할당합니다. 버퍼의 크기는 sizeof(TRACE_PERIODIC_CAPTURE_STATE_INFO) + (x * sizeof(GUID))여야 합니다. 여기서 x는 사용하려는 공급자의 수입니다.
  2. TRACE_INFO_CLASS 열거형에 TracePeriodicCaptureStateInfo를 사용하여 TraceQueryInformation을 호출합니다. 버퍼와 해당 크기를 TraceQueryInformation의 TraceInformationInformationLength 매개 변수로 전달 합니다.
  3. CaptureStateFrequencyInSeconds를TRACE_PERIODIC_CAPTURE_STATE_INFO Windows 버전에서 지원하는 최소 빈도로 설정합니다. 이 값은 나중에 변경될 수 있으므로 하드 코딩은 권장되지 않습니다. 빈도가 최소값보다 낮으면 TraceSetInformation 에 대한 호출이 실패합니다.
  4. ProviderCountTRACE_PERIODIC_CAPTURE_STATE_INFO 전달되는 공급자 GUID 수로 설정합니다.
  5. TRACE_PERIODIC_CAPTURE_STATE_INFO 구조가 끝난 후 각 공급자의 GUID 를 추가합니다. 첫 번째 단계에서 (x * sizeof(GUID))에서 할당된 추가 공간을 사용합니다.
  6. TRACE_INFO_CLASS 열거형에서 TracePeriodicCaptureStateListInfo를 사용하여 TraceSetInformation을 호출합니다.
  7. 정기적인 캡처 상태를 해제하려면 TRACE_INFO_CLASSTracePeriodicCaptureStateListInfo를 사용하여 TraceSetInformation을 다시 호출하고, TraceInformation의 경우 NULL을, 0을 InformationLength로 호출합니다.

요구 사항

   
머리글 evntrace.h