Las funciones de devolución de llamadas que el kernel de Windows invoca al crear o terminar procesos, iniciar o finalizar hilos, y cargar o descargar archivos DLL y EXE, deben ejecutarse con rapidez y sin bloquearse. La documentación oficial de Microsoft enumera una serie de prohibiciones para estas rutinas: no llamar a servicios en modo usuario, no realizar llamadas al registro, no usar funciones bloqueantes ni de comunicación entre procesos, y no sincronizarse con otros hilos, ya que se pueden producir interbloqueos por reentrada. El motivo es que estas devoluciones de llamada se ejecutan en puntos críticos de la secuencia de creación y finalización de procesos, e incluso pueden dispararse mientras el sistema mantiene bloqueos internos, por lo que cualquier demora afecta al rendimiento global. La guía recomienda delegar el trabajo costoso a System Worker Threads para su ejecución asíncrona. Ahora bien, el soporte empresarial de Microsoft detecta con frecuencia un antipatrón: un controlador que encola trabajo en un hilo de trabajo y luego se queda bloqueado esperando a que ese trabajo finalice. Aunque la acción cumple la letra de las recomendaciones, el efecto es el mismo que ejecutar el trabajo pesado de forma síncrona, lo que viola el espíritu de las reglas. La documentación, actualizada en 2020, añade una línea específica que lo prohíbe, aunque el problema de fondo ya quedaba recogido en la prohibición de sincronizarse con otros hilos, dado que el evento sobre el que se espera lo establece otro hilo. El autor propone reescribir el inicio de la documentación para hacer explícito que la devolución de llamada debe ser rápida y no bloqueante, y que el trabajo complejo debe hacerse de forma asíncrona, enumerando después ejemplos concretos de operaciones bloqueantes prohibidas.
