RegisterTraceGuidsA 関数 (evntrace.h)
RegisterTraceGuids 関数は、クラシック (Windows 2000 スタイル) ETW イベント トレース プロバイダーと、イベントの生成に使用するイベント トレース クラスを登録します。 この関数は、プロバイダーからのトレースを有効または無効にするためにシステムが使用するコールバック関数も指定します。
この関数は廃止されています。 新しいコードでは、EventRegister を使用して、Windows Vista スタイルの (真紅) ETW イベント トレース プロバイダーを登録する必要があります。
構文
ULONG WMIAPI RegisterTraceGuidsA(
[in] WMIDPREQUEST RequestAddress,
[in] PVOID RequestContext,
[in] LPCGUID ControlGuid,
[in] ULONG GuidCount,
[in, out] PTRACE_GUID_REGISTRATION TraceGuidReg,
[in] LPCSTR MofImagePath,
[in] LPCSTR MofResourceName,
[out] TRACEGUID_HANDLE *RegistrationHandle
);
パラメーター
[in] RequestAddress
イベント トレース セッションによってプロバイダーが有効または無効になったときに通知を受け取る ControlCallback 関数へのポインター。 EnableTrace 関数は、このコールバックをトリガーします。
[in] RequestContext
RequestAddressで指定された関数に ETW が渡すオプションのプロバイダー定義コンテキストへのポインター。
[in] ControlGuid
登録プロバイダーの GUID (プロバイダー ID) を制御します。
[in] GuidCount
TraceGuidReg 配列内の要素の数。 TraceGuidReg
[in, out] TraceGuidReg
の配列へのポインター
TRACE_GUID_REGISTRATION 構造体。
各要素は、プロバイダーが提供するイベントのカテゴリを識別します。
入力時に、各構造体の Guid メンバーには、登録プロバイダーによって割り当てられたイベント トレース クラス GUID が含まれます。 クラス GUID は、プロバイダーが提供するイベントのカテゴリを識別します。 プロバイダーは、TraceEvent 関数を呼び出してイベントをログに記録するときに、同じクラス GUID を使用して EVENT_TRACE_HEADER の Guid メンバーを設定します。
出力時に、RegHandle メンバーは、イベントのクラス GUID 登録へのハンドルを受け取ります。 プロバイダーが TraceEventInstance 関数を呼び出す場合は、TRACE_GUID_REGISTRATION の RegHandle メンバーを使用して、EVENT_INSTANCE_HEADERの RegHandle メンバーを設定します。
プロバイダーが
[in] MofImagePath
このパラメーターはサポートされていません。 NULL
SP1、Windows XP、および Windows 2000 を使用した Windows XP の
[in] MofResourceName
このパラメーターはサポートされていません。 NULL
SP1、Windows XP、Windows 2000 を使用して Windows XP を
[out] RegistrationHandle
プロバイダーの登録ハンドルを受け取ります。 UnregisterTraceGuids 関数を呼び出すときに、返されるハンドルを使用します。
大事な
DLL またはドライバーによって作成されたすべての登録ハンドルは、DLL またはドライバーのアンロード前に登録解除する必要があります。 プロバイダーが登録解除されていない場合、ETW がプロバイダーのコールバックを呼び出そうとするとクラッシュが発生します。
戻り値
関数が成功した場合、戻り値はERROR_SUCCESS。
関数が失敗した場合、戻り値は
大事な
この関数は、コントローラーが EnableTrace
ERROR_INVALID_PARAMETER
次のいずれかが当てはまります。
- RequestAddress が NULL
。 ControlGuid は NULLです。 RegistrationHandle は NULLです。
Windows XP および Windows 2000: TraceGuidReg が NULLされているか、GuidCount が 0 以下である 。 - RequestAddress が NULL
備考
手記
ほとんどの開発者は、この関数を直接呼び出しません。 代わりに、開発者は通常、ETW フレームワークを使用します。 たとえば、TMF ベースの WPP は、RegisterTraceGuids 、TraceMessage、UnregisterTraceGuids への呼び出しをユーザーに代わって管理します。
この関数は、
手記
EventWriteを介してマニフェスト ベースまたは TraceLogging ベースの ETW イベントを書き込む
プロバイダーの ControlGuid が以前に登録され、有効になっている場合は、同じ ControlGuid を参照する後続の登録が自動的に有効になります。
プロセスでは、最大 1,024 個のプロバイダー GUID を登録できます。ただし、プロセスが登録するプロバイダーの数を 1 つまたは 2 つに制限する必要があります。 この制限には、この関数と EventRegister 関数を使用して登録されたものが含まれます。
Windows Vista より前のバージョン: プロセスが登録できるプロバイダーの数に制限はありません。
例
手記
evntrace.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegisterTraceGuids を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルまたは実行時エラーが発生する不一致につながる可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | evntrace.h |
ライブラリ | Windows 8.1 および Windows Server 2012 R2 の Sechost.lib。Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows XP の Advapi32.lib |
DLL | Windows 8.1 および Windows Server 2012 R2 での Sechost.dll。Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008、Windows Vista、Windows XP での Advapi32.dll |
関連項目
EnableTrace の
UnregisterTraceGuids の