次の方法で共有


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 NULL場合は、このパラメーターを 0 に設定します。

[in, out] TraceGuidReg

の配列へのポインター
TRACE_GUID_REGISTRATION 構造体。

各要素は、プロバイダーが提供するイベントのカテゴリを識別します。

入力時に、各構造体の Guid メンバーには、登録プロバイダーによって割り当てられたイベント トレース クラス GUID が含まれます。 クラス GUID は、プロバイダーが提供するイベントのカテゴリを識別します。 プロバイダーは、TraceEvent 関数を呼び出してイベントをログに記録するときに、同じクラス GUID を使用して EVENT_TRACE_HEADER の Guid メンバーを設定します。

出力時に、RegHandle メンバーは、イベントのクラス GUID 登録へのハンドルを受け取ります。 プロバイダーが TraceEventInstance 関数を呼び出す場合は、TRACE_GUID_REGISTRATIONRegHandle メンバーを使用して、EVENT_INSTANCE_HEADERRegHandle メンバーを設定します。

プロバイダーが TraceEvent 関数のみを呼び出してイベントをログに記録する場合、このパラメーターは NULL を できます。 プロバイダーが TraceEventInstance 関数を呼び出してイベントをログに記録する場合、このパラメーターを NULLすることはできません。

[in] MofImagePath

このパラメーターはサポートされていません。 NULLに設定します。 Mofcomp.exe を使用して、アプリケーションのセットアップ中に MOF リソースを登録する必要があります。 詳細については、「イベント スキーマの発行 」を参照してください。

SP1、Windows XP、および Windows 2000 を使用した Windows XP の : MofResourceNameで指定されたリソースを含む DLL または実行可能プログラムのパスを指定する省略可能な文字列 ポインター。 イベント プロバイダーとコンシューマーが別のメカニズムを使用してプロバイダーによって使用されるイベント トレース クラスに関する情報を共有する場合、このパラメーターは NULL を できます。

[in] MofResourceName

このパラメーターはサポートされていません。 NULLに設定します。 Mofcomp.exe を使用して、アプリケーションのセットアップ中に MOF リソースを登録する必要があります。 詳細については、「イベント スキーマの発行 」を参照してください。

SP1、Windows XP、Windows 2000 を使用して Windows XP を する: MofImagePathの文字列リソース 指定する省略可能な文字列へのポインター。 文字列リソースには、プロバイダーによってサポートされるイベント トレース クラスを記述するバイナリ MOF ファイルの名前が含まれています。

[out] RegistrationHandle

プロバイダーの登録ハンドルを受け取ります。 UnregisterTraceGuids 関数を呼び出すときに、返されるハンドルを使用します。

大事な

DLL またはドライバーによって作成されたすべての登録ハンドルは、DLL またはドライバーのアンロード前に登録解除する必要があります。 プロバイダーが登録解除されていない場合、ETW がプロバイダーのコールバックを呼び出そうとするとクラッシュが発生します。

戻り値

関数が成功した場合、戻り値はERROR_SUCCESS。

関数が失敗した場合、戻り値はシステム エラー コードの 1 つです。 一般的なエラーとその原因を次に示します。

大事な

 この関数は、コントローラーが EnableTrace を呼び出してプロバイダーを有効にし、プロバイダーがまだ RegisterTraceGuids呼び出していない場合に、ControlCallback によって返される値を返すこともできます。 この場合、registerTraceGuids 登録が成功した場合、コールバックの戻り値が返されます。

  • ERROR_INVALID_PARAMETER

    次のいずれかが当てはまります。

    • RequestAddress が NULL
    • ControlGuid は NULLです。
    • RegistrationHandle は NULLです。

    Windows XP および Windows 2000:TraceGuidReg が NULL されているか、GuidCount が 0 以下である

備考

手記

ほとんどの開発者は、この関数を直接呼び出しません。 代わりに、開発者は通常、ETW フレームワークを使用します。 たとえば、TMF ベースの WPP は、RegisterTraceGuids TraceMessageUnregisterTraceGuids への呼び出しをユーザーに代わって管理します。

この関数は、クラシック (Windows 2000 スタイル) イベント プロバイダー ハンドルを開きます。このハンドルを使用して、TraceEventTraceEventInstanceTraceMessage、TraceMessageVa を使用して MOF および TMF ベースの WPP ETW イベントを書き込むことができます。

手記

EventWriteを介してマニフェスト ベースまたは TraceLogging ベースの ETW イベントを書き込む Windows Vista スタイルの プロバイダー ハンドル 開くには、EventRegister使用します。

プロバイダーの ControlGuid が以前に登録され、有効になっている場合は、同じ ControlGuid を参照する後続の登録が自動的に有効になります。

プロセスでは、最大 1,024 個のプロバイダー GUID を登録できます。ただし、プロセスが登録するプロバイダーの数を 1 つまたは 2 つに制限する必要があります。 この制限には、この関数と EventRegister 関数を使用して登録されたものが含まれます。

Windows Vista より前のバージョン: プロセスが登録できるプロバイダーの数に制限はありません。

RegisterTraceGuidsを使用する例については、「クラシック イベント書き込む」を参照してください。

手記

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 の