次の方法で共有


継承の処理

子プロセスは、親プロセスからハンドルを継承できます。 継承されたハンドルは、子プロセスのコンテキストでのみ有効です。 子プロセスが親プロセスから開いているハンドルを継承できるようにするには、次の手順を使用します。

  1. SECURITY_ATTRIBUTES 構造体の bInheritHandle メンバーを TRUE 設定してハンドルを作成します。
  2. bInheritHandles パラメーターを TRUE に設定して、CreateProcess 関数使用して子プロセスを作成します。

DuplicateHandle 関数は、現在のプロセスまたは別のプロセスで使用されるハンドルを複製します。 アプリケーションが別のプロセスのハンドルの 1 つを複製する場合、重複したハンドルは、もう一方のプロセスのコンテキストでのみ有効です。

重複または継承されたハンドルは一意の値ですが、元のハンドルと同じオブジェクトを参照します。 プロセスは、次の種類のオブジェクトにハンドルを継承または複製できます。

  • アクセス トークン
  • 通信デバイス
  • コンソール入力
  • コンソール画面バッファー
  • デスクトップ
  • ディレクトリ
  • 出来事
  • ファイル
  • ファイル マッピング
  • 仕事
  • Mailslot
  • ミューテックス
  • パイプ
  • 過程
  • レジストリ キー
  • セマフォ
  • ソケット
  • タイマー
  • 窓ステーション

他のすべてのオブジェクトは、それらを作成したプロセスに対してプライベートです。オブジェクト ハンドルを複製または継承することはできません。

詳細については、「継承」を参照してください。