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


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

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

Синтаксис

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    ULONG                                    Length;
    FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
    PFILE_OBJECT                             ParentOfTarget;
    union {
      struct {
        BOOLEAN ReplaceIfExists;
        BOOLEAN AdvanceOnly;
      };
      ULONG  ClusterCount;
      HANDLE DeleteHandle;
    };
    PVOID                                    InfoBuffer;
  } SetFileInformation;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Члены

  • SetFileInformation: структура, содержащая следующие элементы.

  • Длина: длина буфера в байтах в InfoBuffer.

  • FileInformationClass: тип сведений для файла. Один из следующих:

    Ценность Значение
    ИнформацияОВыделенииФайлов Задайте FILE_ALLOCATION_INFORMATION для файла.
    FileBasicInformation Задайте FILE_BASIC_INFORMATION для файла.
    Информация о расположении файлов Задайте FILE_DISPOSITION_INFORMATION для файла.
    FileEndOfFileInformation Задайте FILE_END_OF_FILE_INFORMATION для файла.
    FileLinkInformation Задайте FILE_LINK_INFORMATION для файла.
    FilePositionInformation Задайте FILE_POSITION_INFORMATION для файла.
    Информация о переименовании файла Задайте FILE_RENAME_INFORMATION для файла.
    ИнформацияОДлинеДействительныхДанныхФайла Задайте FILE_VALID_DATA_LENGTH_INFORMATION для файла.
  • ParentOfTarget: для операций переименования или связывания. Если InfoBuffer-FileName> содержит полное имя файла или если InfoBuffer-RootDirectory> не имеет значения NULL, этот элемент является указателем объекта файла для родительского каталога файла, который является целью операции. В противном случае значение NULL.

  • ( неименованная структура )
    Структура, содержащая следующие элементы.

  • ReplaceIfExists: для операций переименования или связывания. Задайте значение TRUE , чтобы указать, что файл, уже существующий с тем же именем, должен быть заменен заданным файлом. Установите значение FALSE , если операция переименования или ссылки должна завершиться ошибкой, если файл с заданным именем уже существует.

  • AdvanceOnly: флаг для завершения операций с файлами. Это определяет использование элемента EndOfFileFILE_END_OF_FILE_INFORMATION структуры при использовании FileInformationClass == FileEndOfFileInformation. Если значение TRUE, новая допустимая длина данных для файла будет задана из EndOfFile , только если она увеличивает текущую допустимую длину данных. Если значение FALSE, новый размер файла задается из EndOfFile.

  • ClusterCount: зарезервировано для использования системы. Не используйте.

  • DeleteHandle: зарезервировано для использования системы. Не используйте.

  • InfoBuffer: указатель на входной буфер, содержащий заданные сведения о файле.

Замечания

Структура FLT_PARAMETERS для операций IRP_MJ_SET_INFORMATION содержит параметры для операции набора информации, представленной структурой данных обратного вызова (FLT_CALLBACK_DATA). Он содержится в FLT_IO_PARAMETER_BLOCK структуре.

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

Для элемента AdvanceOnly задано значение TRUE диспетчером кэша, чтобы уведомить файловую систему о переходе текущей допустимой длины данных на диске к новой допустимой длине данных в EndOfFile. Если AdvanceOnly имеет значение FALSE, новый размер файла в члене EndOfFile устанавливается, который может быть больше или меньше текущего размера файла.

Требования

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

См. также

FILE_ALLOCATION_INFORMATION

FILE_BASIC_INFORMATION

FILE_DISPOSITION_INFORMATION

FILE_END_OF_FILE_INFORMATION

FILE_LINK_INFORMATION

FILE_POSITION_INFORMATION

FILE_RENAME_INFORMATION

FILE_VALID_DATA_LENGTH_INFORMATION

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

IRP_MJ_SET_INFORMATION