stringtranslate.com

API nativa de Windows

La API nativa es una interfaz de programación de aplicaciones (API) ligera que utilizan las aplicaciones de modo usuario y kernel de Windows NT . 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 de cliente/servidor (CSRSS), se implementan utilizando la API nativa. La API nativa también la utilizan 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 se exponen al modo de usuario mediante ntdll.dll . El punto de entrada de ntdll.dll es LdrInitializeThunk. Las llamadas a la API nativa se gestionan mediante el núcleo 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 en 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 desde el que asignar memoria y el segundo y el tercero porque utilizan 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 otras llamadas que ejecutan una interrupción en el modo kernel. Estas no eran 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. Por lo tanto, las llamadas del sistema en el rango de 0x1000-0x1FFF son satisfechas por win32k.sys (en lugar de ntoskrnl.exe como se hizo 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 API nativas incluyen, entre otros:

Véase también

Referencias

  1. ^ The NT Insider (27 de agosto de 2003). "Nt vs. Zw - Aclarando la confusión sobre la API nativa". OSR Online . 10 (4). Recursos de sistemas abiertos de OSR . Consultado el 16 de septiembre de 2013 .
  2. ^ Raymond Chen (2009). "Lo nuevo de siempre: ¿qué significa el prefijo "Zw"?". Microsoft Corporation . Consultado el 13 de junio de 2009 .

Enlaces externos