FLT_PARAMETERS for IRP_MJ_QUERY_OPEN union

The following union component is used when the MajorFunction field of the FLT_IO_PARAMETER_BLOCK structure for the operation is IRP_MJ_QUERY_OPEN.

Syntax

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    PIRP                   Irp;
    PVOID                  FileInformation;
    PULONG                 Length;
    FILE_INFORMATION_CLASS FileInformationClass;
  } QueryOpen;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Members

  • Irp: A pointer to the IRP associated with this operation.

  • FileInformation: A pointer to a caller-allocated buffer into which the routine writes the requested information about the file object. The FileInformationClass member specifies the type of information that the caller requests.

  • Length: A pointer to the size, in bytes, of the buffer pointed to by FileInformation.

  • FileInformationClass: Specifies the type of information to be returned about the file, in the buffer that FileInformation points to. Device and intermediate drivers can specify any of the following FILE_INFORMATION_CLASS values. Other values cause the call to fail and should not be passed to PreQueryOpen/PostQueryOpen calls.

    FILE_INFORMATION_CLASS value Type of information returned
    FileStatInformation A FILE_STAT_INFORMATION structure. This structure contains an access mask. For more information about access masks, see ACCESS_MASK.
    FileStatLxInformation A FILE_STAT_LX_INFORMATION structure. This structure contains an access mask. For more information about access masks, see ACCESS_MASK.
    FileCaseSensitiveInformation A FILE_CASE_SENSITIVE_INFORMATION structure.
    FileStatBasicInformation A FILE_STAT_BASIC_INFORMATION structure.

Remarks

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

IRP_MJ_QUERY_OPEN is a file system (FSFilter) callback operation. A filter can reject the operation in both its pre-operation callback and post-operation callback using FLT_PREOP_DISALLOW_FSFILTER_IO and FLT_POSTOP_DISALLOW_FSFILTER_IO, respectively.

The File System does not fill in the Information field in the IO_STATUS block. Filters shouldn't inspect this value in their post-calls.

For more information about FSFilter callback operations, see the reference entry for FsRtlRegisterFileSystemFilterCallbacks.

Requirements

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

See also

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS

FsRtlRegisterFileSystemFilterCallbacks