Compatibilidad con controladores de filtrado de registro por capas

Windows Vista y versiones posteriores del sistema operativo admiten una pila por capas de controladores de filtrado del registro. Cada controlador de la pila puede participar en el filtrado de operaciones del Registro registrando una rutina RegistryCallback . A cada controlador de filtrado del registro se le asigna una altitud y los controladores solo pueden registrar una rutina registryCallback para cada altitud. Cuando el controlador llama a CmRegisterCallbackEx, el controlador especifica su altitud. Para obtener más información sobre las altitudes, vea Grupos de pedidos de carga y altitudes para controladores de minifiltro.

Cuando un subproceso realiza una llamada al Registro, el administrador de configuración llama a cada rutina RegistryCallback , en orden, desde la altitud más alta hasta la más baja, hasta que se haya llamado a todos los controladores o una rutina RegistryCallback devuelva un valor de estado para el que NT_SUCCESS(status) es igual a FALSE. Por lo tanto, si un controlador de nivel superior bloquea o modifica una operación del Registro, no se llama a los controladores de nivel inferior. (Si un controlador modifica una operación mediante una llamada a otra función del Registro, el administrador de configuración no se reinicia en la parte superior de la pila de filtros).

Los controladores de filtrado del Registro que se escribieron antes de Windows Vista y, por lo tanto, no tienen una asignación de altitud se insertan cerca de la parte superior de la pila de filtros de Windows Vista, en el orden en que llaman a CmRegisterCallback.