سؤال

لتبدأ مع سأقول أنني قرأت المنشور هنا وما زلت أواجه مشكلة.

أحاول إنشاء صورة CE6 مع سجل قائم على الخلية يقوم بالفعل بتخزين النتائج من خلال إعادة التشغيل.

  • لقد وضعت علامة على إعدادات الخلية في عناصر الكتالوج.
  • بشكل مشترك. reg ، لقد قمت بتعيين موقع الخلية ([hkey_local_machine init bootvars] "systemhive") على "محرك الأقراص الثابت
  • في الشائع
  • لقد تحقق من أن هذه الإعدادات ملفوفة في "قسم التمهيد الخلية"

هذا هو المكان الذي يبدأ فيه السقوط. كل ذلك يجمع بشكل جيد ، ولكن على النظام المستهدف ، عندما يحذر ، أحصل على:

  • دليل ، يسمى "القرص الثابت" حيث يتم وضع السجل
  • جهاز ، اسم يسمى "Hard Disk2" حيث يكون الفلاش الدائم
  • يتم فقد أي تغييرات تم إجراؤها على السجل عند إعادة التشغيل

ما الذي ما زلت مفقودًا؟ لماذا لا يتم تخزين السجل على الفلاش؟

من الغريب ، إذا قمت بإنشاء ملف/دليل عشوائي في دليل التسجيل ، فهو لا يزال موجودًا بعد إعادة التشغيل ، لذلك على الرغم من أن هذا الدليل ليس على القسم الآخر (حيث حاولت وضعه) ، يبدو أنه دائم . إذا كانت دائمة ، فلماذا لا تنقذ إعدادات التسجيل (أي عناوين IP محول Ethernet؟)

أنا لا أستخدم أي ملفات تعريف محددة ، لذلك أنا في حيرة بشأن الخطوة الأخيرة لجعل سجل الخلية هذا متجرًا دائمًا.

هل كانت مفيدة؟

المحلول

أولاً ، أتمنى ألا تتغير شائعًا. يجب ألا تقوم أبدًا بتغيير الكود العام. إذا كنت ترغب في تغيير مفاتيح التسجيل العام ، فأنت بحاجة إلى تعيينها في مشروعك. Reg أو Platform. وسوف يتجاوزون الإعدادات العامة.

SystemHive يجب ضبطها على اسم الدليل الذي تريد تخزين ملفات الخلية إليه بدون اسم الجهاز. في حالتك:"SystemHive"="Registry\\system.hv"
اقتبس من مصدر MSDN:

لا تتضمن اسم نظام الملفات الذي يتم تخزين الملف عليه. سيحدد النظام نظام الملفات الذي يجب استخدامه بناءً على إعدادات التسجيل الأخرى.


تحديث بخصوص تعليقك الثاني (مصدر):

إذا كانت هذه القيمة موجودة ضمن HKEY_LOCAL_MACHINE ، فهذا يشير إلى أنه تم استعادة خلية النظام بنجاح. إذا كان موجودًا بموجب HKEY_Current_user ، فهذا يشير إلى أن خلية المستخدم تم استعادةها بنجاح.

هل تقوم بتنظيف التغييرات التي تجريها؟
تأكد من أنه ليس لديك تنفيذ غريب IOCTL_HAL_GET_HIVE_CLEAN_FLAG (مصدر) - قد يقوم نظامك بإرجاع قيمة حقيقية لتنظيف سجل النظام في كل صندوق.


يمكنك إضافة مؤشر ترابط من شأنه أن يطرد السجل بشكل دوري (على الرغم من أنني أوصي باستثناءه والسماح لكل تطبيق بتدفق تغييراته الخاصة) - prj_enable_regflush_thread

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top