次の方法で共有


EtwWriteTransfer 関数 (wdm.h)

EtwWriteTransfer 関数は、2 つのアクティビティをリンクするイベントをマークします。この種類のイベントは、転送イベントと呼ばれます。 転送イベントには、同じユーザー定義データと同じフィールドを含めることができます。また、他のイベントと同じルールが適用されます。

構文

NTSTATUS EtwWriteTransfer(
  [in]           REGHANDLE              RegHandle,
  [in]           PCEVENT_DESCRIPTOR     EventDescriptor,
  [in, optional] LPCGUID                ActivityId,
  [in, optional] LPCGUID                RelatedActivityId,
  [in]           ULONG                  UserDataCount,
  [in, optional] PEVENT_DATA_DESCRIPTOR UserData
);

パラメーター

[in] RegHandle

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

[in] EventDescriptor

EVENT_DESCRIPTOR構造体へのポインター。

[in, optional] ActivityId

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

[in, optional] RelatedActivityId

イベントに関連付けられている関連アクティビティを示す識別子。 RelatedActivityID は、関連イベントをグループ化する方法を提供し、エンドツーエンドのトレースで使用されます。

[in] UserDataCount

EVENT_DATA_DESCRIPTOR構造体の配列内の要素の数。

[in, optional] UserData

EVENT_DATA_DESCRIPTOR構造体の配列内の最初の要素へのポインター。

戻り値

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

注釈

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

要件

要件
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe;Ntdll.dll
IRQL 任意のレベル (「コメント」セクションを参照)

こちらもご覧ください

EtwWrite

EtwWriteString