loaderLock MDA

loaderLockمساعد تصحيح الأخطاء التي تتم إدارتها (MDA) كشف محاولات ينفذ التعليمات البرمجية المدارة على مؤشر ترابط الذي يحتفظ Windows Microsoft Office 2010 Suite النظام تشغيل تأمين محمل. تنفيذ هذه لأنه غير قانوني يؤدي deadlocks واستخدامه لمكتبات الارتباط الديناميكي قبل أن تتم تهيئة قبل محمل النظام تشغيل's.

الأعراض

فشل الأكثر شيوعاً عند تنفيذ تعليمات برمجية داخل قفل برنامج تحميل النظام تشغيل's أنه سوف حالة توقف تام عمليات جزئية عند محاولة استدعاء الدالات Win32 الأخرى التي تتطلب أيضا قفل محمل. Examples of such دالات areLoadLibrary,GetProcAddress,FreeLibrary, وGetModuleHandle. تطبيق قد لا مباشرة استدعاء هذه الدالات؛ فقد وقت تشغيل اللغة العامة (CLR) باستدعاء هذه الدالات كنتيجة للمستوى الأعلى مكالمة مثل Loadأو الاستدعاء أول إلى نظاما أساسيا استدعاء الأسلوب.

deadlocks يحدث أيضا في حالة مؤشر الترابط هو بانتظار مؤشر ترابط آخر أو finهوh. عند بدء تشغيل مؤشر ترابط أو انتهاء تنفيذ، يجب أن يحصل على قفل محمل النظام تشغيل's لتسليم الأحداث إلى مكتبات الارتباط الديناميكي المتأثرة.

وأخيراً، هناك حالات الموقع يحدث الاستدعاءات في مكتبات الارتباط الديناميكي قبل أن تتم تهيئة ملفات DLL هذه بشكل صحيح قبل محمل النظام تشغيل's. بخلاف مرات فشل حالة توقف تام، حيث يمكن تشخيص بواسطة فحص مكدسات الذاكرة المؤقتة لكافة عمليات جزئية المعنية حالة توقف تام، هو صعبة جداً لتشخيص استخدام ملفات DLL غير مهيأ بدون استخدام رقم هو MDA.

السبب

مختلط تجميعات C + + مداره/غير مدارة تم إنشاؤها للإصدارات من برنامج.NET Framework 1.0 أو 1.1 بشكل عام محاولة إلى ينفذ تعليمات برمجية مُدارة داخل قفل برنامج تحميل ما لم تكن عناية خاص تم استغرقها، على سبيل المثال، الارتباط مع /NOENTRY. لوصف مفصل لهذه المشكلات، راجع "مختلطه DLL تحميل مشكله" في مكتبة MSDN.

تكون أقل عرضه مختلط مدار/C + + تجميعات لبرنامج.NET Framework الإصدار 2.0 إلى هذه المشاكل، تواجه نفس تقليل مخاطر كالتطبيقات التي تستخدم ملفات DLL غير المدارة التي تخالف القواعد الخاصة بنظام التشغيل. على سبيل المثال، إذا لم تتم إدارته لمكتبة الارتباط الحيوي DllMainالإدخال أشر مكالمات CoCreateInstanceللحصول على كائن مدار التي قد تم كشف ل COM، تكون النتيجة محاولة لتنفيذ تعليمات برمجية مُدارة داخل قفل برنامج تحميل. لمزيد من المعلومات حول مشكلات قفل محمل في الإصدار 2.0 والإصدارات الأحدث من برنامج.NET Framework، راجع تهيئة التجميعات مختلطة.

الدقة

في Visual C + +.NET 2002 و Visual C + +.NET 2003، DLLs التي تم تحويلها برمجياً باستخدام /clrقد حالة توقف تام خيار المترجم غير-deterministically عند تم تحميله؛ وتم استدعاء هذه المشكلة مختلط DLL تم تحميله أو قفل محمل المشكلة. في عام 2005 C + + Visual Basic و لاحقاً، تمت تمت إزالته تقريبا الجميع غير-determinism من عملية تحميل DLL مختلط. ومع ذلك، توجد بعض السيناريوهات المتبقية التي يمكن لقفل المحمّل (بشكل محدد) أن يحدث. للحصول على حساب مُفصل الأسباب و حلول لمشاكل قفل محمل المتبقية، راجع تهيئة التجميعات مختلطة. إذا لم يؤد ذلك الموضوع إلى تعريف المشكلة قفل محمل، يتوجب عليك فحص مكدس لمؤشر الترابط لتحديد سبب قفل المحمل هو التي تحدث وكيفية حل المشكلة. انظر إلى تتبع مكدس الذاكرة المؤقتة مؤشر ترابط التي قد قام بتنشيط هذا MDA. يحاول مؤشر ترابط للاتصال بشكل غير قانوني في تعليمات برمجية تمت إدارتها أثناء الضغط النظام تشغيل's تأمين برنامج تحميل. سترى من المحتمل أن مكتبة ارتباط حيوي DllMainأو المكافئ نقطة الإدخال تشغيل المكدس. قواعد نظام تشغيل's ما يمكن قانونيا القيام من داخل هذه يؤشر إدخال تقتصر تماما. هذه القواعد preclude أي مدارة التنفيذ.

التأثير تشغيل وقت التشغيل

بشكل عام، سوف حالة توقف تام مؤشرات ترابط متعددة داخل العملية. أحد عمليات جزئية هذه هو أن تكون مسؤولاً عن القيام بتجميع البيانات المهملة، في هذه الحالة th مؤشر ترابط هو يمكن أن يكون تأثير رئيسي لحالة توقف تام في عملية كاملة. علاوة على ذلك، فإنه سيؤدي إلى منع أية العمليات إضافى التي تتطلب قفل برنامج تحميل النظام التشغيل، مثل تحميل و إلغاء تحميل تجميعات أو مكتبات الارتباط الديناميكي و بدء تشغيل أو إيقاف تشغيل العمليات جزئية.

في بعض الحالات غير العادية، فإنه هو أيضا المحتملة لمشكلات خرق الوصول "أو" مشكلات مشابهة تشغيل في ملفات DLL التي تدعي قبل أن تتم تهيئة.

الإخراج

Th MDA هو بالإبلاغ illegal إدارتها بتنفيذ هو محاولات. تحتاج إلى تفحص مكدس لمؤشر الترابط لتحديد سبب تأمين المحمل هو التي تحدث وكيفية حل المشكلة.

التكوين

<mdaConfig>
  <assistants>
    <loaderLock/>
  </assistants>
</mdaConfig>

راجع أيضًا:

المبادئ

تشخيص الأخطاء مع المساعدين التصحيح مدارة