Udostępnij za pośrednictwem


EventSource.WriteEventWithRelatedActivityIdCore Metoda

Definicja

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Zapisuje zdarzenie wskazujące, że bieżące działanie jest związane z innym działaniem.

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

Parametry

eventId
Int32

Identyfikator, który jednoznacznie identyfikuje to zdarzenie w obiekcie EventSource.

relatedActivityIdchildActivityID
Guid*

Wskaźnik do identyfikatora GUID powiązanego identyfikatora działania.

eventDataCount
Int32

Liczba elementów w data polu.

data
EventSource.EventData

Wskaźnik do pierwszego elementu w polu danych zdarzenia.

Atrybuty

Przykłady

Poniższy przykład kodu w języku C# pokazuje, jak zdefiniować przeciążenie metody, które wywołuje WriteEventWithRelatedActivityIdCoremetodę .

[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

Uwagi

WriteEventWithRelatedActivityIdCore metoda jest podobna WriteEventWithRelatedActivityId do metody , ale oferuje lepszą wydajność, ponieważ nie musi rozpatować childActivityID argumentów i data .

Metoda zdarzenia ETW wywołująca tę funkcję musi być zgodna z następującymi wytycznymi:

  1. Określ pierwszy parametr jako nazwany GuidrelatedActivityId.

  2. Określ właściwość Send lub Receive .EventAttribute.Opcode

  3. Wywołanie WriteEventWithRelatedActivityIdCore przekazujące identyfikator zdarzenia, po którym następuje powiązany identyfikator GUID, po którym następuje wszystkie parametry przekazywane przez metodę zdarzenia w tej samej kolejności.

Ta metoda używa tych samych reguł co WriteEventCore dla parametru args . Aby uzyskać więcej informacji, zobacz dokumentację aplikacji WriteEventCore.

Dotyczy