Поддержка драйверов многоуровневой фильтрации реестра
Windows Vista и более поздние версии операционных систем поддерживают многоуровневый стек драйверов фильтрации реестра. Каждый драйвер в стеке может участвовать в фильтрации операций реестра, регистрируя подпрограмму RegistryCallback . Каждому драйверу фильтрации реестра назначается высота, и водители могут зарегистрировать только одну подпрограмму RegistryCallback для каждой высоты. Когда драйвер вызывает CmRegisterCallbackEx, он указывает высоту. Дополнительные сведения о высотах см. в разделе Load Order Groups and Altitudes for Minifilter Drivers.
Когда поток выполняет вызов реестра, диспетчер конфигурации вызывает каждую подпрограмму RegistryCallback в порядке от самой высокой высоты до самого низкого уровня, пока не будут вызваны все драйверы или подпрограмма RegistryCallback не вернет значение состояния, для которого NT_SUCCESS (состояние) равно FALSE. Поэтому, если драйвер более высокого уровня блокирует или изменяет операцию реестра, драйверы более низкого уровня не вызываются. (Если драйвер изменяет операцию путем вызова другой функции реестра, диспетчер конфигурации не перезапускается в верхней части стека фильтров.)
Драйверы фильтрации реестра, написанные до Windows Vista и поэтому не имеющие назначения высоты, вставляются в верхней части стека фильтров Windows Vista в порядке вызова CmRegisterCallback.