c++代码(大体逻辑没问题,细节需要确认)
  1. DWORD __stdcall *ComFriendlyWaitMtaThreadProc(LPVOID lpThreadParameter)
  2. {
  3. CoInitializeEx(0,0);
  4. ThreadParam* pParam =(ThreadParam*)lpThreadParameter;
  5. ComFriendlyWaiter* pData =newComFriendlyWaiter(pParam->p2, pParam->p1);
  6. hr =CoMarshalInterThreadInterfaceInStream(GUID_6d5140c1_7436_11ce_8034_00aa006009fa, pData,&pStream);
  7. pData->Release();
  8. SetEvent(pParam->hEvent);
  9. WaitForSingleObject(pParam->hXXX);
  10. CoUninitialize();
  11. }
 
 
 
汇编码
  1. uiautomationcore!ComFriendlyWaitMtaThreadProc:
  2. 7303f5f18bff mov edi,edi
  3. 7303f5f355 push ebp
  4. 7303f5f48bec mov ebp,esp
  5. 7303f5f656 push esi
  6. 7303f5f757 push edi
  7. 7303f5f86a00 push 0
  8. 7303f5fa6a00 push 0
  9. 7303f5fc ff1504130373 call dword ptr [uiautomationcore!_imp__CoInitializeEx (73031304)]
  10. 7303f6026a18 push 18h
  11. 7303f604 e80c34ffff call uiautomationcore!operatornew(73032a15)
  12. 7303f6098b7d08 mov edi,dword ptr [ebp+8]
  13. 7303f60c59 pop ecx
  14. 7303f60d85c0 test eax,eax
  15. 7303f60f7452 je uiautomationcore!ComFriendlyWaitMtaThreadProc+0x2e(7303f663)Branch
  16. uiautomationcore!ComFriendlyWaitMtaThreadProc+0x20:
  17. 7303f611 ff7704 push dword ptr [edi+4]
  18. 7303f6148bc8 mov ecx,eax
  19. 7303f616 ff37 push dword ptr [edi]
  20. 7303f618 e84f000000 call uiautomationcore!ComFriendlyWaiter::ComFriendlyWaiter(7303f66c)
  21. uiautomationcore!ComFriendlyWaitMtaThreadProc+0x30:
  22. 7303f61d8bf0 mov esi,eax
  23. 7303f61f83c008 add eax,8
  24. 7303f622 f7de neg esi
  25. 7303f6241bf6 sbb esi,esi
  26. 7303f62623f0 and esi,eax
  27. 7303f6288d470c lea eax,[edi+0Ch]
  28. 7303f62b50 push eax
  29. 7303f62c56 push esi
  30. 7303f62d68e4230373 push offset uiautomationcore!_GUID_6d5140c1_7436_11ce_8034_00aa006009fa (730323e4)
  31. 7303f632 ff150c130373 call dword ptr [uiautomationcore!_imp__CoMarshalInterThreadInterfaceInStream (7303130c)]
  32. 7303f638894708 mov dword ptr [edi+8],eax
  33. 7303f63b8b06 mov eax,dword ptr [esi]
  34. 7303f63d56 push esi
  35. 7303f63e ff5008 call dword ptr [eax+8]
  36. 7303f641 ff7710 push dword ptr [edi+10h]
  37. 7303f644 ff152c120373 call dword ptr [uiautomationcore!_imp__SetEvent (7303122c)]
  38. 7303f64a6aff push 0FFFFFFFFh
  39. 7303f64c ff7714 push dword ptr [edi+14h]
  40. 7303f64f ff1528120373 call dword ptr [uiautomationcore!_imp__WaitForSingleObject (73031228)]
  41. 7303f655 ff1508130373 call dword ptr [uiautomationcore!_imp__CoUninitialize (73031308)]
  42. 7303f65b5f pop edi
  43. 7303f65c33c0 xor eax,eax
  44. 7303f65e5e pop esi
  45. 7303f65f5d pop ebp
  46. 7303f660 c20400 ret 4
  47. uiautomationcore!ComFriendlyWaitMtaThreadProc+0x2e:
  48. 7303f66333c0 xor eax,eax
  49. 7303f665 ebb6 jmp uiautomationcore!ComFriendlyWaitMtaThreadProc+0x30(7303f61d)Branch
 
 

[原]ComFriendlyWaitMtaThreadProc的更多相关文章

  1. [原]调试实战——使用windbg调试崩溃在ComFriendlyWaitMtaThreadProc

    原调试debugwindbgcrash崩溃COM 前言 这是几年前在项目中遇到的一个崩溃问题,崩溃在了ComFriendlyWaitMtaThreadProc()里,没有源码.耗费了我很大精力,最终通 ...

  2. [原]调试ComFriendlyWaitMtaThreadProc崩溃

    项目里安装了UIA相关的钩子来监听UIA相关事件,退出的时候偶尔会崩溃在ComFriendlyWaitMtaThreadProc中,如下  从上图可以看出 是访问到无效的地址了,用!address 0 ...

  3. 【原】谈谈对Objective-C中代理模式的误解

    [原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...

  4. 【原】FMDB源码阅读(三)

    [原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...

  5. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

  6. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  7. 【原】FMDB源码阅读(二)

    [原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...

  8. 【原】FMDB源码阅读(一)

    [原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...

  9. 【原】AFNetworking源码阅读(六)

    [原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...

随机推荐

  1. CXF Spring开发WebService,基于SOAP和REST方式 【转】

    官网示例 http://cxf.apache.org/docs/writing-a-service-with-spring.html http://cxf.apache.org/docs/jax-rs ...

  2. Java this关键字

    this 关键字有三个应用: 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他方法 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行 来看下面这段代码: ...

  3. CentOS 7.2 安装配置Samba服务器

    1背景 转Linux刚刚1年,vim操作还不能应对工程代码,之前一直都是Gnome桌面 + Clion 作开发环境,无奈在服务器上没有这样的环境, 看同事是(Windows)Source Insigh ...

  4. trunk 的坑

    三层交换机A和三层交换机B之间原本配置有trunk口,如再用trunk连二层交换机会导致环路,网络不通.将L3 A和L3-B之间断开正常.

  5. Apache本地配置多域名

    第一步:打开本地系统安装目录,进入目录C:\Windows\System32\drivers\etc找到一个叫hosts文件,用记事本打开,在文件结尾加入以下代码: 127.0.0.1 www.tes ...

  6. ebs R12.2启动报错"failed to start a managed process after the maximum retry limit"

    启动日志: Error --> Process (index=1,uid=1739599208,pid=4479) failed to start a managed process after ...

  7. Asp.Net Mvc4 Webapi Request获取参数

    最近用mvc4中的WEBAPI,发现接收参数不是很方便,跟传统的request.querystring和request.form有很大区别,在网上搜了一大圈,各种方案都有,但不是太详细,于是跟踪Act ...

  8. 【转】Deadlock的一些总结(死锁分析及处理)

    1.1.1 摘要 在系统设计过程中,系统的稳定性.响应速度和读写速度至关重要,就像12306.cn那样,当然我们可以通过提高系统并发能力来提高系统性能总体性能,但在并发作用下也会出现一些问题,例如死锁 ...

  9. HDU 5053 the Sum of Cube(简单数论)

    http://acm.hdu.edu.cn/showproblem.php?pid=5053 题目大意: 求出A^3+(A+1)^3+(A+2)^3+...+B^3和是多少 解题思路: 设f(n)=1 ...

  10. 接口性能测试--JMeter

    1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...