stringtranslate.com

API nativa de Windows

La API nativa es una interfaz de programación de aplicaciones (API) liviana utilizada por Windows NT y aplicaciones en modo de usuario . Esta API se utiliza en las primeras etapas del proceso de inicio de Windows NT , cuando otros componentes y API aún no están disponibles. Por lo tanto, algunos componentes de Windows, como el subsistema de ejecución cliente/servidor (CSRSS), se implementan mediante la API nativa. La API nativa también es utilizada por subrutinas como las de kernel32.dll que implementan la API de Windows , la API en base a la cual se crean la mayoría de los componentes de Windows.

La mayoría de las llamadas a la API nativa se implementan en ntoskrnl.exe y están expuestas al modo de usuario mediante ntdll.dll . El punto de entrada de ntdll.dll es LdrInitializeThunk. Las llamadas API nativas son manejadas por el kernel a través de la tabla de descriptores de servicios del sistema (SSDT).

Grupos de funciones

La API nativa comprende muchas funciones. Incluyen funciones de tiempo de ejecución de C que son necesarias para una ejecución de tiempo de ejecución de C muy básica , como strlen(), sprintf(), memcpy() y floor(). Faltan otros procedimientos comunes como malloc(), printf(), scanf() (el primero porque no especifica un montón para asignar memoria y el segundo y tercero porque usan la consola, a la que se accede solo a través de KERNEL32.DLL). La gran mayoría de otras rutinas de API nativas, por convención, tienen un prefijo de 2 o 3 letras, que es:

user32.dll y gdi32.dll incluyen varias otras llamadas que ejecutan una interrupción en modo kernel. Estos no formaban parte del diseño original de Windows NT, como se puede ver en Windows NT 3.5 . Sin embargo, debido a problemas de rendimiento del hardware de esa época, se decidió mover el subsistema de gráficos al modo kernel. Como tal, las llamadas al sistema en el rango 0x1000-0x1FFF son satisfechas por win32k.sys (en lugar de ntoskrnl.exe como se hace para 0-0x0FFF) y se declaran en user32.dll y gdi32.dll. Estas funciones tienen el prefijo NtUser y NtGdi (por ejemplo, NtUserLockWorkStation y NtGdiEnableEudc ).

Usos

Los usos de las funciones de la API nativa incluyen, entre otros:

Ver también

Referencias

  1. ^ The NT Insider (27 de agosto de 2003). "Nt vs. Zw: aclarar la confusión sobre la API nativa". OSR en línea . Recursos de sistemas abiertos OSR. 10 (4) . Consultado el 16 de septiembre de 2013 .
  2. ^ Raymond Chen (2009). "Lo viejo y nuevo: ¿Qué significa el prefijo" Zw "?". Corporación Microsoft . Consultado el 13 de junio de 2009 .

enlaces externos