فهم Windows Event Tracing_ETW

  • فهم Windows Event Tracing_ETW

فهم ETW

تمت إزالة بعض المعلومات غير الضرورية، للاطلاع على الوثائق الكاملة راجع: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal

فهم الأساسيات

https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

البنية

الجلسة

توجد أربعة أنواع من الجلسات

نوع الجلسةالاستخدامالقيودالخصائص
جلسة Event Tracing Session(ETW قياسي)1. EVENT_TRACE_PROPERTIES2. StartTrace، إنشاء جلسة3. EnableTrace 1. EnableTrace لـ classic provider 2. EnableTraceEx لـ manifest-based provider4. ControlTrace  إيقاف الجلسة- لا يدعم مزود مبني على قائمة نصية (manifest-based provider) سوى إرسال الأحداث إلى 8 جلسات كحد أقصى- لا يمكن لمزود كلاسيكي (classic provider) أن يخدم سوى جلسة واحدة.- سلوك الاستحواذ على المزود من قبل الجلسة هو “آخر من يأتي يسبق”.ETW قياسي.
جلسة SystemTraceProvider Session1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace  إيقاف الجلسة- SystemTraceProvider هو مزود أحداث نواة (kernel)، يوفر مجموعة من أحداث النواة مسبقة التعريف.- جلسة NT Kernel Logger session هي جلسة مسبقة التكوين من النظام، تسجل سلسلة من أحداث النواة مسبقة التعريف.- Win7/WinServer2008R2 فقط جلسة NT Kernel Logger يمكنها استخدام SystemTraceProvider - Win8/WinServer2012 يمكن لـ SystemTraceProvider تقديم الأحداث إلى 8 جلسات سجلات (logger session)، منها اثنان ثابتان هما NT Kernel Logger و Circular Kernel Context Logger.- Win10 20348 وما بعده، يمكن التحكم في كل مزود System بشكل منفصل.الحصول على أحداث النواة مسبقة التعريف من النظام.
جلسة AutoLogger session1. تعديل السجل 2. EnableTraceEx3. ControlTrace  إيقاف الجلسة- جلسة Global Logger Session هي جلسة مستقلة خاصة تسجل أحداثًا خلال بدء تشغيل النظام.- تحتاج AutoLogger العادية إلى تمكين المزود بنفسها، بينما لا يحتاج GlobleLogger إلى ذلك.- لا تدعم AutoLogger أحداث NT Kernel Logger، فقط GlobalLogger يدعم ذلك.- تؤثر على وقت الإقلاع، لذا يجب استخدامها بحكمةتسجيل أحداث فترة إقلاع نظام التشغيل
جلسة Private Logger Session-- ETW للوضع المستخدم- للاستخدام داخل العملية فقط- لا يُحتسب ضمن حد 64 جلسة متزامنة.خاص بالعملية

الأدوات

  • logman
  • wevtutil
    • مثال استعلام xpath: wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
  • tracelog
    • استخدام أداة tracelog في viusal studio، يمكن إضافة وإزالة ETW Provider ديناميكيًا في وقت التشغيل، وكذلك إضافة وإزالة ETW Session ديناميكيًا
  • mc
  • etw-providers-docs