Windows SDK

توفر Windows SDK (10.0.22000) لنظام التشغيل Windows 11 أحدث العناوين والمكتبات وبيانات التعريف والأدوات اللازمة لبناء تطبيقات Windows. استخدم وحدة SDK هذه لبناء تطبيقات للنظام الأساسي العام لـ Windows ‏(UWP) وتطبيقات Win32 لنظام التشغيل Windows 11 وإصدارات Windows السابقة.

البدء

يمكنك الحصول على Windows SDK بطريقتين: تثبيتها من هذه الصفحة بتحديد رابط التنزيل أو بتحديد "Windows 11 SDK (10.0.22000)" في المكونات الاختيارية ضمن مثبت Visual Studio 2019.

قبل تثبيت حزمة SDK هذه:

  1. راجع جميع متطلبات النظام
  2. اخرج من Visual Studio قبل التثبيت.
  3. راجع ملاحظات الإصدار و المشكلات المعروفة.
تنزيل المثبت تنزيل ‎.ISO تاريخ التحديث 04/10/21

متطلبات النظام

في ما يلي الحد الأدنى من متطلبات النظام لحزمة Windows SDK:

أنظمة التشغيل المعتمدة

  • تطوير تطبيق للنظام الأساسي العام لـ Windows ‏(UWP)
    • الإصدار 1507 من Windows 10 أو أحدث: Home وProfessional وEducation وEnterprise ‏(LTSB وS غير مدعومين)
    • Windows Server 2019 وWindows Server 2016 وWindows Server 2012 R2 (سطر الأوامر فقط)
  • تطوير تطبيق Win32
    • الإصدار 1507 من Windows 10 أو أحدث
    • Windows Server 2019 وWindows Server 2016 وWindows Server 2012 R2 (سطر الأوامر فقط)
    • Windows 8.1
    • Windows 7 SP1

(ليست كل الأدوات معتمدة على أنظمة التشغيل السابقة)

متطلبات الأجهزة

  • معالج بسرعة 1.6 غيغا هيرتز أو أسرع
  • ذاكرة وصول عشوائي (RAM)‏ 1 غيغابايت
  • مساحة 4 غيغابايت متاحة على القرص الثابت

متطلبات إضافية لحزمة SDK

يتطلب التثبيت على Windows 8.1 وأنظمة التشغيل السابقة KB2999226. للتثبيت من خلال Windows Update، تأكد من تثبيت آخر التحديثات والتصحيحات المستحسنة من Microsoft Update قبل تثبيت حزمة Windows SDK.

ما الجديد

تتيح لك Windows SDK لنظام التشغيل Windows 11 تحديث تطبيقاتك للحصول على أحدث إصدار من نظام التشغيل Windows. تعرّف على المزيد حول الميزات الجديدة في نظام التشغيل Windows 11.

للاطلاع على واجهات برمجة التطبيقات الجديدة المتوفرة مع نظام التشغيل Windows 11، راجع واجهات برمجة التطبيقات الجديدة في الإصدار 22000 من نظام التشغيل Windows 11 .

بادر بإعادة بناء ثنائيات نظام التشغيل Windows 11 على نظام التشغيل ARM نفسه مع ARM64EC بحيث يتم تشغيل أي رمز نظام يتم تحميله من قِبل تطبيقات x64 بالسرعة الأصلية. استفِد من ARM64EC لنقل تطبيقك تدريجيًا للعمل بسرعة أصلية على ARM، حتى لو كان لديك تبعيات أو مكونات إضافية لا تدعم ARM بعد. اقرأ الإعلان.

العينات

تتوفر عينات تطبيق Windows الآن من خلال GitHub. يمكنك استعراض التعليمات البرمجية على GitHub، ونسخ نسخة شخصية من المستودع من Git، أو تنزيل أرشيف مضغوط يضم كل العينات. نحن نرحب بأي ملاحظات؛ فلا تتردد في عرض أي مشكلة داخل المستودع إذا واجهتك أي مشاكل أو استفسارات. تم تصميم هذه العينات لتعمل على أجهزة سطح المكتب والجوال والأجهزة المستقبلية التي تدعم النظام الأساسي العام لـ Windows (UWP).

الإصدارات السابقة من SDK

يمكن العثور على حزم SDK والمحاكيات التي تم إصدارها في السابق، بما في ذلك تفاصيل التحديث، في صفحة الأرشيف.

زيادة جاذبية واجهات برمجة التطبيقات

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

ملاحظات الإصدار والمشكلات المعروفة

Windows 10 SDK الإصدار 2104

  • تمت إزالة api-ms-win-net-isolation-l1-1-0.lib. يمكن للتطبيقات التي كانت ترتبط بـ api-ms-win-net-isolation-l1-1-0.lib التحول إلى OneCoreUAP.lib كبديل.
  • تمت إزالة irprops.lib. يمكن للتطبيقات التي كانت ترتبط بـ irprops.lib التحول إلى bthprops.lib كبديل فوري.
  • تم نقل ENUM tagServerSelection من wuapicommon.h إلى wupai.h وأزلنا العنوان. إذا كنت ترغب في استخدام ENUM tagServerSelection، فستحتاج إلى تضمين wuapi.h أو wuapi.idl.
  • تتيح لك حزمة واجهة برمجة تطبيقات Windows 10 WinRT إمكانية إضافة دعم واجهات برمجة تطبيقات وقت تشغيل Windows لتطبيقات .NET Framework 4.5+ و.NET Core 3.0+ ومكتباتهما. للوصول إلى حزمة واجهة برمجة تطبيقات Windows 10 WinRT، راجع حزمة Microsoft.Windows.SDK.Contracts nuget.
  • عائلة printf من الدوال تتوافق مع قواعد تقريب IEEE 754 الآن عند طباعة أرقام نقطة عائمة يمكن تمثيلها بدقة وستتبع وضع التقريب الذي تم طلبه عبر عمليات استدعاء fesetround. يتوفر السلوك القديم عند الارتباط بـ legacy_stdio_float_rounding.obj.
  • حزمة مصادقة تطبيقات Windows. تمت إضافة العديد من واجهات برمجة التطبيقات الجديدة إلى قائمة واجهات برمجة التطبيقات المدعومة في حزمة مصادقة التطبيقات وMicrosoft Store. في حالة ظهور واجهات برمجة تطبيقات في القائمة المدعومة غير نشطة أو معطلة في Visual Studio، يمكنك إجراء تغيير بسيط على الملف المصدر لديك للوصول إليها. لمزيد من التفاصيل، راجع هذه المشكلة المعروفة. بحث عن مزيد من التحديثات للاختبارات.
  • تحديثات Message Compiler (mc.exe):
    • يكتشف الآن علامة ترتيب بايت Unicode ‏(BOM) في ملفات ‎.mc. في حالة بدء ملف ‎.mc بعلامة ترتيب بايت UTF-8، ستتم قراءته على أنه ملف UTF-8. وإلا، إذا كان يبدأ بعلامة ترتيب بايت UTF-16LE، فستتم قراءته على أنه ملف UTF-16LE. إذا تم تحديد المعلمة -u، فستتم قراءته على أنه ملف UTF-16LE. وإلا، ستتم قراءته باستخدام صفحة التعليمات البرمجية الحالية (CP_ACP).
    • يتجنب حاليًا مشكلات قاعدة التعريف الواحدة (ODR) في أدوات مساعدة C/C++ ETW التي تم إنشاؤها باستخدام MC الناتجة عن ماكرو التكوين المتعارض (على سبيل المثال، عند الربط بين ملفي ‎.cpp يضمان تعريفات MCGEN_EVENTWRITETRANSFER متعارضة بنفس القيمة الثنائية، ستلتزم أدوات مساعدة ETW التي تم إنشاؤها بواسطة MC الآن بتعريف MCGEN_EVENTWRITETRANSFER الوارد في كل ملف ‎.cpp بدلاً من اختيار أحدهما عشوائيًا).
  • تحديثات Windows Trace Preprocessor ‏(tracewpp.exe):
    • يدعم ملفات إدخال Unicode (‎.ini و‎.tpl والتعليمة البرمجية المصدر). ستتم قراءة ملفات الإدخال التي تبدأ بعلامة ترتيب البايت UTF-8 أو UTF-16 ‏(BOM) على أنها Unicode. ستتم قراءة ملفات الإدخال التي لا تبدأ بعلامة ترتيب البايت باستخدام صفحة التعليمة البرمجية الحالية (CP_ACP). بالنسبة للتوافق العكسي، في حالة تحديد معلمة سطر الأوامر ‎-UnicodeIgnore، سيتم التعامل مع الملفات التي تبدأ بعلامة ترتيب البايت UTF-16 على أنها فارغة.
    • يدعم ملفات إخراج Unicode ‏(.tmh). وفقًا للإعدادات الافتراضية، سيتم ترميز ملفات الإخراج باستخدام صفحة التعليمات البرمجية الحالية (CP_ACP). استخدم معلمات سطر الأوامر ‎-cp:UTF-8 أو ‎-cp:UTF-16 لإنشاء ملفات إخراج Unicode.
    • تغيير السلوك: يتم من خلال tracewpp الآن تحويل كل نصوص الإدخال إلى Unicode وتنفيذ المعالجة في Unicode وتحويل نص الإخراج إلى ترميز الإخراج المحدد. تجنبت الإصدارات السابقة من tracewpp تحويلات Unicode ونفذت معالجة النص بافتراض مجموعة أحرف أحادية البايت. قد يؤدي هذا إلى تغييرات في السلوك في الحالات التي لا تتوافق فيها ملفات الإدخال مع صفحة التعليمات البرمجية الحالية. في الحالات التي تكون فيها هذه مشكلة، فكر في تحويل ملفات الإدخال إلى UTF-8 (باستخدام علامة ترتيب البايت) و/أو استخدام معلمة سطر الأوامر ‎-cp:UTF-8 لتجنب غموض الترميز.
  • تحديثات TraceLoggingProvider.h:
    • يتجنب مشكلات قاعدة التعريف الواحدة (ODR) الناتجة عن ماكرو التكوين المتعارض (على سبيل المثال، عند الربط بين ملفي ‎.cpp يضمان تعريفات MCGEN_EVENTWRITETRANSFER متعارضة بنفس القيمة الثنائية، ستلتزم أدوات مساعدة TraceLoggingProvider.h الآن بتعريف MCGEN_EVENTWRITETRANSFER الوارد في كل ملف ‎.cpp بدلاً من اختيار أحدهما عشوائيًا).
    • في تعليمات C++‎ البرمجية، تم تحديث الماكرو TraceLoggingWrite لتمكين مشاركة التعليمات البرمجية بشكل أفضل بين الأحداث المتشابهة باستخدام قوالب variadic.
  • توقيع تطبيقاتك. توقيع Device Guard هو ميزة Device Guard متوفرة في Microsoft Store للأعمال والتعليم، والتي تسمح للمؤسسات بضمان أن كل تطبيق يأتي من مصدر موثوق به. راجع وثائق حول توقيع Device Guard.
  • تم تحديث رؤوس SDK لمعالجة الأخطاء عند التحويل البرمجي باستخدام المعالج المسبق C المطابق للمعايير في cl.exe المحول البرمجي MSVC (/Zc:preprocessor، المقدم في VS 2019 v16.6).
  • الثابت: “GdiplusTypes.h لا يجمع مع NOMINMAX”. انظر ملاحظات Visual Studio.
  • عند الإنشاء مع /std:c11 أو /std:c17، يمكنك الآن الحصول على:
    • C99 tgmath.h
    • C11 static_assert in assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM لنظام التشغيل Windows v11 يستهدف ARM64 غير متوافق مع أحدث winnt.h
    • كحل بديل، استخدم الإصدار السابق من Windows 10 SDK (إنشاء 19041)، أو clang/LLVM for Windows v10 عند استهداف منصات ARM64
  • DirectXMath (بما في ذلك الإصدار 3.16 في هذا الإصدار) غير متوافق مع Clang/LLVM لـ Windows على ARM64.
  • تم تغيير حالة بعض ملفات الرأس، لتطبيعها لأنظمة الملفات الحساسة لحالة الأحرف:
    • OAIdl.h، وObjIdl.h، وObjIdlbase.h، وOCIdl.h، وOle2.h، وOleAuto.h، وOleCtl.h تم جعلها جميعاً أحرف صغيرة.
    • بالنسبة إلى بنيات Clang/LLVM لـ Windows، لدعم كل من الإصدار الأقدم والأحدث لنظام Windows 10 SDK دون تحذيرات، أضف `-Wno-nonportable-system-include-path` إلى CLI، أو #pragma التالية في المصدر:

      #ifdef __clang__
      #pragma clang diagnostic ignored "-Wnonportable-system-include-path"
      #endif

Windows 10 SDK، تحديث خدمة الإصدار 2004 (تاريخ الإصدار 16/12/2020)

    يحتوي هذا الإصدار على الملفات التالية. في حالة مواجهة هذه المشكلات، نوصي بتحديث إصدارك من وحدة SDK في أقرب وقت ممكن لتجنبها:
  • تم حل حالات التعطل غير المتوقعة وصعبة التشخيص عند الربط بين كل من المكتبات العامة ومكتبات نظام التشغيل الأصلية (على سبيل المثال، onecoreuap.lib وkernel32.lib)
  • تم حل المشكلة التي كانت تمنع AppVerifier من العمل
  • تم حل المشكلة التي كانت تتسبب في فشل WACK مع ظهور الرسالة "فشلت المهمة في تمكين HighVersionLie"

تقديم ملاحظات

للاطلاع على المشكلات المعروفة، راجع س&ج حول winapi-sdk.

بالنسبة لطلبات ميزات المطور الجديدة، أرسل الطلب عبر تطبيق مركز الملاحظات ضمن الفئة "النظام الأساسي/API للمطور".

المزيد من الموارد

التنزيلات والأدوات

احصل على أحدث إصدارات أدوات تطوير Visual Studio و Windows 10.

معرفة المزيد

أرشيف SDK

ابحث عن إصدارات Windows SDK السابقة وأدوات أخرى.

راجع الأرشيف

مدونة Windows

ابق على اطلاع بآخر إصدارات تقييم SDK بالاشتراك في مدونتنا.

الحصول على أخبار إصدار تقييم SDK

ورقة بيانات دورة حياة Windows

اعثر على التواريخ الأساسية لتحديثات إصدار Windows ونهاية الدعم.

الاطلاع على ورقة البيانات