Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В определенных обстоятельствах драйвер минифильтра может запретить быструю операцию ввода-вывода вместо завершения операции ввода-вывода. Запрет быстрой операции ввода-вывода предотвращает использование быстрого пути ввода-вывода для операции.
Как и при выполнении операции ввода-вывода, не разрешая быструю операцию ввода-вывода, можно остановить обработку и вернуть ее диспетчеру фильтров. Однако запрещение быстрой операции ввода-вывода — это иное, чем её завершение. Если драйвер минифильтра запрещает быструю операцию ввода-вывода, выданную диспетчером ввода-вывода, диспетчер ввода-вывода может повторно выполнить ту же операцию, что и эквивалентная операция на основе IRP.
Когда подпрограмма обратного вызова предварительной операции драйвера минифильтра запрещает быструю операцию ввода-вывода, диспетчер фильтров выполняет следующие действия.
Не отправляет операцию драйверам минифильтра ниже текущего, устаревшим фильтрам или файловой системе.
Вызывает процедуры обратного вызова после операций драйверов минифильтров выше текущего драйвера минифильтра в стеке экземпляров драйвера минифильтра.
Не вызывает послеоперационную подпрограмму обратного вызова текущего драйвера минифильтра для операции, если таковая существует.
Драйвер мини-фильтра запрещает быструю операцию ввода-вывода, возвращая FLT_PREOP_DISALLOW_FASTIO из подпрограммы обратного вызова перед выполнением операции.
Подпрограмма предоперационного обратного вызова не должна задавать поле IoStatus.Status в структуре данных обратного вызова, так как диспетчер фильтров автоматически устанавливает это поле в STATUS_FLT_DISALLOW_FAST_IO.
FLT_PREOP_DISALLOW_FASTIO может быть возвращен только для быстрых операций ввода-вывода. Чтобы определить, является ли операция быстрой операцией ввода-вывода, см. FLT_IS_FASTIO_OPERATION.
Драйверы минифильтра не могут возвращать FLT_PREOP_DISALLOW_FASTIO для операций IRP_MJ_SHUTDOWN, IRP_MJ_VOLUME_MOUNT или IRP_MJ_VOLUME_DISMOUNT.