*ReactOS学习笔记*
CreateProcess 内部实现
调用CreateProcessW
调用CreateProcessInternalW
参数检查
获取进程文件路径
调用 BasepMapFile映射文件(内部调用NtCreateSection)
判断是否是一个DLL文件
判断子系统类型(只能是GUI和CUI中的一种)
是GUI时,则去掉CREATE_NEW_CONSOLE标志,增加DETACHED_PROCESS
如果dwCreationFlags参数中包含DEBUG_PROCESS|DEBUG_ONLY_THIS_PROCESS,则调用DbgUiConnectToDbg创建调试对象(debugPort)
调用NtCreateProcess开始创建进程
调用NtCreateProcessEx
调用PspCreateProcess
关联相关句柄的内核对象(SectionHandle,DebugPort,ExceptionPort)
创建进程空间( MmCreateProcessAddressSpace)
初始化进程内核对象(KeInitializeProcess)
复制父进程的Token(PspInitializeProcessSecurity)
初始化进程句

本文是ReactOS学习笔记的一部分,详细探讨了CreateProcess的内部实现过程,包括测试Alart的NtTestAlert函数,APC执行后的PspUserThreadStartup函数,以及如何通过线程入口地址启动线程执行。
最低0.47元/天 解锁文章
3150

被折叠的 条评论
为什么被折叠?



