• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






boysbeer

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

2012年9月6日

线程创建过程--启动篇
摘要: 在初始化篇,大概讲述了线程初始化过程,这里继续讲述线程的第一次启动运行是怎么进行的。在上一篇中,最后说道线程调用了NtResumeThread函数之后,线程就可以开始调度了。当系统进行线程调度的时候,使用如下内核函数进行线程切换,这里要说的就是此函数。BOOLEANFASTCALLKiSwapContext( IN PKTHREAD CurrentThread, IN PKTHREAD NewThread); 函数是汇编实现的,定义在ctxswitch.s文件中,代码如下:.globl @KiSwapContext@8.func @KiSwapContext@8, @Ki... 阅读全文
posted @ 2012-09-06 18:05 boysbeer 阅读(1843) 评论(0) 推荐(0)
 
线程创建过程--初始化篇
摘要: CreateThread(用户空间函数)直接调用CreateRemoteThread函数View Code HANDLESTDCALLCreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadI... 阅读全文
posted @ 2012-09-06 17:06 boysbeer 阅读(6889) 评论(0) 推荐(0)