IRP_MJ_SET_INFORMATION union 的FLT_PARAMETERS

IRP_MJ_SET_INFORMATION操作的FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段时使用的联合组件。

语法

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:要为文件设置的信息类型。 下列类型作之一:

    含义
    FileAllocationInformation 为文件设置 FILE_ALLOCATION_INFORMATION
    FileBasicInformation 设置 文件的FILE_BASIC_INFORMATION
    FileDispositionInformation 为文件设置 FILE_DISPOSITION_INFORMATION
    FileEndOfFileInformation 设置 文件的FILE_END_OF_FILE_INFORMATION
    FileLinkInformation 为文件设置 FILE_LINK_INFORMATION
    FilePositionInformation 为文件设置 FILE_POSITION_INFORMATION
    FileRenameInformation 为文件设置 FILE_RENAME_INFORMATION
    FileValidDataLengthInformation 设置 文件的FILE_VALID_DATA_LENGTH_INFORMATION
  • ParentOfTarget:用于重命名或链接操作。 如果 InfoBuffer-FileName> 包含完全限定的文件名,或者如果 InfoBuffer-RootDirectory> 为非 NULL,则此成员是作为操作目标的文件的父目录的文件对象指针。 否则为 NULL

  • ( 未命名结构 )
    包含以下成员的结构。

  • ReplaceIfExists:用于重命名或链接操作。 设置为 TRUE 可指定已存在的同名文件将替换为给定文件。 如果已存在具有给定名称的文件,则重命名或链接操作应失败,则设置为 FALSE

  • AdvanceOnly:文件结束操作的标志。 这决定了在 FileInformationClass == FileEndOfFileInformation 时 EndOfFile 成员FILE_END_OF_FILE_INFORMATION结构的使用。 如果 为 TRUE,则只有在增加当前有效数据长度时,才会从 EndOfFile 设置文件的新有效数据长度。 如果 为 FALSE,则从 EndOfFile 设置新的文件大小。

  • ClusterCount:保留供系统使用。 请勿使用。

  • DeleteHandle:保留供系统使用。 请勿使用。

  • InfoBuffer:指向包含要设置的文件信息的输入缓冲区的指针。

注解

IRP_MJ_SET_INFORMATION操作的FLT_PARAMETERS结构包含由回调数据表示的集信息操作的参数 (FLT_CALLBACK_DATA) 结构。 它包含在FLT_IO_PARAMETER_BLOCK结构中。

IRP_MJ_SET_INFORMATION是基于 IRP 的操作。

缓存管理器将 AdvanceOnly 成员设置为 TRUE ,以通知文件系统将磁盘上的当前有效数据长度提升到 EndOfFile 中的新有效数据长度。 如果 AdvanceOnlyFALSE,则将设置 EndOfFile 成员中的新文件大小,该大小可能大于或小于当前文件大小。

要求

要求类型 要求
标头 Fltkernel.h (包括 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