Memory management ETW ProcessTrace()是否尝试在XP上保留1GB内存?

Memory management ETW ProcessTrace()是否尝试在XP上保留1GB内存?,memory-management,out-of-memory,etw,Memory Management,Out Of Memory,Etw,我目前正在编写一个通过ETW跟踪函数使用NT内核记录器的应用程序。它在实时模式下消耗。它在我的Windows7测试机上运行良好,但在我的XP虚拟机上,我经常遇到内存不足的异常 使用APIMonitor(惊人的工具btw),我通过ProcessTrace()Win32 API调用本身跟踪到对nAllocateVirtualMemory()的调用。它正试图分配1GB的连续内存,如屏幕截图所示 以前有人遇到过这种情况吗?我无法想象它为什么需要分配这么多内存。此外,由于调用发生在未记录的Win32 A

我目前正在编写一个通过ETW跟踪函数使用NT内核记录器的应用程序。它在实时模式下消耗。它在我的Windows7测试机上运行良好,但在我的XP虚拟机上,我经常遇到内存不足的异常

使用APIMonitor(惊人的工具btw),我通过ProcessTrace()Win32 API调用本身跟踪到对nAllocateVirtualMemory()的调用。它正试图分配1GB的连续内存,如屏幕截图所示

以前有人遇到过这种情况吗?我无法想象它为什么需要分配这么多内存。此外,由于调用发生在未记录的Win32 API函数(WmiMofEnumerateResourcesA())的ProcessTrace()调用堆栈的深处,我似乎无法真正影响它。以前有人遇到过这种情况吗?如果有任何可能的解决办法,我将不胜感激


我需要支持XP/2003,在32位版本上,我真的不能假设1GB的连续内存可用。实时处理也是一项要求。然而,任何使用文件备份日志记录而不涉及丢失事件的解决方案,我可以考虑,例如,如果可能的话,我会“实时”处理添加到.ETL文件中的新事件。您知道哪个更新修复了这个问题吗?看起来它已经用SP3修复了