處理繼承
子進程可以從其父進程繼承控制碼。 繼承的控制碼只有在子進程的內容中才有效。 若要讓子進程繼承其父進程的開啟控制碼,請使用下列步驟。
- 使用設定為TRUE的SECURITY_ATTRIBUTES 結構 bInheritHandle成員建立控制碼。
- 使用 CreateProcess 函式建立子進程,並將 bInheritHandles 參數設定為 TRUE。
DuplicateHandle函式會複製要用於目前進程或另一個進程的控制碼。 如果應用程式針對另一個進程複製其中一個控制碼,則重複的控制碼只有在另一個進程的內容中才有效。
重複或繼承的控制碼是唯一值,但參考與原始控制碼相同的物件。 進程可以繼承或複製下列類型的物件控制碼:
- 存取權杖
- 通訊裝置
- 主控台輸入
- 主控台畫面緩衝區
- 桌面
- Directory
- 事件
- 檔案
- 檔案對應
- 工作 (Job)
- Mailslot
- Mutex
- Pipe
- 處理序
- 登錄機碼
- Semaphore
- 插座
- Thread
- 計時器
- 視窗月臺
所有其他物件都是建立它們之進程的私用物件;無法複製或繼承其物件控制碼。
如需詳細資訊,請參閱繼承。