Supporto dei driver di filtro del Registro di sistema a livelli

Windows Vista e versioni successive del sistema operativo supportano uno stack di driver di filtro del Registro di sistema a livelli. Ogni driver nello stack può partecipare alle operazioni del Registro di sistema filtrando registrando una routine RegistryCallback . Ogni driver di filtro del Registro di sistema viene assegnato a un'altitudine e i driver possono registrare una sola routine RegistryCallback per ogni altitudine. Quando il driver chiama CmRegisterCallbackEx, il driver specifica la sua altitudine. Per altre informazioni sulle altitudini, vedere Gruppi di ordini di carico e altitudini per i driver minifilter.

Quando un thread esegue una chiamata al Registro di sistema, gestione configurazione chiama ogni routine RegistryCallback, in ordine, dall'altitudine più elevata al minimo, fino a quando tutti i driver non sono stati chiamati o una routine RegistryCallback restituisce un valore di stato per il quale NT_SUCCESS(stato) equivale a FALSE. Pertanto, se un driver di livello superiore blocca o modifica un'operazione del Registro di sistema, i driver di livello inferiore non vengono chiamati. Se un driver modifica un'operazione chiamando una funzione del Registro di sistema diversa, gestione configurazione non viene riavviata nella parte superiore dello stack di filtri.

I driver di filtro del Registro di sistema scritti prima di Windows Vista e pertanto non hanno un'assegnazione di altitudine vengono inseriti nella parte superiore dello stack di filtri di Windows Vista, nell'ordine in cui chiamano CmRegisterCallback.