Tipos de API
Una llamada a procedimiento asincrónico (APC) es una función que se ejecuta de forma asincrónica. Las API son similares a las llamadas a procedimientos diferidos (DPC), pero, a diferencia de las DDC, las API se ejecutan en el contexto de un subproceso determinado. Los controladores (distintos de los sistemas de archivos y los controladores de filtro del sistema de archivos) no usan API directamente, pero otras partes del sistema operativo lo hacen, por lo que debe tener en cuenta cómo funcionan las API.
El sistema operativo Windows usa cuatro tipos de API:
Las API en modo de usuario especiales se ejecutan estrictamente en modo de usuario y siempre se ejecutan, incluso si el subproceso de destino no está en un estado de espera alertable. Para obtener más información sobre las API especiales en modo de usuario, consulte QueueUserAPC2.
Las API normales en modo de usuario se ejecutan estrictamente en modo de usuario y solo cuando el subproceso de destino está en un estado de espera alertable. El sistema operativo usa API de usuario normales para implementar mecanismos como E /S superpuestos y la rutina QueueUserApc Win32.
Las API de kernel normales se ejecutan en modo kernel en IRQL = PASSIVE_LEVEL. Un kernel normal APC adelanta todo el código en modo de usuario, incluidas las API de usuario. Normalmente, los sistemas de archivos y los controladores de filtro del sistema de archivos usan las API de kernel normales.
Las API de kernel especiales se ejecutan en modo kernel en IRQL = APC_LEVEL. Un APC de kernel especial adelanta el código en modo de usuario y el código en modo kernel que se ejecuta en IRQL = PASSIVE_LEVEL, incluidas las API de usuario y las API de kernel normales. El sistema operativo usa API de kernel especiales para controlar operaciones como la finalización de solicitudes de E/S.
Para obtener una lista de los IRQL de menor a más alta prioridad, consulte Administración de prioridades de hardware.