Фильтрация вызовов реестра

Драйвер фильтрации реестра — это любой драйвер в режиме ядра, который фильтрует вызовы реестра, например компонент драйвера пакета антивирусного программного обеспечения. Диспетчер конфигурации, реализующий реестр, позволяет драйверам фильтрации реестра фильтровать вызовы любого потока к функциям реестра. Фильтрация вызовов реестра впервые была реализована в Microsoft Windows XP.

В Windows XP драйвер фильтрации реестра может вызывать CmRegisterCallback для регистрации подпрограммы RegistryCallback и CmUnRegisterCallback для отмены регистрации процедуры обратного вызова. Подпрограмма RegistryCallback получает уведомления о каждой операции реестра до того, как диспетчер конфигурации обработает операцию. Набор структур данных REG_XXX_KEY_INFORMATION содержит сведения о каждой операции реестра. Подпрограмма RegistryCallback может блокировать операцию реестра. Подпрограмма обратного вызова также получает уведомления, когда диспетчер конфигурации завершает создание или открытие раздела реестра.

Windows Server 2003 предоставляет дополнительные уведомления о завершении.

Windows Vista предоставляет следующие дополнительные возможности фильтрации реестра:

  • Драйверы фильтрации реестра могут быть наложены на много слоев в стеке драйверов, и каждый драйвер в стеке может фильтровать операцию реестра.

  • Подпрограмма CmRegisterCallback заменяется подпрограммой CmRegisterCallbackEx .

  • Драйверы могут полностью обработать операцию реестра (или перенаправить запрошенную операцию в другую операцию) и предотвратить выполнение операции диспетчером конфигурации.

  • Драйверы могут назначать сведения контекста отдельным операциям реестра или объектам ключей.

  • Драйверы могут изменять выходные параметры и возвращаемое значение операции реестра.

  • Во все структуры данных REG_XXX_KEY_INFORMATION добавлены дополнительные члены.

  • Драйверы получают уведомления о дополнительных операциях реестра.

Список операций реестра, которые драйвер может фильтровать в каждой версии Windows, см. в разделе REG_NOTIFY_CLASS.

Дополнительные сведения о фильтрации вызовов реестра см. в следующих разделах:

Регистрация для получения уведомлений

Обработка уведомлений

Поддержка драйверов многоуровневой фильтрации реестра

Указание сведений о контексте

Получение дополнительных сведений о реестре

Недопустимые указатели на объект ключа в уведомлениях реестра

Фильтрация операций реестра в кустах приложений