本来不想写这个blog的,因为估计没有读者.不过想想反正也就几个朋友在看,写写也无妨.
etw主要包括3个component:controller, provider, and consumer. 这3个的角色从名字一看就清楚了.我简单介绍一下使用的方法: 【程序编程相关:Modify Your Codes wi】
最近在用event tracing for windows (简称etw) 做longhorn里resource cache loader与resource cache service之间的通讯.不知道etw这个东东ms外面的人用的多不多?anyway,从我使用的经验来讲,觉得这是一个不错的ipc方法,至少除了named pipe之外,你还有另一种选择(shared memory map当然也可以,但我的意思是那种有点像网络通讯的传递方式). 【推荐阅读:Web Services的魅力】
provider首先应该用registertraceguids注册一个event trace,同时提供给registertraceguids的还有一个controlcallback,这个callback在provider被controller启动(enable)与停止(disable)的时候会被调用,然后provider就可以相应地开始用traceevent来发送event trace或者停止发送.当然,provider还要通过这个callback的一个参数来了解应该往哪里送trace,这个参数就是一个由controller打开的event trace session.什么是event trace session?往下看
controller的主要任务有两个:一是用starttrace在内存中创建一个event trace session,这样provider就知道该往哪里送trace,而controller也会负责将session里记录的trace送到consumer手里.controller的第二个任务就是启动(api: enabletrace)与停止(api: controltrace)provider.... 下一页