Windows SDK

يوفر Windows SDK (10.0.22621) Windows 11، الإصدار 22H2 أحدث الرؤوس والمكتبات وبيانات التعريف والأدوات لبناء تطبيقات 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 هذا:

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

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

يحتوي 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 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 API Pack، راجع Microsoft.Windows. SDK. عقد حزمة nuget.

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

  • Windows App Certification Kit. تمت إضافة العديد من واجهات برمجة التطبيقات الجديدة إلى قائمة واجهات برمجة التطبيقات المدعومة في حزمة مصادقة التطبيقات ومتجر Windows. إذا كانت هناك واجهات برمجة تطبيقات في القائمة المدعومة تظهر باللون الرمادي أو معطلة في 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 Preprocessor (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 هو ميزة حماية الأجهزة المتوفرة في 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 في 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 وOpjIdl.h وOpjIdlbase.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"

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