EtwWriteString 関数 (wdm.h)

EventWriteString 関数は、高度なデータが必要ない場合に使用できるトレース関数です。 この関数は、debug print ステートメントに似ています。

構文

NTSTATUS EtwWriteString(
  [in]           REGHANDLE RegHandle,
  [in]           UCHAR     Level,
  [in]           ULONGLONG Keyword,
  [in, optional] LPCGUID   ActivityId,
  [in]           PCWSTR    String
);

パラメーター

[in] RegHandle

イベント プロバイダー登録ハンドルへのポインター。イベント プロバイダーの登録が成功した場合に EtwRegister 関数によって返されます。

[in] Level

イベントがアクティブなレベル。

[in] Keyword

イベントのキーワード (keyword)。 キーワード (keyword)は、イベントまたはエラーのカテゴリに関する一般的なステートメントを作成するビットマスクです。 キーワード (keyword)はビットマスクであるため、1 つのイベントに複数のキーワード (keyword)を適用できます。 キーワードとビット位置を定義することも、Windows 標準キーワードを使用することも、独自のキーワードと Windows キーワードを組み合わせて使用することもできます。

[in, optional] ActivityId

イベントに関連付けられているアクティビティを示す識別子。 ActivityId は、関連するイベントをグループ化する方法を提供し、エンドツーエンドのトレースで使用されます。 この識別子は省略可能であり、 NULL にすることができます

[in] String

null で終わる文字列 (WCHAR)。

戻り値

イベントが正常に発行された場合、関数はSTATUS_SUCCESSを返します。

注釈

EventWriteString 関数によって生成される文字列はローカライズできないため、この関数は実稼働コードでの使用には推奨されません。 この関数を使用して、可視性の高いイベントをログに記録しないでください。

任意の IRQL で EtwWriteString を呼び出すことができます。 ただし、IRQL がAPC_LEVELより大きい場合、EtwWrite、EtwWriteExEtwWriteStringおよび EtwWriteTransfer 関数に渡されるデータはページングできません。 つまり、APC_LEVELより大きい IRQL で実行されているカーネル モード ルーチンは、ページング可能なメモリにアクセスできません。 EtwWrite、EtwWriteExEtwWriteString、および EtwWriteTransfer 関数に渡されるデータは、IRQL とは関係なく、システム空間メモリ内に存在する必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL 任意のレベル (「コメント」セクションを参照)。

こちらもご覧ください

EtwWrite

EtwWriteEx

EtwWriteTransfer