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 |