次の方法で共有


EventSource.WriteEventWithRelatedActivityIdCore メソッド

定義

重要

この API は CLS 準拠ではありません。

現在のアクティビティが別のアクティビティに関連していることを示すイベントを書き込みます。

protected:
 void WriteEventWithRelatedActivityIdCore(int eventId, Guid* relatedActivityId, int eventDataCount, System::Diagnostics::Tracing::EventSource::EventData* data);
protected:
 void WriteEventWithRelatedActivityIdCore(int eventId, Guid* childActivityID, int eventDataCount, System::Diagnostics::Tracing::EventSource::EventData* data);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[System.CLSCompliant(false)]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[System.CLSCompliant(false)]
[System.Security.SecurityCritical]
protected void WriteEventWithRelatedActivityIdCore (int eventId, Guid* childActivityID, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data);
[<System.CLSCompliant(false)>]
[<System.Security.SecurityCritical>]
member this.WriteEventWithRelatedActivityIdCore : int * nativeptr<Guid> * int * nativeptr<System.Diagnostics.Tracing.EventSource.EventData> -> unit
[<System.CLSCompliant(false)>]
member this.WriteEventWithRelatedActivityIdCore : int * nativeptr<Guid> * int * nativeptr<System.Diagnostics.Tracing.EventSource.EventData> -> unit

パラメーター

eventId
Int32

EventSource のこのイベントを一意に識別する識別子。

relatedActivityIdchildActivityID
Guid*

関連するアクティビティ ID の GUID へのポインター。

eventDataCount
Int32

data フィールド内の項目の数。

data
EventSource.EventData

イベント データ フィールドの最初の項目へのポインター。

属性

次の C# コード例は、 を呼び出す WriteEventWithRelatedActivityIdCoreメソッド オーバーロードを定義する方法を示しています。

[EventSource(Name = "Litware-ProductName-ComponentName")]
public sealed class LitwareComponentNameEventSource : EventSource
{
    [Event(1, Task = Tasks.Request, Opcode = EventOpcode.Send)]
    public void RequestStart(Guid relatedActivityId, int reqId, string url)
    {
        WriteEventWithRelatedActivityIdCore(1, relatedActivityId, reqId, url);
    }
}
<EventSource(Name:="Litware-ProductName-ComponentName")> _
Public NotInheritable Class LitwareComponentNameEventSource
    Inherits EventSource
    <[Event](1, Task:=Tasks.Request, Opcode:=EventOpcode.Send)> _
    Public Sub RequestStart(relatedActivityId As Guid, reqId As Integer, url As String)
        WriteEventWithRelatedActivityIdCore(1, relatedActivityId, reqId, url)
    End Sub

End Class
#region Keywords / Task / Opcodes
public static class Tasks
{
    public const EventTask Request = (EventTask)0x1;
}
#endregion
#Region "Keywords / Task / Opcodes"
    Public NotInheritable Class Tasks
        Private Sub New()
        End Sub
        Public Const Request As EventTask = DirectCast(&H1, EventTask)
    End Class
#End Region

注釈

WriteEventWithRelatedActivityIdCoreは メソッドにWriteEventWithRelatedActivityId似ていますが、 引数と data 引数のボックス化を解除する必要がないため、パフォーマンスがchildActivityID向上します。

この関数を呼び出す ETW イベント メソッドは、次のガイドラインに従う必要があります。

  1. 最初のパラメーターを 名前付き relatedActivityIdとしてGuid指定します。

  2. プロパティとして または ReceiveSendEventAttribute.Opcode指定します。

  3. イベント ID を渡し、その後に関連する ID GUID を渡し、その後にイベント メソッドが渡されるすべてのパラメーターを同じ順序で呼び出 WriteEventWithRelatedActivityIdCore します。

このメソッドは、 パラメーターと同じ規則 WriteEventCoreargs 使用します。 詳細については、WriteEventCore のドキュメントを参照してください。

適用対象