FLT_PARAMETERS для объединения IRP_MJ_NETWORK_QUERY_OPEN
Следующий компонент объединения используется, когда поле MajorFunction структуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_NETWORK_QUERY_OPEN.
Синтаксис
typedef union _FLT_PARAMETERS {
... ;
struct {
PIRP Irp;
PFILE_NETWORK_OPEN_INFORMATION NetworkInformation;
} NetworkQueryOpen;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Участники
NetworkQueryOpen: структура, содержащая следующие элементы.
Irp: указатель на создание IRP, представляющего эту открытую операцию. Эта функция IRP должна использоваться файловой системой для общего открытого и создания кода, но не завершена.
NetworkInformation: указатель на FILE_NETWORK_OPEN_INFORMATION структурированный буфер для получения запрошенных сведений о файле.
Замечания
Структура FLT_PARAMETERS для операций IRP_MJ_NETWORK_QUERY_OPEN содержит параметры для операции NetworkQueryOpen, представленной структурой (FLT_CALLBACK_DATA). Структура FLT_PARAMETERS содержится в FLT_IO_PARAMETER_BLOCK структуре.
Примечание.
Файловый объект, связанный с IRP_MJ_NETWORK_QUERY_OPEN, является объектом на основе стека. Фильтр, зарегистрированный для обратного вызова NetworkQueryOpen , не должен ссылаться на этот объект. То есть не вызывайте ObReferenceObject или ObDereferenceObject в этом объекте файла на основе стека и не сохраняйте указатель на объект.
IRP_MJ_NETWORK_QUERY_OPEN — это быстрая операция ввода-вывода. Это эквивалент операции FastIoQueryOpen (не FastIoQueryNetworkOpenInfo). Фильтр может отклонить операцию в обратном вызове перед операцией с помощью FLT_PREOP_DISALLOW_FASTIO. Он не может отклонить операцию в обратном вызове после операции, так как файловая система уже завершила операцию и данные присутствуют.
Требования
Тип требования | Требование |
---|---|
Верхний колонтитул | Fltkernel.h (include Fltkernel.h) |