处理继承
子进程可以从其父进程继承句柄。 继承的句柄仅在子进程的上下文中有效。 若要使子进程能够从其父进程继承打开的句柄,请使用以下步骤。
- 使用设置为 TRUE的 SECURITY_ATTRIBUTES 结构的 bInheritHandle 成员创建句柄。
- 使用 CreateProcess 函数创建子进程,bInheritHandles 参数设置为 TRUE。
DuplicateHandle 函数复制当前进程或其他进程中要使用的句柄。 如果应用程序为另一个进程复制其一个句柄,则重复的句柄仅在另一个进程的上下文中有效。
重复的或继承的句柄是一个唯一值,但它引用与原始句柄相同的对象。 进程可以继承或复制以下类型的对象的句柄:
- 访问令牌
- 通信设备
- 控制台输入
- 控制台屏幕缓冲区
- 桌面
- 目录
- 事件
- 文件
- 文件映射
- 工作
- Mailslot
- Mutex
- 管
- 过程
- 注册表项
- 信号
- 插座
- 线
- 定时器
- 窗口工作站
所有其他对象都是创建它们的进程的专用对象;其对象句柄不能重复或继承。
有关详细信息,请参阅 继承。