處理繼承

子進程可以從其父進程繼承控制碼。 繼承的控制碼只有在子進程的內容中才有效。 若要讓子進程繼承其父進程的開啟控制碼,請使用下列步驟。

  1. 使用設定TRUESECURITY_ATTRIBUTES 結構 bInheritHandle成員建立控制碼。
  2. 使用 CreateProcess 函式建立子進程,並將 bInheritHandles 參數設定為 TRUE

DuplicateHandle函式會複製要用於目前進程或另一個進程的控制碼。 如果應用程式針對另一個進程複製其中一個控制碼,則重複的控制碼只有在另一個進程的內容中才有效。

重複或繼承的控制碼是唯一值,但參考與原始控制碼相同的物件。 進程可以繼承或複製下列類型的物件控制碼:

  • 存取權杖
  • 通訊裝置
  • 主控台輸入
  • 主控台畫面緩衝區
  • 桌面
  • Directory
  • 事件
  • 檔案
  • 檔案對應
  • 工作 (Job)
  • Mailslot
  • Mutex
  • Pipe
  • 處理序
  • 登錄機碼
  • Semaphore
  • 插座
  • Thread
  • 計時器
  • 視窗月臺

所有其他物件都是建立它們之進程的私用物件;無法複製或繼承其物件控制碼。

如需詳細資訊,請參閱繼承