IRP_MJ_SET_INFORMATION联合FLT_PARAMETERS

FLT_IO_PARAMETER_BLOCK结构的 MajorFunction 字段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:要为文件设置的信息类型。 以下之一:

    价值 含义
    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 == FileEndOfFileInformationEndOfFile 成员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 的作。

Cache Manager 将 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