com的几个疑问
1 . CoCreateInstance有初始化RPC连接的操作吗?
2. COM导出的类和函数的IID和RPC的PortName有对应关系么?
3. 可以通过客户端port中的tid判断对某个函数的调用时通过port吗?
4. com中的dispatch表中的格式?
5. COM中的函数和RPC中的tid,opcode和dispatch中的函数怎么联系起来的?
com处理过程理解:
com(接口guid,函数名)-->RPC中connect 目标port()-->RPCRT4!NdrClientCall2->ntdll!ZwRequestPort(源进程)
->ole32!CCliModalLoop::SendReceive
ole32.dlL(判断哪个接口处理)-->RPCRT4.DLL(NdrStubCall2)-->目标线程在for死循环中不断的NtListenPort,根据opcode,data判断调用哪个内部函数处理->内部函数处理
--写于2013-10-24