واجهة برمجة تطبيقات ويندوز الأصلية
واجهة برمجة التطبيقات الأصلية ( Native API ) هي واجهة برمجة تطبيقات خفيفة الوزن تستخدمها تطبيقات نواة نظام التشغيل Windows NT وتطبيقات وضع المستخدم . تُستخدم هذه الواجهة في المراحل الأولى من عملية بدء تشغيل Windows NT ، عندما تكون المكونات وواجهات برمجة التطبيقات الأخرى غير متاحة. لذلك، يتم تنفيذ بعض مكونات Windows، مثل نظام التشغيل الفرعي للعميل/الخادم (CSRSS)، باستخدام واجهة برمجة التطبيقات الأصلية. كما تُستخدم واجهة برمجة التطبيقات الأصلية أيضًا بواسطة إجراءات فرعية، مثل تلك الموجودة في ملف kernel32.dll ، التي تُنفذ واجهة برمجة تطبيقات Windows ، وهي الواجهة التي بُنيت عليها معظم مكونات Windows.
تُنفَّذ معظم استدعاءات واجهة برمجة التطبيقات الأصلية في ntoskrnl.exe وتُتاح لوضع المستخدم عبر ntdll.dll . نقطة دخول ntdll.dll هي [ نقطة الدخول]LdrInitializeThunk . يتولى النواة معالجة استدعاءات واجهة برمجة التطبيقات الأصلية عبر جدول وصف خدمات النظام (SSDT).
مجموعات الوظائف
تتضمن واجهة برمجة التطبيقات الأصلية (Native API) العديد من الدوال. تشمل هذه الدوال دوال وقت تشغيل لغة C الضرورية لتنفيذ أساسيات لغة C ، مثل strlen() و sprintf() و memcpy() و floor(). بينما تفتقر إلى إجراءات شائعة أخرى مثل malloc() و printf() و scanf() (الأولى لأنها لا تحدد كومة لتخصيص الذاكرة منها، والثانية والثالثة لأنهما تستخدمان وحدة التحكم، التي لا يمكن الوصول إليها إلا عبر مكتبة KERNEL32.DLL). وبحسب الاصطلاح، فإن الغالبية العظمى من إجراءات واجهة برمجة التطبيقات الأصلية الأخرى لها بادئة مكونة من حرفين أو ثلاثة أحرف، وهي:
- تُعدّ Nt و Zw استدعاءات نظام مُعلنة في ntdll.dll وntoskrnl.exe. عند استدعائها من ntdll.dll في وضع المستخدم، تكون هذه المجموعات متطابقة تقريبًا؛ إذ تُنفّذ مقاطعةً إلى وضع النواة وتستدعي الدالة المُكافئة في ntoskrnl.exe عبر SSDT . عند استدعاء الدوال مباشرةً في ntoskrnl.exe (وهو ممكن فقط في وضع النواة)، تضمن متغيرات Zw وضع النواة، بينما لا تضمنه متغيرات Nt. [ 1 ] لا يرمز البادئة Zw إلى أي شيء. [ 2 ]
- تُعدّ Rtl ثاني أكبر مجموعة من استدعاءات ntdll. وهي تتألف من مكتبة وقت التشغيل C (الموسعة)، والتي تتضمن العديد من وظائف الأدوات المساعدة التي يمكن استخدامها بواسطة التطبيقات الأصلية، ولكنها لا تتطلب دعمًا مباشرًا من النواة.
- Csr هي وظائف العميل والخادم التي تستخدم للتواصل مع عملية النظام الفرعي Win32، csrss.exe ( csrss تعني نظام التشغيل الفرعي للعميل/الخادم).
- Dbg هي وظائف تصحيح الأخطاء مثل نقطة توقف البرنامج .
- Ki هي استدعاءات من وضع النواة لأحداث مثل إرسال APC .
- Ldr هي وظائف تحميل لمعالجة ملفات PE وبدء العمليات الجديدة.
- Nls لدعم اللغة الوطنية (على غرار صفحات الترميز).
- ملف PFX لمعالجة البادئات.
- Tp لمعالجة مجموعة الخيوط.
يحتوي الملفان user32.dll و gdi32.dll على عدة استدعاءات أخرى تُنفذ مقاطعة في وضع النواة. لم تكن هذه الاستدعاءات جزءًا من تصميم نظام التشغيل Windows NT الأصلي، كما هو موضح في Windows NT 3.5 . مع ذلك، ونظرًا لمشاكل الأداء في الأجهزة القديمة، تقرر نقل نظام الرسومات الفرعي إلى وضع النواة. ونتيجةً لذلك، يتم تنفيذ استدعاءات النظام في النطاق 0x1000-0x1FFF بواسطة الملف win32k.sys (بدلاً من ntoskrnl.exe كما هو الحال في النطاق 0x0FFF)، ويتم تعريفها في الملفين user32.dll و gdi32.dll. تحمل هذه الدوال البادئة NtUser و NtGdi (مثل NtUserLockWorkStation و NtGdiEnableEudc ).
الاستخدامات
تشمل استخدامات وظائف واجهة برمجة التطبيقات الأصلية على سبيل المثال لا الحصر ما يلي:
- تفعيل وتعطيل الامتيازات (RtlAdjustPrivilege)
- إنشاء سلاسل عمليات بعيدة ضمن العمليات التي تعمل في جلسات مختلفة (RtlCreateUserThread)
- تشغيل التطبيقات الأصلية (RtlCreateUserProcess)
- إجراء إيقاف تشغيل قسري (NtShutdownSystem)
- التسبب في ظهور شاشة الموت الزرقاء في وضع المستخدم (NtRaiseHardError)
- عرض سلسلة نصية في الوضع الأصلي (NtDisplayString)
انظر أيضاً
مراجع
- ↑ ذا إن تي إنسايدر (27 أغسطس 2003). "إن تي مقابل زد دبليو - تبديد الالتباس حول واجهة برمجة التطبيقات الأصلية" . أو إس آر أونلاين . 10 (4). موارد الأنظمة المفتوحة التابعة لأو إس آر . تم الاسترجاع في 16 سبتمبر 2013 .
- ↑ ريموند تشين (2009). "الشيء الجديد القديم : ماذا تعني البادئة "Zw"؟" . شركة مايكروسوفت . تم الاسترجاع في 13 يونيو 2009 .
روابط خارجية
- موقع إلكتروني يوثق معظم وظائف واجهة برمجة التطبيقات الأصلية. مؤرشف بتاريخ ٢٥ أكتوبر ٢٠١٧ على موقع Wayback Machine.
- داخل التطبيقات الأصلية
- داخل واجهة برمجة التطبيقات الأصلية
- إطار عمل تطوير التطبيقات الأصلية مفتوحة المصدر
- تجميع برامج Free Pascal لواجهة برمجة التطبيقات الأصلية
- أدوات ويندوز إن تي الأصلية - أداة مجانية لتطوير التطبيقات الأصلية
- واجهة سطر الأوامر الأصلية - موجه أوامر ويندوز الذي يمكن تشغيله قبل Winlogon ونظام Win32 الفرعي. مؤرشف بتاريخ 11 أغسطس 2015 على موقع Wayback Machine.
- واجهات برمجة تطبيقات مايكروسوفت
- واجهات برمجة تطبيقات نظام التشغيل
- نواة نظام التشغيل ويندوز إن تي
