تحديث برامج تشغيل UMDF أثناء التطوير
سؤال
أواجه بعض المتاعب في تحديث برامج تشغيل UMDF باستخدام "DevCon" خلال دورة Deploy-Debug القياسية. المشكلة هي أن "Devcon Update" لا يقوم بتحديث أي شيء حقًا ما لم يكن رقم الإصدار أو تاريخ ملف DLL وأن ملف INF قد تغير من ما يتم تخزينه في مجلد ذاكرة التخزين المؤقت لبرنامج تشغيل النظام. بعد سلسلة من التجارب المجنونة ، اكتشفت أن إحدى الطرق لإجبار الشيء على استخدام أحدث الملفات هي القيام بما يلي:
- قم بتغيير المعلمات التي تم تمريرها إلى "stampinf.exe" في "makefile.inc" عن طريق تعيين نسخة صريحة مع خيار "-v".
- قم بتعديل ملف البرنامج النصي للموارد ("driver_name.rc") لتعريف أولاً
VER_USE_OTHER_MAJOR_MINOR_VER
قبل بما في ذلك "ntverp.h
"ثم حدد صراحةVER_PRODUCTMAJORVERSION
وVER_PRODUCTMINORVERSION
. ستلاحظ أن هذا النظام لا يسمح لنا بتغيير أرقام الإنشاء وأرقام المراجعة. في Win7 ، يبدو أن هذا ثابت في 7600 و 16385 في "ntverp.h
"هل هذا حسب التصميم؟
لذلك ، أقوم أولاً بتعديل "makefile.inc" وأعين خيار "-v" على شيء مثل "1.1.7600.16385" زيادة يدويًا الإصدار الثانوي لكل بناء واحد ثم قم بتعديل ملف RC وتحديثه VER_PRODUCTMINORVERSION
مع نفس الرقم.
بدلاً من ذلك ، إذا قمت بتشغيل موجه أوامر تحت حساب النظام وقمت بحذف مجلد ذاكرة التخزين المؤقت للسائق في "C: Windows System32 Driverstore FilerePository Driver" قبل تشغيل "DevCon" ، فهذا يعمل أيضًا.
الآن ، أعتقد أنني أفتقد شيئًا أساسيًا إلى حد ما هنا لأن هذا يبدو أنه وسيلة مؤلمة إلى حد ما للقيام بذلك. الرجاء المساعدة! شكرًا!
المحلول
لماذا لا يمكنك فقط فصل الجهاز واستبدال DLL غير المحملة؟ يجب ألا تحتاج إلى إعادة تثبيت برنامج التشغيل ، ما عليك سوى استبدال الوحدة النمطية. لاحظ أنه لا ينبغي عليك القيام بذلك أثناء الإنتاج أو أي شيء يتعلق بالعملاء ، ولكن إذا كنت تكتب سائقًا ، فما عليك سوى اندلاع الوحدة النمطية الجديدة مع نفس رقم الإصدار.
في Win7 ، يبدو أن هذا يتم إصلاحه في 7600 و 16385 في "ntverp.h". هل هذا حسب التصميم؟
نعم ، على الأقل حتى حزمة الخدمة التالية
نصائح أخرى
كما اقترح بول بيتس أعلاه ، يبدو أن الطريق للذهاب هو ببساطة استبدال DLL UMDF مباشرة في مجلد السائق (على سبيل المثال c:\windows\system32\drivers\umdf\
) بعد تعطيل الجهاز إما في مدير الجهاز أو باستخدام "DevCon". لقد طرحت هذا السؤال على مجموعة أخبار برامج تشغيل جهاز Microsoft قبل النشر هنا ولكن لم تحصل على استجابة مرضية - لكن بعض الناس انتهوا بالرد هناك بعد، بعدما لقد نشرت هنا! لذلك سأضع رابطًا لهذا المنشور أيضًا: