Share via


TRACELOGGING_DEFINE_PROVIDER_STORAGE 매크로(traceloggingprovider.h)

사용자가 정의할 TraceLogging 공급자 핸들에 대한 정적 스토리지를 예약합니다. 이 매크로보다 TRACELOGGING_DEFINE_PROVIDER 것이 좋습니다.

구문

void TRACELOGGING_DEFINE_PROVIDER_STORAGE(
  [in]            storageVariable,
  [in]            providerName,
  [in]            providerId,
  [in, optional]  __VA_ARGS__
);

매개 변수

[in] storageVariable

정적 공급자 스토리지 변수에 사용할 이름입니다(예: ). MyStaticProviderStorage

[in] providerName

TraceLogging 공급자의 이름을 가진 문자열 리터럴입니다. 이 이름은 다른 구성 요소의 공급자와 충돌하지 않도록 organization 및 구성 요소와 관련이 있어야 합니다. 이 이름 문자열은 공급자가 생성한 각 ETW 이벤트 내에 포함되므로 비교적 짧은 이름을 사용해 보세요. 예를 들어 또는 "MyCompany.MyOrganization.MyComponent"와 같은 "MyCompany.MyComponent" 이름을 사용할 수 있습니다.

문자열 리터럴이어야 합니다. 변수를 사용하지 마세요.

[in] providerId

괄호 안에 있는 11개의 정수의 쉼표로 구분된 목록으로 지정된 공급자에 대한 ETW 컨트롤 GUID입니다. 예를 들어 GUID {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5} 는 로 (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5)표현됩니다.

공급자 ID에 고유한 GUID를 사용할 수 있지만 ETW 이름 해시 알고리즘을 사용하여 공급자 이름에서 생성된 GUID를 사용하는 것이 좋습니다. 공급자 ID 생성에 대한 자세한 내용은 TRACELOGGING_DEFINE_PROVIDER 참조하세요.

[in, optional] __VA_ARGS__

공급자에 대한 선택적 매개 변수입니다. 대부분의 공급자는 선택적 매개 변수를 지정할 필요가 없습니다.

공급자를 ETW 공급자 그룹과 연결하려면 TraceLoggingOptionGroup 매크로를 추가하여 공급자의 그룹 GUID를 지정합니다. 그렇지 않으면 매개 변수를 __VA_ARGS__ 지정하지 마세요.

반환 값

없음

설명

대부분의 경우 이 매크로 대신 TRACELOGGING_DEFINE_PROVIDER 사용합니다. 특정 비정상적인 시나리오에서는 핸들 변수도 선언하지 않고 이 매크로를 사용하여 TraceLogging 공급자에 대한 정적 스토리지를 할당해야 할 수 있습니다. 코드는 이후에 핸들 변수를 적절하게 선언합니다.

TRACELOGGING_DEFINE_PROVIDER_STORAGE 공급자에 필요한 데이터를 사용하여 정적 변수를 선언합니다. 그런 다음, 이 변수의 주소를 가져와 핸들을 만들 수 있습니다. 호출 TRACELOGGING_DEFINE_PROVIDER_STORAGE(storageVar, ...) 은 다음과 같은 코드와 비슷하다고 생각할 수 있습니다.

static TraceLoggingProviderState storageVar = { ... };

사용 예제:

TRACELOGGING_DEFINE_PROVIDER_STORAGE( // defines static storageVar
    storageVar, // Name of the storage variable
    "MyCompany.MyComponent", // Human-readable name for the provider
    // {ce5fa4ea-ab00-5402-8b76-9f76ac858fb5}
    (0xce5fa4ea,0xab00,0x5402,0x8b,0x76,0x9f,0x76,0xac,0x85,0x8f,0xb5));

const TraceLoggingHProvider g_hMyProvider = &storageVar; // Make a handle

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 traceloggingprovider.h

추가 정보

TRACELOGGING_DECLARE_PROVIDER

TRACELOGGING_DEFINE_PROVIDER

TraceLoggingWrite