次の方法で共有


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

トレース ログ プロバイダーの名前を持つ文字列リテラル。 この名前は、他のコンポーネントのプロバイダーと競合しないように、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