The Windows Native API

The Windows Native API

 Work in progress




Introduction

The Native API (with capitalized N) is the mostly undocumented application programming interface used internally by the Windows NT family of operating systems. It is predominately used during system boot, when other components of Windows are unavailable. The Program Entry point is called DriverEntry(), the same as for a Windows Device Driver. However, the application runs in Ring 3 the same as a regular Windows Application. Most of the Native API calls are implemented in ntoskrnl.exe and are exposed to user mode by ntdll.dll. Some Native API calls are implemented in user mode directly within ntdll.dll.
While most of Microsoft Windows is implemented using the documented and well-defined Windows API, a few components, such as the Client/Server Runtime Subsystem, are implemented using the Native API, as they can be started earlier in the Windows NT Startup Process when the Windows API is not yet available.

Return to top

The Native API Architecture

The Windows Native API serves one purpose: as a means for calling operating system services located in kernel mode in a controlled manner. Kernel mode is where the core of Windows executes and it's in kernel mode that components have direct access to hardware and services that perform management of the computer's resources including memory, devices and processes. The Native API is equivalent to the system call interface on traditional monolithic operating systems such as most UNIX versions. On most UNIXes, however, the system call interface is well documented and is generally available for use by standard applications; in Windows the Native API, its system call interface, is hidden from programmers behind higher level APIs : the reason behind this is Windows' architecture, starting from the NT version of the operating system.    

Return to top



See Also

Leave a Comment
  • Please add 3 and 1 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
Comments
  • Richard Mueller edited Revision 4. Comment: Removed (en-US) from title, added tags

  • Luigi Bruno edited Revision 2. Comment: Edited the "Introduction" section.

  • Luigi Bruno edited Revision 1. Comment: Added the "See Also" section.

  • Luigi Bruno edited Original. Comment: Added the TOC.

Page 1 of 1 (4 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
Comments
  • Luigi Bruno edited Original. Comment: Added the TOC.

  • Luigi Bruno edited Revision 1. Comment: Added the "See Also" section.

  • Luigi Bruno edited Revision 2. Comment: Edited the "Introduction" section.

  • Luigi Bruno edited Revision 3. Comment: Added the "The Native API Architecture" section.

  • Richard Mueller edited Revision 4. Comment: Removed (en-US) from title, added tags

Page 1 of 1 (5 items)