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