Suporte a drivers de filtragem de registro em camadas

O Windows Vista e versões posteriores do sistema operacional dão suporte a uma pilha em camadas de drivers de filtragem de registro. Cada driver na pilha pode participar da filtragem de operações do Registro registrando uma rotina RegistryCallback . Cada driver de filtragem do Registro recebe uma altitude e os drivers podem registrar apenas uma rotina RegistryCallback para cada altitude. Quando o driver chama CmRegisterCallbackEx, o driver especifica sua altitude. Para obter mais informações sobre altitudes, consulte Grupos de pedidos de carga e altitudes para drivers de minifiltro.

Quando um thread faz uma chamada ao Registro, o gerenciador de configurações chama cada rotina RegistryCallback, na ordem, da altitude mais alta para a mais baixa, até que todos os drivers tenham sido chamados ou uma rotina RegistryCallback retorne um valor status para o qual NT_SUCCESS(status) é igual a FALSE. Portanto, se um driver de nível superior bloquear ou modificar uma operação de registro, os drivers de nível inferior não serão chamados. (Se um driver modificar uma operação chamando uma função de registro diferente, o gerenciador de configurações não será reiniciado na parte superior da pilha de filtros.)

Os drivers de filtragem do Registro que foram gravados antes do Windows Vista e, portanto, não têm uma atribuição de altitude são inseridos perto da parte superior da pilha de filtros do Windows Vista, na ordem em que chamam CmRegisterCallback.