[原]ComFriendlyWaitMtaThreadProc
DWORD __stdcall *ComFriendlyWaitMtaThreadProc(LPVOID lpThreadParameter){CoInitializeEx(0,0);ThreadParam* pParam =(ThreadParam*)lpThreadParameter;ComFriendlyWaiter* pData =newComFriendlyWaiter(pParam->p2, pParam->p1);hr =CoMarshalInterThreadInterfaceInStream(GUID_6d5140c1_7436_11ce_8034_00aa006009fa, pData,&pStream);pData->Release();SetEvent(pParam->hEvent);WaitForSingleObject(pParam->hXXX);CoUninitialize();}
uiautomationcore!ComFriendlyWaitMtaThreadProc:7303f5f18bff mov edi,edi7303f5f355 push ebp7303f5f48bec mov ebp,esp7303f5f656 push esi7303f5f757 push edi7303f5f86a00 push 07303f5fa6a00 push 07303f5fc ff1504130373 call dword ptr [uiautomationcore!_imp__CoInitializeEx (73031304)]7303f6026a18 push 18h7303f604 e80c34ffff call uiautomationcore!operatornew(73032a15)7303f6098b7d08 mov edi,dword ptr [ebp+8]7303f60c59 pop ecx7303f60d85c0 test eax,eax7303f60f7452 je uiautomationcore!ComFriendlyWaitMtaThreadProc+0x2e(7303f663)Branchuiautomationcore!ComFriendlyWaitMtaThreadProc+0x20:7303f611 ff7704 push dword ptr [edi+4]7303f6148bc8 mov ecx,eax7303f616 ff37 push dword ptr [edi]7303f618 e84f000000 call uiautomationcore!ComFriendlyWaiter::ComFriendlyWaiter(7303f66c)uiautomationcore!ComFriendlyWaitMtaThreadProc+0x30:7303f61d8bf0 mov esi,eax7303f61f83c008 add eax,87303f622 f7de neg esi7303f6241bf6 sbb esi,esi7303f62623f0 and esi,eax7303f6288d470c lea eax,[edi+0Ch]7303f62b50 push eax7303f62c56 push esi7303f62d68e4230373 push offset uiautomationcore!_GUID_6d5140c1_7436_11ce_8034_00aa006009fa (730323e4)7303f632 ff150c130373 call dword ptr [uiautomationcore!_imp__CoMarshalInterThreadInterfaceInStream (7303130c)]7303f638894708 mov dword ptr [edi+8],eax7303f63b8b06 mov eax,dword ptr [esi]7303f63d56 push esi7303f63e ff5008 call dword ptr [eax+8]7303f641 ff7710 push dword ptr [edi+10h]7303f644 ff152c120373 call dword ptr [uiautomationcore!_imp__SetEvent (7303122c)]7303f64a6aff push 0FFFFFFFFh7303f64c ff7714 push dword ptr [edi+14h]7303f64f ff1528120373 call dword ptr [uiautomationcore!_imp__WaitForSingleObject (73031228)]7303f655 ff1508130373 call dword ptr [uiautomationcore!_imp__CoUninitialize (73031308)]7303f65b5f pop edi7303f65c33c0 xor eax,eax7303f65e5e pop esi7303f65f5d pop ebp7303f660 c20400 ret 4uiautomationcore!ComFriendlyWaitMtaThreadProc+0x2e:7303f66333c0 xor eax,eax7303f665 ebb6 jmp uiautomationcore!ComFriendlyWaitMtaThreadProc+0x30(7303f61d)Branch
[原]ComFriendlyWaitMtaThreadProc的更多相关文章
- [原]调试实战——使用windbg调试崩溃在ComFriendlyWaitMtaThreadProc
原调试debugwindbgcrash崩溃COM 前言 这是几年前在项目中遇到的一个崩溃问题,崩溃在了ComFriendlyWaitMtaThreadProc()里,没有源码.耗费了我很大精力,最终通 ...
- [原]调试ComFriendlyWaitMtaThreadProc崩溃
项目里安装了UIA相关的钩子来监听UIA相关事件,退出的时候偶尔会崩溃在ComFriendlyWaitMtaThreadProc中,如下 从上图可以看出 是访问到无效的地址了,用!address 0 ...
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
- 【原】FMDB源码阅读(一)
[原]FMDB源码阅读(一) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 说实话,之前的SDWebImage和AFNetworking这两个组件我还是使用过的,但是对于 ...
- 【原】AFNetworking源码阅读(六)
[原]AFNetworking源码阅读(六) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这一篇的想讲的,一个就是分析一下AFSecurityPolicy文件,看看AF ...
随机推荐
- Ubuntu 14.04 编译安装 husky
简介 Husky是一个大数据分布式开发框架,用C++开发,因为粗粒度(coarse-grained)平台(如Spark,Hadoop,Flink)MR耗时太大,然后细粒度(fine-grained)平 ...
- iOS上线...踩坑
总结一下上线过程中出现的问题: 1.AppStore不允许app中出现下载别的app的提示 (例如:三方登录的时候,检测到手机未安装QQ,微信,微博,提示你的设备未安装!❌❌❌ 正确的做法:未安装的, ...
- Python实例学习-文件备份
1. 介绍 通过实例学习Python的使用,该实例来自文献[1]中的第11章解决问题. 由于没有搞清楚Win7下如何通过命令行调用zip命令,所以采用7z[2],采用7-zip命令行版本[3],版本号 ...
- LeetCode Minimum Moves to Equal Array Elements II
原题链接在这里:https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/ 题目: Given a non-empt ...
- mysql 主从
1.首先 主库创建二进制数据访问账户(账户:repl 密码:repl@01) GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* to repl@'% ...
- C# 与数据库中字段类型 Int16(short), Int32(int), Int64(long)的取值范围、区别 。string长度
一开始看到Int16, Int32, Int64这三种类型就觉得有点怪, 为什么要整个数字结尾的, 挺怪的. 昨天互相想到, ms这么干就是想让大家一眼就知道这个数据类型占多大空间吧. Int8, 等 ...
- GPS部标监控平台的架构设计(八)-基于WCF的平台数据通信设计
总体来讲,GPS部标平台的软件开发是一个对网络通信和应用程序之间通信的技术应用密集型的开发工作,也是有一定设计技术含量的工作. 1.设计通信接口 在设计的时候,根据职责划分,拆分成不同的应用子系统,对 ...
- FusionCharts饼图的图例属性
showLegend 是否在图表中显示图例 legendPosition 图例可以显示在图表的底部(BOTTOM)或右侧(RIGHT) legendCaption 可以为图例整体定义一个标题 lege ...
- 基础编程-java之股神
买了一支股票,他知道从他买股票的那天开始,股票会有以下变化:第一天不变,以后涨一天,跌一天,涨两天,跌一天,涨三天,跌一天...依此类推. 为方便计算,假设每次涨和跌皆为1,股票初始单价也为1,请计算 ...
- My Env
Font -- YaHei Consolas Hybrid YaHei ConsolasAsume that we put the font file in /usr/share/fonts/myfo ...