跳至主要内容

6.句柄表

内核对象

  • 像进程、线程、文件、互斥体、事件等在内核都有一个对应的结构体,这些结构体由内核负责管理。我们管这样的对象叫做内核对象。

管理内核对象

  • 每个进程都有一个句柄表
  • 用户层通过句柄表来操作内核层的结构体
  • 句柄表属于进程(EPROCESS)对象,每个进程拥有自己的句柄表。
  • 多进程可以共享一个内核对象,CreateProcess()和OpenProcess()
  • 句柄能否被子进程继承
    • 句柄本身可继承SECURITY_ATTRIBUTES.bInheritHandle = TRUE 或通过其他方式设置句柄可继承属性)。
    • 创建子进程时允许继承句柄CreateProcessbInheritHandles = TRUE)。

关于本文

由 GuQing 撰写,采用 CC BY-NC 4.0 许可协议。