กลับไปหน้าบทความ

อ่าน 2 นาที

Windows Native API

Native API คือ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่มีน้ำหนักเบา ซึ่งใช้โดย เคอร์เนล และ แอป พลิเคชันในโหมดผู้ใช้ ของ Windows NT API นี้ถูกใช้ในขั้นตอนแรก ๆ ของ...

Windows Native API

Native APIคืออินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่มีน้ำหนักเบา ซึ่งใช้โดยเคอร์เนลและ แอป พลิเคชันในโหมดผู้ใช้ของWindows NT API นี้ถูกใช้ในขั้นตอนแรก ๆ ของ กระบวนการเริ่มต้นทำงานของ Windows NTเมื่อส่วนประกอบและ API อื่น ๆ ยังไม่พร้อมใช้งาน ดังนั้น ส่วนประกอบของ Windows บางส่วน เช่นClient/Server Runtime Subsystem (CSRSS) จึงถูกนำไปใช้โดยใช้ Native API นอกจากนี้ Native API ยังถูกใช้โดยซับรูทีนเช่น ซับรูทีนในkernel32.dllที่ใช้งานWindows APIซึ่งเป็น API ที่ใช้ในการสร้างส่วนประกอบส่วนใหญ่ของ Windows

การเรียกใช้ Native API ส่วนใหญ่ถูกใช้งานในntoskrnl.exeและเปิดเผยสู่โหมดผู้ใช้โดยntdll.dllจุดเริ่มต้นของ ntdll.dll คือLdrInitializeThunkการเรียกใช้ Native API จะถูกจัดการโดยเคอร์เนลผ่านตารางคำอธิบายบริการระบบ (SSDT)

กลุ่มฟังก์ชัน

Native API ประกอบด้วยฟังก์ชันมากมาย ซึ่งรวมถึงฟังก์ชันรันไทม์ของภาษา Cที่จำเป็นสำหรับการทำงานพื้นฐาน ของ ภาษา Cเช่น strlen(), sprintf(), memcpy() และ floor() ส่วนฟังก์ชันทั่วไปอื่นๆ เช่น malloc(), printf(), scanf() นั้นไม่มี (ฟังก์ชันแรกเพราะไม่ได้ระบุฮีปที่จะจัดสรรหน่วยความจำ และฟังก์ชันที่สองและสามเพราะใช้คอนโซล ซึ่งเข้าถึงได้ผ่าน KERNEL32.DLL เท่านั้น) โดยทั่วไปแล้ว ฟังก์ชัน Native API ส่วนใหญ่จะมีคำนำหน้า 2 หรือ 3 ตัวอักษร ดังนี้:

  • 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ย่อมาจาก client/server runtime sub-system)
  • Dbgคือ ฟังก์ชัน สำหรับการดีบักเช่นการตั้งจุดหยุดการทำงานของ ซอฟต์แวร์
  • Kiคือการเรียกขึ้นจากโหมดเคอร์เนลสำหรับเหตุการณ์ต่างๆ เช่นการส่งคำสั่งAPC
  • Ldrคือฟังก์ชันตัวโหลดสำหรับ การจัดการไฟล์ PEและการเริ่มต้นกระบวนการใหม่
  • NLS ย่อมาจากNational Language Support (คล้ายกับ Code Page)
  • ไฟล์ Pfxสำหรับการจัดการคำนำหน้า
  • Tpสำหรับการจัดการเธรดพูล

ไฟล์ user32.dll และ gdi32.dll มีฟังก์ชันเรียกใช้งานอื่นๆ อีกหลายฟังก์ชันที่เรียกใช้การขัดจังหวะเข้าสู่โหมดเคอร์เนล ฟังก์ชันเหล่านี้ไม่ได้เป็นส่วนหนึ่งของการออกแบบ Windows NT ดั้งเดิม ดังที่เห็นได้ในWindows NT 3.5อย่างไรก็ตาม เนื่องจากปัญหาด้านประสิทธิภาพของฮาร์ดแวร์ในยุคนั้น จึงมีการตัดสินใจย้ายระบบกราฟิกไปอยู่ในโหมดเคอร์เนล ดังนั้น การเรียกใช้ระบบในช่วง 0x1000-0x1FFF จึงถูกจัดการโดยwin32k.sys (แทนที่จะเป็น ntoskrnl.exe เหมือนที่ทำสำหรับ 0-0x0FFF) และถูกประกาศไว้ใน user32.dll และ gdi32.dll ฟังก์ชันเหล่านี้มี คำนำหน้า NtUserและNtGdi (เช่นNtUserLockWorkStationและNtGdiEnableEudc )

การใช้งาน

การใช้งานฟังก์ชัน Native API รวมถึงแต่ไม่จำกัดเพียง:

  • การเปิดใช้งานและปิดใช้งานสิทธิ์ (RtlAdjustPrivilege)
  • การสร้างเธรดระยะไกลภายในกระบวนการที่ทำงานอยู่ในเซสชันที่แตกต่างกัน (RtlCreateUserThread)
  • การเรียกใช้งานแอปพลิเคชันแบบเนทีฟ (RtlCreateUserProcess)
  • ดำเนินการปิดระบบแบบบังคับ (NtShutdownSystem)
  • ทำให้เกิดหน้าจอฟ้า (BSOD) ในโหมดผู้ใช้ (NtRaiseHardError)
  • การแสดงข้อความในโหมดเนทีฟ (NtDisplayString)

ดูเพิ่มเติม

  • เว็บไซต์ที่รวบรวมข้อมูลฟังก์ชันส่วนใหญ่ของ Native API (ถูกเก็บถาวรเมื่อวันที่ 25 ตุลาคม 2017 ในWayback Machine)
  • ภายในแอปพลิเคชันเนทีฟ
  • ภายใน Native API
  • เฟรมเวิร์กการพัฒนาแอปพลิเคชันเนทีฟแบบโอเพนซอร์ส
  • การคอมไพล์โปรแกรม Free Pascal สำหรับ API ดั้งเดิม
  • Windows NT Native Tools - เครื่องมือพัฒนาแอปพลิเคชันแบบเนทีฟฟรี
  • เชลล์ดั้งเดิม - พร้อมท์คำสั่งของ Windows ซึ่งสามารถเริ่มต้นได้ก่อน Winlogon และระบบย่อย Win32 เก็บถาวรเมื่อ 11 สิงหาคม 2015 ที่Wayback Machine
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Windows_Native_API&oldid=1319612805 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ Windows Native API

Native API คือ อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่มีน้ำหนักเบา ซึ่งใช้โดย เคอร์เนล และ แอป พลิเคชันในโหมดผู้ใช้ ของ Windows NT API นี้ถูกใช้ในขั้นตอนแรก ๆ ของ...

กลุ่มฟังก์ชัน

Native API ประกอบด้วยฟังก์ชันมากมาย ซึ่งรวมถึง ฟังก์ชันรันไทม์ของภาษา C ที่จำเป็นสำหรับการทำงานพื้นฐาน ของ ภาษา C เช่น strlen(), sprintf(), memcpy() และ floor() ส่วนฟังก์ชันทั่วไปอื่นๆ เช่น malloc(), printf(), scanf() นั้นไม่มี (ฟังก์ชันแรกเพราะไม่ได้ระบุ ฮีป...

การใช้งาน

การใช้งานฟังก์ชัน Native API รวมถึงแต่ไม่จำกัดเพียง:

ลิงก์ภายนอก

เว็บไซต์ที่รวบรวมข้อมูลฟังก์ชันส่วนใหญ่ของ Native API (ถูกเก็บถาวรเมื่อวันที่ 25 ตุลาคม 2017 ใน Wayback Machine) ภายในแอปพลิเคชันเนทีฟ ภายใน Native API เฟรมเวิร์กการพัฒนาแอปพลิเคชันเนทีฟแบบโอเพนซอร์ส การคอมไพล์โปรแกรม Free Pascal สำหรับ API ดั้งเดิม Windows...