【问题标题】:CreateThread vs PsCreateSystemThread - What is the difference?CreateThread 与 PsCreateSystemThread - 有什么区别?
【发布时间】:2013-07-30 01:48:47
【问题描述】:
我想问一下PsCreateSystemThread和CreateThread有什么区别。从 MSDN 描述看来,PsCreateSystemThread 是用于内核线程的。
CreateThread 看起来像一个内核线程,但与一个进程共享相同的虚拟空间内存。这意味着我可以让多个线程一起运行,但我无法访问其他进程的内存空间。
【问题讨论】:
标签:
c++
c
driver
windows-kernel
createthread
【解决方案1】:
CreateThread 创建一个在调用进程的虚拟地址空间内执行的线程,而 PsCreateSystemThread 创建一个在内核模式下执行的系统线程并返回一个句柄线程。
【解决方案2】:
CreateThread 创建在进程地址空间中工作的用户模式线程。它与内核无关。这个 API 大约有 20 年的历史了。
PsCreateSystemThread 创建内核线程。