stringtranslate.com

Собственный API Windows

Native API — это облегченный интерфейс прикладного программирования (API), используемый Windows NT и приложениями пользовательского режима . Этот API используется на ранних этапах процесса запуска Windows NT , когда другие компоненты и API еще недоступны. Поэтому некоторые компоненты Windows, такие как подсистема выполнения клиент-сервер (CSRSS), реализуются с использованием Native API. Native API также используется подпрограммами , например, в kernel32.dll , которые реализуют Windows API , API, на основе которого создается большинство компонентов Windows.

Большинство вызовов Native API реализованы в ntoskrnl.exe и доступны в пользовательском режиме с помощью ntdll.dll . Точкой входа для ntdll.dll является LdrInitializeThunk. Вызовы собственного API обрабатываются ядром через таблицу дескрипторов системных служб (SSDT).

Функциональные группы

Native API включает в себя множество функций. Они включают в себя функции времени выполнения C , необходимые для самого простого выполнения времени выполнения C , такие как strlen(), sprintf(), memcpy() и Floor(). Другие распространенные процедуры, такие как malloc(), printf(), scanf(), отсутствуют (первая, потому что она не определяет кучу для выделения памяти, а вторая и третья, потому что они используют консоль, доступ к которой осуществляется только через KERNEL32.DLL). Подавляющее большинство других подпрограмм Native API по соглашению имеют префикс из 2 или 3 букв, а именно:

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 включает, помимо прочего:

Смотрите также

Рекомендации

  1. The NT Insider (27 августа 2003 г.). «Nt против Zw — устранение путаницы в собственном API». ОСР онлайн . Ресурсы открытых систем OSR. 10 (4) . Проверено 16 сентября 2013 г.
  2. ^ Раймонд Чен (2009). «Старая новая вещь: что означает префикс «Zw»?». Корпорация Майкрософт . Проверено 13 июня 2009 г.

Внешние ссылки