/// @brief scff_interprocessモジュールのパラメータから生成
        public static Directory FromInterprocess(scff_interprocess.Directory input)
        {
            Directory output = new Directory();

            const int kMaxEntry = scff_interprocess.Interprocess.kMaxEntry;
            for (int i = 0; i < kMaxEntry; i++) {
              if (input.entries[i].process_id == 0)
            continue;
              output.Entries.Add(EntryFactory.FromInterprocess(input.entries[i]));
            }

            return output;
        }
        /// @brief scff_interprocessモジュールのパラメータを生成
        public static scff_interprocess.Directory ToInterprocessDirectory(Directory input)
        {
            scff_interprocess.Directory output = new scff_interprocess.Directory();

            // Listの前から順番に書き込む
            const int kMaxEntry = scff_interprocess.Interprocess.kMaxEntry;
            output.entries = new scff_interprocess.Entry[kMaxEntry];
            for (int i = 0; i < kMaxEntry; i++) {
              if (i < input.Entries.Count) {
            output.entries[i] = EntryFactory.ToInterprocessEntry(input.Entries[i]);
              } else {
            // C#はインスタンスは勝手にゼロクリアされる
            output.entries[i] = new scff_interprocess.Entry();
              }
            }

            return output;
        }