Red de conocimiento informático - Problemas con los teléfonos móviles - En la programación de Windows, ¿qué representan las funciones que comienzan con Zw, Ke y Nt?

En la programación de Windows, ¿qué representan las funciones que comienzan con Zw, Ke y Nt?

Todos estos representan rutinas (rutinas) de servicios del sistema (servicios del sistema) nativos (nativos) de Windows.

Ke: la abreviatura de kernel, que representa la interfaz API en modo kernel.

Nt: la abreviatura de Windows NT, que representa la interfaz API de la función de servicio del sistema de Windows. La mayoría de las funciones que comienzan con Nt se asignan a la interfaz API del modo de usuario. Por ejemplo, el programa en modo de usuario que escribe utiliza la función CreateFile. Dado que necesita acceder a la estructura de datos interna del sistema, debe ingresar al modo kernel. En este momento, el programa se transferirá al modo kernel y al correspondiente. La interfaz de servicio de función del modo kernel es NtCreateFile en ntdll.dll, que finalmente completa la solicitud de función del programa en modo de usuario.

Zw: no tiene un significado de abreviatura específico, solo para evitar la duplicación con otros prefijos. Su función es consistente con la función Nt correspondiente (se puede decir que es una imagen especular de la función Nt). La diferencia es que: la función Nt correspondiente es directa al servicio del sistema; mientras que Zw necesita pasar por una serie de acciones de preparación del sistema, como: guardar el código de servicio del sistema en el registro, cargar el KiSystemService del sistema y luego. se ejecuta la llamada a la función de servicio específica. Parece que la carga ha aumentado, pero la ventaja es que durante la ejecución ya no es necesario realizar la serie de verificaciones de parámetros del sistema (gracias al llamado modo de acceso previo), por lo que es más liviano mientras funciona la serie Nt; son fáciles de llamar, pero se requiere verificación de parámetros para cada ejecución, por lo que es engorroso. Esta es la razón por la que los programas en modo kernel (como los controladores) utilizan principalmente el sistema Zw (porque necesitan lidiar con el modo anterior).