FLT_PARAMETERS for IRP_MJ_SET_INFORMATION union

Union component used when the MajorFunction field of the FLT_IO_PARAMETER_BLOCK structure for the operation is IRP_MJ_SET_INFORMATION.

Syntax

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;

Members

  • SetFileInformation: Structure containing the following members.

  • Length: Length, in bytes, of the buffer at InfoBuffer.

  • FileInformationClass: Type of information to be set for the file. One of the following:

    Value Meaning
    FileAllocationInformation Set FILE_ALLOCATION_INFORMATION for the file.
    FileBasicInformation Set FILE_BASIC_INFORMATION for the file.
    FileDispositionInformation Set FILE_DISPOSITION_INFORMATION for the file.
    FileEndOfFileInformation Set FILE_END_OF_FILE_INFORMATION for the file.
    FileLinkInformation Set FILE_LINK_INFORMATION for the file.
    FilePositionInformation Set FILE_POSITION_INFORMATION for the file.
    FileRenameInformation Set FILE_RENAME_INFORMATION for the file.
    FileValidDataLengthInformation Set FILE_VALID_DATA_LENGTH_INFORMATION for the file.
  • ParentOfTarget: For rename or link operations. If InfoBuffer->FileName contains a fully qualified file name, or if InfoBuffer->RootDirectory is non-NULL, this member is a file object pointer for the parent directory of the file that is the target of the operation. Otherwise it is NULL.

  • ( unnamed struct )
    Structure containing the following members.

  • ReplaceIfExists: For rename or link operations. Set to TRUE to specify that a file that already exists with the same name is to be replaced with the given file. Set to FALSE if the rename or link operation should fail if a file with the given name already exists.

  • AdvanceOnly: A flag for end-of-file operations. This determines the use of the EndOfFile member FILE_END_OF_FILE_INFORMATION structure when FileInformationClass == FileEndOfFileInformation. If TRUE, a new valid data length for the file will be set from EndOfFile only if it increases the current valid data length. If FALSE, a new file size is set from EndOfFile.

  • ClusterCount: Reserved for system use. Do not use.

  • DeleteHandle: Reserved for system use. Do not use.

  • InfoBuffer: Pointer to an input buffer that contains the file information to be set.

Remarks

The FLT_PARAMETERS structure for IRP_MJ_SET_INFORMATION operations contains the parameters for a set-information operation represented by a callback data (FLT_CALLBACK_DATA) structure. It is contained in an FLT_IO_PARAMETER_BLOCK structure.

IRP_MJ_SET_INFORMATION is an IRP-based operation.

The AdvanceOnly member is set to TRUE by the cache manager to notify the file system to advance the current valid data length on the disk to the new valid data length in EndOfFile. If AdvanceOnly is FALSE, a new file size, in the EndOfFile member, is being set which can be larger or smaller than the current file size.

Requirements

Requirement type Requirement
Header Fltkernel.h (include Fltkernel.h)

See also

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