系统提供程序

从 Windows 10 SDK 内部版本 20348 开始,可以使用 EnableTraceEx2 以与其他 ETW 提供程序相同的方式启用系统跟踪提供程序的事件。 与系统跟踪提供程序关联的不同标志和 组掩码 已映射到新的跟踪提供程序,称为系统提供程序和匹配关键字。

与直接启用系统跟踪提供程序一样,系统提供程序只能由具有 EVENT_TRACE_SYSTEM_LOGGER_MODE 集的会话启用。

系统提供程序参考

系统 ALPC 提供程序

提供与 ALPC 系统相关的事件。

GUID:SystemAlpcProviderGuid {fcb9baaf-e529-4980-92e9-ced1a6aadfdf}

关键字 相应的旧标志和组
SYSTEM_ALPC_KW_GENERAL PERF_ALPC、EVENT_TRACE_FLAG_ALPC

系统配置提供程序

提供系统配置事件。

GUID:SystemConfigProviderGuid {fef3a8b6-318d-4b67-a96a-3b0f6b8f18fe}

关键字 相应的旧标志和组
SYSTEM_CONFIG_KW_SYSTEM PERF_SYSCFG_SYSTEM
SYSTEM_CONFIG_KW_GRAPHICS PERF_SYSCFG_GRAPHICS
SYSTEM_CONFIG_KW_STORAGE PERF_SYSCFG_STORAGE
SYSTEM_CONFIG_KW_NETWORK PERF_SYSCFG_NETWORK
SYSTEM_CONFIG_KW_SERVICES PERF_SYSCFG_SERVICES
SYSTEM_CONFIG_KW_PNP PERF_SYSCFG_PNP
SYSTEM_CONFIG_KW_OPTICAL PERF_SYSCFG_OPTICAL

系统 CPU 提供程序

提供与 CPU 相关的事件。

GUID:SystemCpuProviderGuid {c6c5265f-eae8-4650-aae4-9d48603d8510}

关键字 相应的旧标志和组
SYSTEM_CPU_KW_CONFIG PERF_CPU_CONFIG
SYSTEM_CPU_KW_CACHE_FLUSH PERF_CACHE_FLUSH
SYSTEM_CPU_KW_SPEC_CONTROL PERF_SPEC_CONTROL

系统虚拟机监控程序提供程序

提供与虚拟机监控程序相关的事件。

GUID:SystemHypervisorProviderGuid {bafa072a-918a-4bed-b622-bc152097098f}

关键字 相应的旧标志和组
SYSTEM_HYPERVISOR_KW_PROFILE PERF_HV_PROFILE
SYSTEM_HYPERVISOR_KW_CALLOUTS PERF_HV_CALLOUTS
SYSTEM_HYPERVISOR_KW_VTL_CHANGE PERF_VTL_CHANGE

系统中断提供程序

提供与 DPC 和中断相关的事件。

GUID:SystemInterruptProviderGuid {d4bbee17-b545-4888-858b-744169015b25}

关键字 相应的旧标志和组
SYSTEM_INTERRUPT_KW_GENERAL PERF_INTERRUPT、EVENT_TRACE_FLAG_INTERRUPT
SYSTEM_INTERRUPT_KW_CLOCK_INTERRUPT PERF_CLOCK_INTERRUPT
SYSTEM_INTERRUPT_KW_DPC PERF_DPC、EVENT_TRACE_FLAG_DPC
SYSTEM_INTERRUPT_KW_DPC_QUEUE PERF_DPC_QUEUE
SYSTEM_INTERRUPT_KW_WDF_DPC PERF_WDF_DPC
SYSTEM_INTERRUPT_KW_WDF_INTERRUPT PERF_WDF_INTERRUPT
SYSTEM_INTERRUPT_KW_IPI PERF_IPI

系统 IO 提供程序

提供与多种 IO 相关的事件,包括磁盘、缓存和网络。

GUID:SystemIoProviderGuid {3d5c43e3-0f1c-4202-b817-174c0070dc79}

关键字 相应的旧标志和组
SYSTEM_IO_KW_DISK EVENT_TRACE_FLAG_DISK_IO
SYSTEM_IO_KW_DISK_INIT PERF_DISK_IO_INIT、EVENT_TRACE_FLAG_DISK_IO_INIT
SYSTEM_IO_KW_FILENAME PERF_FILENAME、EVENT_TRACE_FLAG_DISK_FILE_IO
SYSTEM_IO_KW_SPLIT PERF_SPLIT_IO、EVENT_TRACE_FLAG_SPLIT_IO
SYSTEM_IO_KW_FILE PERF_FILE_IO、EVENT_TRACE_FLAG_FILE_IO
SYSTEM_IO_KW_OPTICAL PERF_OPTICAL_IO、EVENT_TRACE_FLAG_FILE_IO_INIT
SYSTEM_IO_KW_OPTICAL_INIT PERF_OPTICAL_IO_INIT
SYSTEM_IO_KW_DRIVERS PERF_DRIVERS、EVENT_TRACE_FLAG_DRIVER
SYSTEM_IO_KW_CC PERF_CC
SYSTEM_IO_KW_NETWORK PERF_NETWORK、EVENT_TRACE_FLAG_NETWORK_TCPIP

注意:启用SYSTEM_IO_KW_DRIVERS关键字也会自动启用SYSTEM_IO_KW_FILENAME。 使用 SYSTEM_MEMORY_KW_MEMORY 关键字启用系统内存提供程序时,也会自动打开SYSTEM_IO_KW_FILENAME。

系统 IO 筛选器提供程序

提供与 IO 筛选相关的事件,包括计时和故障。

GUID:SystemIoFilterProviderGuid {fbd09363-9e22-4661-b8bf-e7a34b535b8c}

关键字 相应的旧标志和组
SYSTEM_IOFILTER_KW_GENERAL PERF_FLT_IO
SYSTEM_IOFILTER_KW_INIT PERF_FLT_IO_INIT
SYSTEM_IOFILTER_KW_FASTIO PERF_FLT_FASTIO
SYSTEM_IOFILTER_KW_FAILURE PERF_FLT_IO_FAILURE

系统锁提供程序

提供与内核锁定机制相关的事件。

GUID:SystemLockProviderGuid {721ddfd3-dacc-4e1e-b26a-a2cb31d4705a}

关键字 相应的旧标志和组
SYSTEM_LOCK_KW_SPINLOCK PERF_SPINLOCK
SYSTEM_LOCK_KW_SPINLOCK_COUNTERS PERF_SPINLOCK_CNTRS
SYSTEM_LOCK_KW_SYNC_OBJECTS PERF_SYNC_OBJECTS

系统内存提供程序

提供与内存管理器相关的事件。

GUID:SystemMemoryProviderGuid {82958ca9-b6cd-47f8-a3a8-03ae85a4bc24}

关键字 相应的旧标志和组
SYSTEM_MEMORY_KW_GENERAL PERF_MEMORY
SYSTEM_MEMORY_KW_HARD_FAULTS PERF_HARD_FAULTS、EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS
SYSTEM_MEMORY_KW_ALL_FAULTS PERF_ALL_FAULTS、EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS
SYSTEM_MEMORY_KW_POOL PERF_POOL
SYSTEM_MEMORY_KW_MEMINFO PERF_MEMINFO
SYSTEM_MEMORY_KW_PFSECTION PERF_PFSECTION
SYSTEM_MEMORY_KW_MEMINFO_WS PERF_MEMINFO_WS
SYSTEM_MEMORY_KW_HEAP PERF_HEAP
SYSTEM_MEMORY_KW_WS PERF_WS
SYSTEM_MEMORY_KW_CONTMEM_GEN PERF_CONTMEM_GEN
SYSTEM_MEMORY_KW_VIRTUAL_ALLOC PERF_VIRTUAL_ALLOC、EVENT_TRACE_FLAG_VIRTUAL_ALLOC
SYSTEM_MEMORY_KW_FOOTPRINT PERF_FOOTPRINT
SYSTEM_MEMORY_KW_SESSION PERF_SESSION
SYSTEM_MEMORY_KW_REFSET PERF_REFSET
SYSTEM_MEMORY_KW_VAMAP PERF_VAMAP、EVENT_TRACE_FLAG_VAMAP

注意:

  • 启用 SYSTEM_MEMORY_KW_MEMORY 关键字也会自动在系统 IO 提供程序上启用SYSTEM_IO_KW_FILENAME。

  • SYSTEM_MEMORY_KW_POOL启用的事件支持池标记筛选器,以便选择性地只针对特定池标记写入事件。 这配置为系统内存提供程序上的 架构化筛选器 。 PoolTag 筛选器构造如下:

    {
    EVENT_FILTER_HEADER Header; 
    ULONG PoolTags[ETW_MAX_POOLTAG_FILTER];
    }
    
  • 应使用 ID 设置为SYSTEM_MEMORY_POOL_FILTER_ID初始化 EVENT_FILTER_HEADER ,并将大小字段设置为 Header 的大小加上 PoolTags 数组的已用部分。

  • 每个池标记是一个 4 个字符的字符串,存储在筛选器中作为 ULONG。

系统对象提供程序

提供与对象管理器相关的事件。

GUID:SystemObjectProviderGuid {febd7460-3d1d-47eb-af49-c9eeb1e146f2}

关键字 相应的旧标志和组
SYSTEM_OBJECT_KW_HANDLE PERF_OB_HANDLE
SYSTEM_OBJECT_KW_OBJECT PERF_OB_OBJECT

系统电源提供程序

提供与系统电源状态相关的事件。

GUID:SystemPowerProviderGuid {c134884a-32d5-4488-80e5-14ed7abb8269}

关键字 相应的旧标志和组
SYSTEM_POWER_KW_GENERAL PERF_POWER
SYSTEM_POWER_KW_HIBER_RUNDOWN PERF_HIBER_RUNDOWN
SYSTEM_POWER_KW_PROCESSOR_IDLE PERF_PROCESSOR_IDLE
SYSTEM_POWER_KW_IDLE_SELECTION PERF_IDLE_SELECTION
SYSTEM_POWER_KW_PPM_EXIT_LATENCY PERF_PPM_EXIT_LATENCY

系统进程提供程序

提供与进程相关的事件,包括生存期信息、映像加载事件和线程相关事件。

GUID:SystemProcessProviderGuid {151f55dc-467d-471f-83b5-5f889d46ff6}

关键字 相应的旧标志和组
SYSTEM_PROCESS_KW_GENERAL PERF_PROCESS、EVENT_TRACE_FLAG_PROCESS
SYSTEM_PROCESS_KW_INSWAP PERF_PROCESS_INSWAP
SYSTEM_PROCESS_KW_FREEZE PERF_PROCESS_FREEZE
SYSTEM_PROCESS_KW_PERF_COUNTER PERF_PERF_COUNTER,EVENT_TRACE_FLAG_PROCESS_COUNTERS
SYSTEM_PROCESS_KW_WAKE_COUNTER PERF_WAKE_COUNTER
SYSTEM_PROCESS_KW_WAKE_DROP PERF_WAKE_DROP
SYSTEM_PROCESS_KW_WAKE_EVENT PERF_WAKE_EVENT
SYSTEM_PROCESS_KW_DEBUG_EVENTS PERF_DEBUG_EVENTS,EVENT_TRACE_FLAG_DEBUG_EVENTS
SYSTEM_PROCESS_KW_DBGPRINT PERF_DBGPRINT、EVENT_TRACE_FLAG_DBGPRINT
SYSTEM_PROCESS_KW_JOB PERF_JOB、EVENT_TRACE_FLAG_JOB
SYSTEM_PROCESS_KW_WORKER_THREAD PERF_WORKER_THREAD
SYSTEM_PROCESS_KW_THREAD PERF_THREAD,EVENT_TRACE_FLAG_THREAD
SYSTEM_PROCESS_KW_LOADER PERF_LOADER、EVENT_TRACE_FLAG_IMAGE_LOAD

系统配置文件提供程序

提供分析事件。

GUID:SystemProfileProviderGuid {bfeb0324-1cee-496f-a409-2ac2b48a6322}

关键字 相应的旧标志和组
SYSTEM_PROFILE_KW_GENERAL PERF_PROFILE,EVENT_TRACE_FLAG_PROFILE
SYSTEM_PROFILE_KW_PMC_PROFILE PERF_PMC_PROFILE

系统注册表提供程序

提供与注册表相关的事件。

GUID:SystemRegistryProviderGuid {16156bd9-fab4-4cfa-a232-89d1099058e3}

关键字 相应的旧标志和组
SYSTEM_REGISTRY_KW_GENERAL PERF_REGISTRY,EVENT_TRACE_FLAG_REGISTRY
SYSTEM_REGISTRY_KW_HIVE PERF_REG_HIVE
SYSTEM_REGISTRY_KW_NOTIFICATION PERF_REG_NOTIF

系统计划程序提供程序

提供与计划程序相关的事件。

GUID:SystemSchedulerProviderGuid {599a2a76-4d91-4910-9ac7-7d33f2e97a6c}

关键字 相应的旧标志和组
SYSTEM_SCHEDULER_KW_XSCHEDULER PERF_XSCHEDULER
SYSTEM_SCHEDULER_KW_DISPATCHER PERF_DISPATCHER,EVENT_TRACE_FLAG_DISPATCHER
SYSTEM_SCHEDULER_KW_KERNEL_QUEUE PERF_KERNEL_QUEUE
SYSTEM_SCHEDULER_KW_SHOULD_YIELD PERF_SHOULD_YIELD
SYSTEM_SCHEDULER_KW_ANTI_STARVATION PERF_ANTI_STARVATION
SYSTEM_SCHEDULER_KW_LOAD_BALANCER PERF_LOAD_BALANCER
SYSTEM_SCHEDULER_KW_AFFINITY PERF_AFFINITY
SYSTEM_SCHEDULER_KW_PRIORITY PERF_PRIORITY
SYSTEM_SCHEDULER_KW_IDEAL_PROCESSOR PERF_IDEAL_PROCESSOR
SYSTEM_SCHEDULER_KW_CONTEXT_SWITCH PERF_CONTEXT_SWITCH,EVENT_TRACE_FLAG_CSWITCH

System Syscall 提供程序

提供有关系统调用的事件。

GUID:SystemSyscallProviderGuid {434286f7-6f1b-45bb-b37e-95f623046c7c}

关键字 相应的旧标志和组
SYSTEM_SYSCALL_KW_GENERAL PERF_SYSCALL,EVENT_TRACE_FLAG_SYSTEMCALL

系统计时器提供程序

提供与内核中的计时器相关的事件。

GUID:SystemTimerProviderGuid {4f061568-e215-499f-ab2e-eda0ae890a5b}

关键字 相应的旧标志和组
SYSTEM_TIMER_KW_GENERAL PERF_TIMER
SYSTEM_TIMER_KW_CLOCK_TIMER PERF_CLOCK_TIMER

注解

此新的启用机制是启用这些事件的预先存在的方法。 用于工作的任何代码将继续执行此操作。

由于这项新功能,系统跟踪提供程序生成的事件不会更改。 这意味着,输出的事件不会标记为从单个系统提供程序发出。

有关提供程序 GUID 和关键字定义的详细信息,请参阅 evntrace.h

另请参阅

配置和启动 SystemTraceProvider 会话

evntrace.h 标头