处理继承

子进程可以从其父进程继承句柄。 继承的句柄仅在子进程的上下文中有效。 若要使子进程能够从其父进程继承打开的句柄,请使用以下步骤。

  1. 使用设置为 TRUESECURITY_ATTRIBUTES 结构的 bInheritHandle 成员创建句柄。
  2. 使用 CreateProcess 函数创建子进程,bInheritHandles 参数设置为 TRUE

DuplicateHandle 函数复制当前进程或其他进程中要使用的句柄。 如果应用程序为另一个进程复制其一个句柄,则重复的句柄仅在另一个进程的上下文中有效。

重复的或继承的句柄是一个唯一值,但它引用与原始句柄相同的对象。 进程可以继承或复制以下类型的对象的句柄:

  • 访问令牌
  • 通信设备
  • 控制台输入
  • 控制台屏幕缓冲区
  • 桌面
  • 目录
  • 事件
  • 文件
  • 文件映射
  • 工作
  • Mailslot
  • Mutex
  • 过程
  • 注册表项
  • 信号
  • 插座
  • 线
  • 定时器
  • 窗口工作站

所有其他对象都是创建它们的进程的专用对象;其对象句柄不能重复或继承。

有关详细信息,请参阅 继承