Windows SDK

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

تلميح

Windows App SDK
يوفر SDK لتطبيق Windows مجموعة موحدة من واجهات برمجة التطبيقات والأدوات التي يتم فصلها عن نظام التشغيل وإصدارها للمطورين عبر حزم NuGet. يمكن استخدام واجهات برمجة التطبيقات والأدوات هذه بطريقة متسقة من قبل أي تطبيق سطح مكتب على Windows 11 وأدنى مستوى إلى الإصدار 1809 من Windows 10.

الشروع في العمل

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

تاريخ التحديث الأخير: أكتوبر 2023

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

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

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

  • Windows 10 الإصدار 1507 أو أعلى: Home و Professional و Education و Enterprise (LTSB و S غير مدعومين ل UWP)
  • Windows Server 2022 وWindows Server 2019 وWindows Server 2016 وWindows Server 2012 R2 (سطر الأوامر فقط)
  • Windows 8.1
  • Windows 7 SP1

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

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

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

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

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

عينات

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

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

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

إضاءة واجهة برمجة التطبيقات

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

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

Windows 11، النسخة 10.0.22621.2428 (إصدار 10/24/2023)

تحديث الخدمة 10.0.22621.2428.

Windows 11، الإصدار 22H2، النسخة 10.0.22621.1778

تحديث 10.0.22621.1778. تتضمن الميزات المميزة ما يلي:

  • تسمح واجهات برمجة تطبيقات WindowTabManager للتطبيقات ذات الواجهات المبوبة بتوفير معلومات حول علامات التبويب المفتوحة إلى Windows shell.
  • التحديثات إلى واجهات برمجة تطبيقات HumanPresence لتحسين سهولة الاستخدام وإضافة إعدادات جديدة لأجهزة الاستشعار التي تدعم قدرات التواجد البشري.
  • تسمح واجهات برمجة التطبيقات RemoteDesktop للتطبيقات بالتبديل بين سطح مكتب بعيد ومحلي.
Windows SDK للإصدار Windows 11 22H2
  • تحديث الخدمة 10.0.22621.755. يتضمن دعم ARM64 لإصدار VS 17.4
Windows 10 SDK، الإصدار 2104
  • تمت إزالة api-ms-win-net-isolation-l1-1-0.lib. يمكن للتطبيقات التي كانت ترتبط مقابل api-ms-win-net-isolation-l1-1-0.lib تبديل t OneCoreUAP.lib كبديل.

  • تمت إزالة irprops.lib. يمكن للتطبيقات التي كانت ترتبط مقابل irprops.lib التبديل إلى bthprops.lib كبديل منسدلة.

  • تم نقل ENUM tagServerSelection من wuapicommon.h إلى wupai.h وإزالة العنوان. إذا كنت ترغب في استخدام ENUM tagServerSelection، فستحتاج إلى تضمين wuapi.h أو wuapi.idl.

  • يتيح لك Windows 10 WinRT API Pack إضافة أحدث دعم لواجهات برمجة التطبيقات وقت تشغيل Windows إلى مكتبات وتطبيقات .NET Framework 4.5+ و.NET Core 3.0+. للوصول إلى حزمة واجهة برمجة تطبيقات Windows 10 WinRT، راجع حزمة nuget Microsoft.Windows.SDK.Contracts.

  • تتوافق عائلة printf من الوظائف الآن مع قواعد تقريب IEEE 754 عند طباعة أرقام الفاصلة العائمة القابلة للتمثيل تماما وستحترم وضع التقريب المطلوب عبر المكالمات إلى fesetround. يتوفر السلوك القديم عند الارتباط ب legacy_stdio_float_rounding.obj.

  • حزمة مصادقة تطبيقات Windows. تمت إضافة العديد من واجهات برمجة التطبيقات الجديدة إلى قائمة واجهات برمجة التطبيقات المدعومة في App Certification Kit وWindows Store. إذا كانت هناك واجهات برمجة تطبيقات في القائمة المدعومة تظهر باللون الرمادي أو معطلة في Visual Studio، يمكنك إجراء تغيير صغير على الملف المصدر، للوصول إليها. لمزيد من التفاصيل، راجع هذه المشكلة المعروفة. ابحث عن مزيد من التحديثات للاختبارات.

  • تحديثات محول الرسائل البرمجي (mc.exe):

    • يكتشف الآن علامة ترتيب بايت Unicode (BOM) في ملفات .mc. إذا بدأ ملف .mc ب UTF-8 BOM، فستتم قراءته كملف UTF-8. وإلا، إذا بدأ بملف UTF-16LE BOM، فستتم قراءته كملف UTF-16LE. إذا تم تحديد المعلمة -u، فستتم قراءتها كملف UTF-16LE. وإلا، ستتم قراءتها باستخدام صفحة التعليمات البرمجية الحالية (CP_ACP).
    • الآن يتجنب مشاكل قاعدة تعريف واحدة (ODR) في مساعدي C/C++ ETW التي تم إنشاؤها بواسطة MC بسبب وحدات ماكرو التكوين المتعارضة (على سبيل المثال، عندما يتم ربط ملفين .cpp مع تعريفات متعارضة MCGEN_EVENTWRITETRANSFER بنفس الثنائي، سيحترم مساعدو ETW الذين تم إنشاؤهم بواسطة MC الآن تعريف MCGEN_EVENTWRITETRANSFER في كل ملف .cpp بدلا من اختيار واحد أو آخر بشكل عشوائي).
  • تحديثات المعالج المسبق ل Windows Trace (tracewpp.exe):

    • يدعم ملفات إدخال Unicode (.ini و.tpl ورمز المصدر). ستتم قراءة ملفات الإدخال التي تبدأ بعلامة ترتيب UTF-8 أو UTF-16 بايت (BOM) ك Unicode. ستتم قراءة ملفات الإدخال التي لا تبدأ ب BOM باستخدام صفحة التعليمات البرمجية الحالية (CP_ACP). للتوافق مع الإصدارات السابقة، إذا تم تحديد معلمة سطر الأوامر -UnicodeIgnore، فسيتم التعامل مع الملفات التي تبدأ ب UTF-16 BOM على أنها فارغة.
    • يدعم ملفات إخراج Unicode (.tmh). بشكل افتراضي، سيتم ترميز ملفات الإخراج باستخدام صفحة التعليمات البرمجية الحالية (CP_ACP). استخدم معلمات سطر الأوامر -cp:UTF-8 أو -cp:UTF-16 لإنشاء ملفات إخراج Unicode.
    • تغيير السلوك: يقوم tracewpp الآن بتحويل جميع نص الإدخال إلى Unicode، وينفذ المعالجة في Unicode، ويحول نص الإخراج إلى ترميز الإخراج المحدد. تجنبت الإصدارات السابقة من tracewpp تحويلات Unicode وقمت بمعالجة النص بافتراض مجموعة أحرف أحادية البايت. قد يؤدي هذا إلى تغييرات السلوك في الحالات التي لا تتوافق فيها ملفات الإدخال مع صفحة التعليمات البرمجية الحالية. في الحالات التي تكون فيها هذه مشكلة، ضع في اعتبارك تحويل ملفات الإدخال إلى UTF-8 (مع BOM) و/أو استخدام معلمة سطر الأوامر -cp:UTF-8 لتجنب ترميز الغموض.
  • تحديثات TraceLoggingProvider.h:

    • تجنب مشاكل قاعدة تعريف واحدة (ODR) التي تسببها وحدات ماكرو التكوين المتضاربة (على سبيل المثال، عندما يتم ربط ملفي .cpp مع تعريفات متعارضة TLG_EVENT_WRITE_TRANSFER بنفس الثنائي، سيحترم مساعدو TraceLoggingProvider.h الآن تعريف TLG_EVENT_WRITE_TRANSFER في كل ملف .cpp بدلا من اختيار واحد أو آخر بشكل عشوائي).
    • في التعليمات البرمجية C++، تم تحديث الماكرو TraceLoggingWrite لتمكين مشاركة التعليمات البرمجية بشكل أفضل بين الأحداث المماثلة باستخدام قوالب variadic.
  • توقيع تطبيقاتك. توقيع Device Guard هو ميزة Device Guard متوفرة في Microsoft Store للأعمال والتعليم، والتي تسمح للمؤسسات بضمان أن كل تطبيق يأتي من مصدر موثوق به. راجع الوثائق حول توقيع Device Guard.

  • تم تحديث عناوين SDK لمعالجة الأخطاء عند التحويل البرمجي باستخدام المعالج المسبق C المتوافق القياسي في المحول البرمجي MSVC cl.exe (/Zc:preprocessor، المقدم في VS 2019 v16.6).

  • تم الإصلاح: "GdiplusTypes.h لا يتم التحويل البرمجي باستخدام NOMINMAX". راجع ملاحظات Visual Studio.

  • عند الإنشاء باستخدام /std:c11 أو /std:c17، يمكنك الآن الحصول على:

    • C99 tgmath.h
    • C11 static_assert في assert.h
    • C11 stdalign.h
    • C11 stdnoreturn.h
  • Clang/LLVM لنظام التشغيل Windows v11 الذي يستهدف ARM64 غير متوافق مع أحدث winnt.h

    • كحل بديل، استخدم الإصدار السابق من Windows 10 SDK (النسخة 19041)، أو clang/LLVM لنظام التشغيل 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 (تم إصداره في 12/16/2020)

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

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

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