NT カーネル ロガー定数
NT カーネル ロガー セッションを識別するには、次の定数を使用します。
定数 | 説明 |
---|---|
SystemTraceControlGuid | NT カーネル ロガー イベント トレース セッションのコントロール GUID。 |
KERNEL_LOGGER_NAME | NT カーネル ロガー イベント トレース セッションの名前。 |
NT カーネル ロガー セッションは、カーネル イベント プロバイダーからのイベントを受け入れることができる唯一のセッションです。 NT カーネル ロガー セッションは、他のプロバイダーからのイベントを受け入れていません。 他のプロバイダーからカーネル イベントとイベントをキャプチャする場合は、2 つの個別のセッションを使用する必要があり、コンシューマーはログ ファイルからイベントをマージしてエンド ツー エンドの結果を提供する必要があります。
ETW では、DEFINE_GUID マクロを使用して GUID を定義します。 コードで SystemTraceControlGuid を 使用するには、Evntrace.h を含める前#define INITGUID を含める必要があります。 コンパイラは、DEFINE_GUIDを定数 GUID に変換します。
次の値は、NT カーネル ロガー セッションでトレースできるカーネル イベントに使用できるクラス GUID を定義します。 クラス GUID を SetTraceCallback 関数に渡して、各イベント クラスの特別な処理を設定できます。
クラス | GUID |
---|---|
ALPC |
|
DiskIo |
|
HWConfig と SystemConfig |
|
FileIo |
|
Image |
|
PageFault_V2 |
|
PerfInfo |
|
Process |
|
レジストリ |
|
SplitIo |
|
Tcpip |
|
スレッド |
|
UdpIp |
|
解説
GUID を使用するには、使用する GUID 定義をソース コードにコピーします。 ソース コード#define含める定義の前に INITGUID を含める必要があるため、コンパイラはDEFINE_GUIDを定数 GUID に変換します。 次のような例があります。
#define INITGUID
DEFINE_GUID ( /* 3d6fa8d1-fe05-11d0-9dda-00c04fd7ba7c */
ThreadGuid,
0x3d6fa8d1,
0xfe05,
0x11d0,
0x9d, 0xda, 0x00, 0xc0, 0x4f, 0xd7, 0xba, 0x7c
);
DEFINE_GUID ( /* 3d6fa8d0-fe05-11d0-9dda-00c04fd7ba7c */
ProcessGuid,
0x3d6fa8d0,
0xfe05,
0x11d0,
0x9d, 0xda, 0x00, 0xc0, 0x4f, 0xd7, 0xba, 0x7c
);
別の方法として、GUID 定義の定数 GUID を自分で定義することもできます。 次のような例があります。
static const GUID ThreadGuid =
{ 0x3d6fa8d0, 0xfe05, 0x11d0, { 0x9d, 0xda, 0x00, 0xc0, 0x4f, 0xd7, 0xba, 0x7c } };