Поделиться через


FLT_PARAMETERS для объединения IRP_MJ_QUERY_EA

Компонент объединения используется, когда поле MajorFunction структуры FLT_IO_PARAMETER_BLOCK для операции IRP_MJ_QUERY_EA.

Синтаксис

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    ULONG                    Length;
    PVOID                    EaList;
    ULONG                    EaListLength;
    ULONG  POINTER_ALIGNMENT EaIndex;
    PVOID                    EaBuffer;
    PMDL                     MdlAddress;
  } QueryEa;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Члены

  • QueryEa: структура в FLT_PARAMETERS объединение, содержащее следующие члены.

  • Длина: длина (в байтах) буфера, на который указывает EaBuffer .

  • EaList: указатель на предоставленный вызывающим, FILE_GET_EA_INFORMATION структурированный входной буфер, указывающий расширенные атрибуты для запроса.

  • EaListLength: длина (в байтах) буфера, на который указывает EaList .

  • EaIndex: индекс записи, с которой начинается сканирование списка расширенных атрибутов. Этот параметр игнорируется, если флаг SL_INDEX_SPECIFIED не задан в структуре FLT_IO_PARAMETER_BLOCK операции или если EaList указывает на список непустый.

  • EaBuffer: указатель на предоставленный вызывающим , FILE_FULL_EA_INFORMATION структурированный выходной буфер, в который должны возвращаться расширенные значения атрибутов. Этот член является необязательным и может иметь значение NULL , если MDL предоставляется в MdlAddress. См. Примечания.

  • MdlAddress: адрес списка дескрипторов памяти (MDL), описывающего буфер, на который указывает EaBuffer . Этот член является необязательным и может иметь значение NULL , если буфер предоставлен в EaBuffer. См. Примечания.

Комментарии

Структура FLT_PARAMETERS для операций IRP_MJ_QUERY_EA содержит параметры для операции query-extended-attributes-information на основе IRP, представленной структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в FLT_IO_PARAMETER_BLOCK структуре.

Если указаны буфер EaBuffer и MdlAddress , рекомендуется, чтобы минифильтры использовали MDL. Память, на которую указывает EaBuffer , допустима, если это адрес в пользовательском режиме, к которому осуществляется доступ в контексте вызывающего процесса, или если это адрес режима ядра.

Если минифильтр изменяет значение MdlAddress, то после обратного вызова после операции диспетчер фильтров освободит MDL, хранящийся в MdlAddress , и восстановит предыдущее значение MdlAddress.

IRP_MJ_QUERY_EA — это операция на основе IRP.

Требования

Тип требования Требование
Заголовок Fltkernel.h (включая Fltkernel.h)

См. также раздел

FILE_FULL_EA_INFORMATION

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

IoCheckEaBufferValidity

IRP_MJ_QUERY_EA