Функция IoRegisterFsRegistrationChange (ntifs.h)
Подпрограмма IoRegisterFsRegistrationChange регистрирует процедуру уведомлений драйвера фильтра файловой системы для вызова всякий раз, когда файловая система регистрирует или отменяет регистрацию в качестве активной файловой системы.
Синтаксис
NTSTATUS IoRegisterFsRegistrationChange(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_FS_NOTIFICATION DriverNotificationRoutine
);
Параметры
[in] DriverObject
Указатель на объект драйвера для драйвера фильтра FS.
[in] DriverNotificationRoutine
Указатель на подпрограмму PDRIVER_FS_NOTIFICATION , которую файловая система вызывает при регистрации или отмене регистрации.
Возвращаемое значение
IoRegisterFsRegistrationChange возвращает значение NTSTATUS, например одно из следующих значений.
Код возврата | Описание |
---|---|
STATUS_SUCCESS | Подпрограмма уведомлений успешно зарегистрирована. |
STATUS_INSUFFICIENT_RESOURCES | Не удалось выделить пакет уведомлений для подпрограммы уведомлений. |
STATUS_DEVICE_ALREADY_ATTACHED | См. заметки. |
STATUS_NOT_SUPPORTED | Устаревшие драйверы фильтров FS блокируются системной политикой. Дополнительные сведения см. в статье Блокирование устаревших драйверов фильтров файловой системы . |
Комментарии
IoRegisterFsRegistrationChange регистрирует драйвер фильтра FS, чтобы получать уведомления при каждом вызове файловой системой IoRegisterFileSystem или IoUnregisterFileSystem.
Чтобы прекратить получение таких уведомлений, драйвер фильтра должен вызвать IoUnregisterFsRegistrationChange.
Когда драйвер фильтра FS вызывает IoRegisterFsRegistrationChange, ОС немедленно вызывает свою подпрограмму уведомлений для всех зарегистрированных в настоящее время файловых систем. (Зарегистрированная файловая система — это система, которая уже успешно называется IoRegisterFileSystem, но еще не называется IoUnregisterFileSystem.) Так как подпрограмму уведомлений вызывающего объекта можно вызвать еще до возврата IoRegisterFsRegistrationChange , драйвер фильтра не должен вызывать эту подпрограмму, пока не создаст структуры данных, необходимые для обработки этих уведомлений.
IoRegisterFsRegistrationChange игнорирует необработанные устройства. Сведения о присоединении к файловой системе RAW по имени см. в разделе Присоединение объекта устройства фильтра к целевому объекту устройства.
IoRegisterFsRegistrationChange увеличивает количество ссылок в объекте драйвера фильтра.
IoRegisterFsRegistrationChange возвращает STATUS_DEVICE_ALREADY_ATTACHED, если выполняются следующие условия:
- Драйвер фильтра FS дважды последовательно вызывал IoRegisterFsRegistrationChange без вызова IoUnregisterFsRegistrationChange .
- Драйвер фильтра FS передал те же значения для DriverObject и DriverNotificationRoutine , что и при предыдущем вызове IoRegisterFsRegistrationChange.
- С момента первого вызова другие драйверы фильтров не зарегистрированы.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |