مدير نوافذ سطح المكتب
مدير نوافذ سطح المكتب ( DWM ، المعروف سابقًا باسم محرك تركيب سطح المكتب أو DCE في إصدارات Windows Longhorn قبل إعادة التعيين ) هو مدير نوافذ التركيب في Microsoft Windows منذ Windows Vista [ 1 ] والذي يتيح استخدام تسريع الأجهزة لعرض واجهة المستخدم الرسومية لنظام Windows.
تم تصميمه في الأصل لتمكين أجزاء من تجربة المستخدم الجديدة " Windows Aero "، والتي سمحت بتأثيرات مثل الشفافية، وتبديل النوافذ ثلاثية الأبعاد، وغيرها. وهو مُضمّن أيضًا في Windows Server 2008 ، ولكنه يتطلب تثبيت ميزة "تجربة سطح المكتب" وبرامج تشغيل الرسومات المتوافقة. [ 2 ]
بنيان
مدير نوافذ سطح المكتب هو مدير نوافذ مُركّب ، أي أن لكل برنامج مخزنًا مؤقتًا يكتب إليه البيانات؛ ثم يقوم مدير نوافذ سطح المكتب بدمج مخازن كل برنامج في صورة نهائية. بالمقارنة، فإن مدير النوافذ المُكدّس في نظامي التشغيل ويندوز إكس بي والإصدارات الأقدم (وكذلك ويندوز فيستا وويندوز 7 مع تعطيل ميزة ويندوز آيرو) يتألف من مخزن عرض واحد تكتب إليه جميع البرامج.
يعمل DWM بطرق مختلفة تبعًا لنظام التشغيل (Windows 7 أو Windows Vista) وإصدار برامج تشغيل الرسومات المستخدمة ( WDDM 1.0 أو 1.1). في نظام Windows 7 ومع برامج تشغيل WDDM 1.1، يكتب DWM مخزن البرنامج المؤقت إلى ذاكرة الفيديو فقط، حتى لو كان برنامجًا يستخدم واجهة جهاز رسومات (GDI). يعود ذلك إلى أن Windows 7 يدعم تسريع الأجهزة (بشكل محدود) لـ GDI [ 3 ]، وبالتالي لا يحتاج إلى الاحتفاظ بنسخة من المخزن المؤقت في ذاكرة النظام ليتمكن المعالج من الكتابة إليه.
بما أن برنامج إدارة النوافذ (DWM) يتمتع بإمكانية الوصول إلى رسومات جميع التطبيقات، فإنه يتيح بسهولة إضافة تأثيرات بصرية تجمع بين عناصر مرئية من تطبيقات متعددة، مثل الشفافية. يستخدم DWM تقنية DirectX لتنفيذ وظيفتي التركيب والعرض على وحدة معالجة الرسومات (GPU)، مما يُحرر وحدة المعالجة المركزية (CPU) من مهمة إدارة العرض من المخازن المؤقتة خارج الشاشة إلى الشاشة. مع ذلك، لا يؤثر ذلك على التطبيقات التي ترسم على المخازن المؤقتة خارج الشاشة - اعتمادًا على التقنيات المستخدمة في ذلك، قد يظل هذا الأمر مقيدًا بوحدة المعالجة المركزية. يتم إعادة توجيه تقنيات العرض غير المعتمدة على DWM، مثل GDI، إلى المخازن المؤقتة عن طريق عرض واجهة المستخدم (UI) كصور نقطية . أما تقنيات العرض المتوافقة مع DWM، مثل WPF، فتُتيح الوصول المباشر إلى هياكل البيانات الداخلية بتنسيق متوافق مع DWM. ثم يتم تحويل محتويات النافذة في المخازن المؤقتة إلى نسيج DirectX.
سطح المكتب نفسه عبارة عن سطح Direct3D بملء الشاشة ، حيث تُمثَّل النوافذ كشبكة تتكون من مثلثين متجاورين (معكوسين)، يتم تحويلهما لتمثيل مستطيل ثنائي الأبعاد. ثم تُسقط الخامة، التي تمثل واجهة المستخدم، على هذه المستطيلات. تُنفَّذ انتقالات النوافذ كتحويلات للشبكات، باستخدام برامج التظليل . [ 4 ] في نظام التشغيل Windows Vista، تقتصر الانتقالات على مجموعة برامج التظليل المدمجة التي تُنفِّذ التحويلات. وقد اقترح جريج شيشتر، وهو مطور في مايكروسوفت، إمكانية إتاحة هذه الميزة للمطورين والمستخدمين لإضافة تأثيراتهم الخاصة في إصدار مستقبلي. [ 5 ] لا يُسقط مدير نوافذ سطح المكتب (DWM) سوى كائن سطح المكتب الرئيسي كسطح ثلاثي الأبعاد؛ أما كائنات سطح المكتب الأخرى، بما في ذلك أسطح المكتب الافتراضية وسطح المكتب الآمن المستخدم في ميزة التحكم في حساب المستخدم، فلا تُسقط. [ 6 ]


نظرًا لأن جميع التطبيقات تُعرض على مخزن مؤقت خارج الشاشة، يمكن قراءتها من المخزن المضمن في تطبيقات أخرى أيضًا. ولأن المخزن المؤقت خارج الشاشة يُحدَّث باستمرار بواسطة التطبيق، فإن العرض المضمن سيكون تمثيلًا ديناميكيًا لنافذة التطبيق وليس عرضًا ثابتًا. هكذا تعمل معاينات الصور المصغرة المباشرة وميزة " تبديل النوافذ" في نظامي التشغيل Windows Vista و Windows 7. يوفر DWM واجهة برمجة تطبيقات عامة (API) تسمح للتطبيقات بالوصول إلى هذه الصور المصغرة. [ 7 ] حجم الصورة المصغرة غير ثابت؛ إذ يمكن للتطبيقات طلب الصور المصغرة بأي حجم - أصغر من النافذة الأصلية، أو بنفس الحجم، أو حتى أكبر - وسيقوم DWM بتغيير حجمها بشكل صحيح قبل إعادتها. لا يستخدم Aero Flip واجهات برمجة التطبيقات العامة للصور المصغرة لأنها لا تسمح بالوصول المباشر إلى نسيج Direct3D. [ 8 ] بدلًا من ذلك، تم تنفيذ Aero Flip مباشرةً في محرك DWM.
يستخدم مدير نوافذ سطح المكتب طبقة تكامل الوسائط (MIL)، وهي مُركِّب غير مُدار يتشاركه مع Windows Presentation Foundation ، لتمثيل النوافذ كعُقد تركيب في شجرة تركيب . تُمثل شجرة التركيب سطح المكتب وجميع النوافذ المُستضافة فيه، والتي يتم عرضها بواسطة MIL من خلفية المشهد إلى مقدمته. [ 9 ] بما أن جميع النوافذ تُساهم في الصورة النهائية، يُمكن تحديد لون البكسل الناتج بواسطة أكثر من نافذة. يُستخدم هذا لتنفيذ تأثيرات مثل الشفافية لكل بكسل. يسمح مدير نوافذ سطح المكتب باستدعاء مُظلِّلات مُخصصة للتحكم في كيفية استخدام البكسلات من تطبيقات مُتعددة لإنشاء البكسل المعروض. يتضمن مدير نوافذ سطح المكتب برامج Pixel Shader 2.0 مُدمجة تحسب لون البكسل في نافذة ما عن طريق حساب متوسط لون البكسل كما هو مُحدد بواسطة النافذة التي خلفه والبكسلات المُجاورة له. يستخدم مدير نوافذ سطح المكتب هذه المُظلِّلات لتحقيق تأثير التمويه في حدود النوافذ التي يُديرها، واختياريًا للمناطق التي يطلبها التطبيق. [ 4 ]
بما أن MIL توفر نظام رسومات بنمط الاحتفاظ عن طريق تخزين أشجار التركيب مؤقتًا، فإن مهمة إعادة رسم الشاشة وتحديثها عند تحريك النوافذ تتم بواسطة DWM وMIL، مما يُعفي التطبيق من هذه المسؤولية. بيانات الخلفية موجودة بالفعل في شجرة التركيب والمخازن المؤقتة خارج الشاشة، وتُستخدم مباشرةً لعرض الخلفية. في أنظمة تشغيل ويندوز السابقة لنظام Vista، كان يجب طلب إعادة عرض تطبيقات الخلفية عن طريق إرسال رسالة إليها WM_PAINT. [ 7 ] يستخدم DWM رسومات ذات مخزن مؤقت مزدوج لمنع الوميض والتشويش عند تحريك النوافذ. [ 4 ] [ 7 ] يستخدم محرك التركيب تحسينات مثل الحذف لتحسين الأداء، بالإضافة إلى عدم إعادة رسم المناطق التي لم تتغير. [ 9 ] ولأن برنامج التركيب مُدرك لشاشات العرض المتعددة، فإن DWM يدعم ذلك بشكل أصلي أيضًا. [ 9 ]
أثناء تشغيل التطبيقات بملء الشاشة، مثل الألعاب، لا يقوم DWM بتركيب النوافذ، وبالتالي لن ينخفض الأداء بشكل ملحوظ.
في نظامي التشغيل Windows 8 و Windows Server 2012 ، يتم استخدام DWM بشكل دائم ولا يمكن تعطيله، وذلك بسبب تجربة "شاشة البدء" الجديدة. ولأن عملية DWM مطلوبة عادةً للتشغيل باستمرار في Windows 8، يلاحظ المستخدمون الذين يواجهون مشكلة في هذه العملية انخفاضًا في استهلاك الذاكرة بعد إعادة تشغيل النظام. غالبًا ما تكون هذه الخطوة الأولى ضمن سلسلة طويلة من خطوات استكشاف الأخطاء وإصلاحها. من الممكن منع DWM من إعادة التشغيل مؤقتًا في Windows 8، مما يؤدي إلى تحول سطح المكتب إلى اللون الأسود، وشريط المهام إلى اللون الرمادي، وتعطل شاشة البدء/التطبيقات الحديثة، ولكن ستستمر تطبيقات سطح المكتب في العمل والظهور تمامًا مثل المظهر الأساسي في Windows 7 وVista، استنادًا إلى مُعالج العرض أحادي المخزن المؤقت المستخدم في XP. كما أنها تستخدم شريط العنوان المركزي الخاص بنظام Windows 8، والذي يظهر في بيئة ما قبل تثبيت Windows . لن يعمل تشغيل نظام ويندوز بدون DWM لأن شاشة القفل الافتراضية تتطلب DWM، على عكس شاشة القفل البديلة التي تظهر كبرنامج واجهة سطر أوامر عند عدم وجود ملف Windows.UI.Logon.dll في إصدارات ويندوز مثل 1507 والإصدارات الأحدث، لذا لا يمكن تفعيلها إلا أثناء التشغيل، ولا فائدة عملية منها. بدءًا من ويندوز 10، سيؤدي تعطيل DWM بهذه الطريقة إلى تعطل محرك التركيب بالكامل، حتى تطبيقات سطح المكتب التقليدية، بسبب تطبيقات Universal App في شريط المهام وقائمة ابدأ الجديدة. يمكن استخدام ويندوز جزئيًا بدون DWM، ولكن يتطلب ذلك عدم وجود Sihost.exe لاعتماده على DWM. تتطلب معظم تطبيقات ويندوز 11 وجود DWM لعرض عناصر واجهة المستخدم والشفافية، كما يتطلب مدير المهام الجديد في ويندوز 11 وجود dwm لعرض القوائم، على عكس الإصدار البديل -d. على عكس الإصدارات السابقة، يدعم ويندوز 8 محولات العرض الأساسية من خلال منصة ويندوز المتقدمة للرسم النقطي (WARP)، التي تستخدم عرض البرامج ووحدة المعالجة المركزية لعرض الواجهة بدلاً من بطاقة الرسومات. يُتيح هذا لـ DWM العمل بدون برامج تشغيل متوافقة، ولكن ليس بنفس مستوى الأداء الذي توفره بطاقة الرسومات العادية. كما يُضيف DWM على نظام التشغيل Windows 8 دعمًا لتقنية العرض ثلاثي الأبعاد المجسم . [ 10 ]
إعادة التوجيه
بالنسبة لتقنيات العرض التي لا تدعم DWM، يجب إعادة توجيه المخرجات إلى مخازن DWM المؤقتة. في نظام ويندوز، يمكن استخدام GDI أو DirectX للعرض. ولجعل هاتين التقنيتين تعملان مع DWM، تتوفر تقنيات إعادة توجيه لكليهما.
باستخدام GDI، وهي تقنية عرض واجهة المستخدم الأكثر استخدامًا في نظام التشغيل مايكروسوفت ويندوز ، يتم إخطار كل نافذة تطبيق عند ظهورها أو جزء منها، ويتولى التطبيق مهمة عرضها بنفسه. بدون DWM، يتم تحويل واجهة المستخدم إلى صورة نقطية في مخزن مؤقت في ذاكرة الفيديو، ومن ثم يتم عرضها على الشاشة. في DWM، يتم إعادة توجيه استدعاءات GDI لاستخدام برنامج تشغيل العرض Canonical (cdd.dll)، وهو برنامج عرض. [ 11 ] يتم تخصيص مخزن مؤقت بحجم النافذة في ذاكرة النظام، ويُخرج CDD.DLL البيانات إلى هذا المخزن بدلاً من ذاكرة الفيديو. كما يتم تخصيص مخزن مؤقت آخر في ذاكرة الفيديو لتمثيل سطح DirectX، والذي يُستخدم كنسيج لشبكات النوافذ. يتم تحويل مخزن ذاكرة النظام إلى سطح DirectX بشكل منفصل ويتم مزامنته. هذا المسار غير المباشر ضروري لأن GDI لا يستطيع الإخراج مباشرةً بتنسيق بكسل DirectX. يقرأ برنامج التركيب السطح ويُدمجه مع سطح المكتب في ذاكرة الفيديو. لا يتم تسريع كتابة مخرجات واجهة برمجة تطبيقات الرسومات (GDI) إلى ذاكرة النظام بواسطة الأجهزة، وكذلك التحويل إلى سطح DirectX. عندما يتم تصغير نافذة GDI أو إخفاؤها أو عرضها على نفس الشاشة مع تطبيق DirectX بملء الشاشة، وبسبب قيود GDI، لا يستقبل التطبيق مخزن الصور النقطية GDI عند طلب سياق الجهاز أثناء الرسم أو التحديث (يمكن ملاحظة ذلك أحيانًا عند قيام عملية GDI بنسخ البيانات من نافذة إلى أخرى، حيث تُخرج مناطق سوداء أو فارغة بدلًا من محتوى النافذة المتوقع). لذلك، يستخدم DWM آخر صورة نقطية تم عرضها في المخزن المؤقت قبل تصغير التطبيق. [ 12 ]
ابتداءً من نظام التشغيل Windows 7، لم يعد برنامج تشغيل العرض Canonical يقوم بالعرض على نسخة ذاكرة النظام عند وجود برنامج تشغيل فيديو متوافق مع WDDM 1.1/DXGI 1.1.
بالنسبة للتطبيقات التي تستخدم DirectX للكتابة على سطح ثلاثي الأبعاد، يستخدم تطبيق DirectX في نظام التشغيل Windows Vista تقنية WDDM لمشاركة السطح مع DWM. ثم يستخدم DWM السطح مباشرةً ويرسمه على شبكات النوافذ. أما بالنسبة لتطبيقات Windows Presentation Foundation (WPF) (وهي تطبيقات DirectX)، فيقوم برنامج التركيب بالرسم على هذه الأسطح المشتركة التي يتم دمجها بعد ذلك في سطح المكتب النهائي. [ 12 ] يمكن للتطبيقات مزج تقنيات الرسم عبر نوافذ فرعية متعددة، طالما لم يتم استخدام كل من GDI وDirectX لرسم نفس النافذة. في هذه الحالة، لا يمكن ضمان ترتيب الرسم بين DirectX وGDI، وبالتالي لا يمكن ضمان ترجمة صورة GDI النقطية من ذاكرة النظام إلى سطح ذاكرة الفيديو. هذا يعني أن التركيب النهائي قد لا يحتوي على العناصر التي تم رسمها باستخدام GDI. [ 12 ] ولمنع ذلك، يتم إيقاف تشغيل DWM مؤقتًا، طالما أن تطبيقًا يمزج بين GDI وDirectX في نفس النافذة قيد التشغيل.
متطلبات الأجهزة
في نظام التشغيل ويندوز فيستا، يتطلب DWM أجهزة مادية أو افتراضية متوافقة: [ 13 ]
- وحدة معالجة رسومات تدعم نموذج برنامج تشغيل عرض ويندوز (WDDM)
- دعم Direct3D 9
- دعم Pixel Shader 2.0
- دعم 32 بت لكل بكسل
- يجتاز اختبار قبول Windows Aero في مجموعة أدوات تشغيل Windows (WDK)
في نظام التشغيل ويندوز 7، أُعيد تصميم مدير نوافذ سطح المكتب ليدعم Direct3D 10.1 ، لكن متطلبات الأجهزة بقيت كما هي في ويندوز فيستا؛ حيث يدعم Direct3D 9 الأجهزة من خلال طبقة " المستوى 9 من 10 " المُضافة في وقت تشغيل Direct3D 11. في ويندوز 8، يتطلب مدير نوافذ سطح المكتب أن تدعم وحدة معالجة الرسومات Direct3D 11 أو Direct3D 10 ؛ وإذا لم تستوفِ وحدة معالجة الرسومات متطلبات Direct3D 10 ، فسيتم استخدام WARP . [ 10 ]
تتضمن برامج محاكاة الأجهزة التي تحاكي الأجهزة المطلوبة لـ DWM كلاً من VirtualBox 4.1 والإصدارات الأحدث، و VMware Fusion 3.0 والإصدارات الأحدث، و VMware Workstation 7.0 والإصدارات الأحدث. بالإضافة إلى ذلك، يتيح Windows Virtual PC إمكانية إنشاء بيئات افتراضية باستخدام بروتوكول سطح المكتب البعيد (RMTP) .
تجربة المطور
يتم توفير وظائف المطور المتعلقة بمدير نوافذ سطح المكتب داخل ملف الرأس dwmapi.hالموجود في حزمة تطوير البرامج لنظام التشغيل Windows SDK .
انظر أيضاً
ملحوظات
- ↑ اعتبارًا من نظام التشغيل Windows 8 ، حيث أصبح DWM مكونًا مطلوبًا يجب أن يكون قيد التشغيل في جميع الأوقات، لم يعد خدمة.
مراجع
- ↑ stevewhims. "مدير نوافذ سطح المكتب - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 22-03-2026 .
- ↑ "كيفية تفعيل ميزات تجربة المستخدم في نظام التشغيل Windows Vista على جهاز كمبيوتر يعمل بنظام Windows Server 2008 (MSKB947036)" . قاعدة المعرفة . مايكروسوفت. 15 يناير 2008. تاريخ الاطلاع: 21 أبريل 2008 .
- ↑ "هندسة ويندوز 7" . 25 سبتمبر 2024.
- 1 2 3 غريغ شيشتر. "استخدام DWM لـ DirectX ووحدة معالجة الرسومات وتسريع الأجهزة" . مدونة غريغ شيشتر . مدونات MSDN . تم الاطلاع بتاريخ 14 أكتوبر 2007 .
- ↑ غريغ شيشتر. "ردًا على التعليقات الواردة من "استخدام DWM لـ DirectX ووحدة معالجة الرسومات وتسريع الأجهزة"مدونة جريج شيشتر . مدونات MSDN . تم الاطلاع عليها بتاريخ 20 أبريل 2008 .
- ↑ كريس جاكسون. "مدير نوافذ سطح المكتب يعمل فقط على سطح المكتب الرئيسي" . التوافق الدلالي لكريس جاكسون . مدونات MSDN . تم الاطلاع عليه بتاريخ 14 أكتوبر 2007 .
- 1 2 3 غريغ شيشتر (6 مارس 2006). "نظرة معمقة على مدير نوافذ سطح المكتب" . مدونة غريغ شيشتر . مدونات MSDN . تاريخ الاسترجاع: 27 مايو 2021 .
- ↑ "نظرة عامة على الصور المصغرة لـ DWM" . MSDN .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - 1 2 3 غريغ شيشتر. "كيف تُستخدم مفاهيم وتقنيات WPF الأساسية في DWM" . مدونة غريغ شيشتر . مدونات MSDN . تاريخ الاسترجاع: 14 أكتوبر 2007 .
- 1 2 "مدير نوافذ سطح المكتب يعمل دائمًا" . دليل توافق ويندوز 8 وويندوز سيرفر 2012. MSDN . تم الاطلاع عليه في 4 سبتمبر 2012 .
- ↑ "مقارنة بين Direct2D و GDI - مدونة مطوري DirectX" . مؤرشف من الأصل بتاريخ 2014-04-08 . تم الاطلاع عليه بتاريخ 2014-08-19 .
- 1 2 3 غريغ شيشتر. "إعادة توجيه تطبيقات GDI وDirectX وWPF" . مؤرشف من الأصل بتاريخ 2010-03-05 . تم الاطلاع عليه بتاريخ 2007-10-14 .
- ↑ "متطلبات النظام لنظام التشغيل ويندوز فيستا" . مايكروسوفت . 13 نوفمبر 2007. تم الاطلاع عليه بتاريخ 11 فبراير 2009 .
روابط خارجية
- مديري النوافذ المركبة
- ويندوز فيستا
- برامج الرسومات
