如何在内核模式下捕获etw?

How capture Etw in kernelmode?

我正在尝试在我的驱动程序中使用 Etw 捕获一些系统调用,更准确地说,我需要捕获 NtWriteVirtualMemory 和 NtReadVirtualMemory 用户模式调用,我尝试使用提供程序:Microsoft Windows Threat Intelligence, I used PerfView to dump the Threat Inteligence xml for Windows 10 1909 and used message compiler to compile the manifest(exactly what microsoft said to do) and checked Microsoft Etw sample code,但由于某种原因我的回调仅调用一次(当在我的 DriverEntry 中调用 EtwRegister 时),以注册我的回调 我刚刚调用了 EtwRegister,我应该如何处理回调?我将 Microsoft 示例代码与 mc.exe(消息编译器)

生成的头文件一起使用

您查看的样本适用于 ETW 提供者,而不是消费者。 我不确定是否有从内核中使用 ETW 事件的记录方式。您可以检查来自用户模式的消费事件示例: https://github.com/microsoft/Windows-driver-samples/tree/master/general/tracing/SystemTraceControl

另请注意,Microsoft Windows 威胁情报 ETW 提供程序只能在反恶意软件 PPL 类型的进程中使用。它需要具有 Early Launch AntiMalware 驱动程序和匹配的 AntiMalware 服务。可以在以下位置找到更多信息: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/early-launch-antimalware https://docs.microsoft.com/en-us/windows/win32/services/protecting-anti-malware-services-