0

我正在对 windows 网络堆栈进行故障排除并使用 Perfview/ETW 来完成它。

我对事件源 Microsoft-Windows-TCPIP 清单中出现的一些值特别感兴趣。

使用此方法我可以毫无问题地获取清单

PerfView /onlyProviders=*Microsoft-Demos-MySource EventSource collect

PerfView /noGui userCommand DumpEventSourceManifests PerfVIewData.etl.zip

问题是,一旦我得到清单,它就会有一堆没有太多解释的值。

例如

 <template tid="TcpTemplateChangedArgs">
  <data name="Tcb" inType="win:Pointer"/>
  <data name="TemplateType" inType="win:UInt32"/>
  <data name="Context" inType="win:UnicodeString"/>
 </template>

我对这个 Context 值特别感兴趣,因为在我的测试用例中,我得到“Initializing Templace SYNTCB”但就是这样

我真的很想知道例如

  • 在堆栈/代码中的哪个位置触发此模板更改
  • 无论如何,这个 SYNTCB 模板是什么
  • 哪个微软团队管理这个特定的 ETW 源,所以也许我可以以某种方式问他们一个问题..

我已经尽我所能在.net 代码库中查看 system.net(网络代码),看看那里是否有 ETW 挂钩,但我找不到任何东西......

我也可以在 Perfview 中看到该事件,但找不到保存该事件的内存堆栈(是的,我已经扩展了所有系统级事件,并下载了尽可能多的符号库)

4

0 回答 0