FLT_PARAMETERS union (fltkernel.h)

FLT_PARAMETERS共用体は、ミニフィルターに対して、I/O 操作に関連付けられている要求の種類固有のパラメーターを定義します。 このリファレンス ページの [メンバー ] セクションには、説明を提供せずにメンバーが一覧表示されます。 実際の構造体 説明へのポインターについては、「解説」に直接移動します。

構文

typedef union _FLT_PARAMETERS {
  struct {
    PIO_SECURITY_CONTEXT     SecurityContext;
    ULONG                    Options;
    USHORT POINTER_ALIGNMENT FileAttributes;
    USHORT                   ShareAccess;
    ULONG POINTER_ALIGNMENT  EaLength;
    PVOID                    EaBuffer;
    LARGE_INTEGER            AllocationSize;
  } Create;
  struct {
    PIO_SECURITY_CONTEXT     SecurityContext;
    ULONG                    Options;
    USHORT POINTER_ALIGNMENT Reserved;
    USHORT                   ShareAccess;
    PVOID                    Parameters;
  } CreatePipe;
  struct {
    PIO_SECURITY_CONTEXT     SecurityContext;
    ULONG                    Options;
    USHORT POINTER_ALIGNMENT Reserved;
    USHORT                   ShareAccess;
    PVOID                    Parameters;
  } CreateMailslot;
  struct {
    ULONG                   Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PVOID                   ReadBuffer;
    PMDL                    MdlAddress;
  } Read;
  struct {
    ULONG                   Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PVOID                   WriteBuffer;
    PMDL                    MdlAddress;
  } Write;
  struct {
    ULONG                                    Length;
    FILE_INFORMATION_CLASS POINTER_ALIGNMENT FileInformationClass;
    PVOID                                    InfoBuffer;
  } QueryFileInformation;
  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;
  struct {
    ULONG                   Length;
    PVOID                   EaList;
    ULONG                   EaListLength;
    ULONG POINTER_ALIGNMENT EaIndex;
    PVOID                   EaBuffer;
    PMDL                    MdlAddress;
  } QueryEa;
  struct {
    ULONG Length;
    PVOID EaBuffer;
    PMDL  MdlAddress;
  } SetEa;
  struct {
    ULONG                                  Length;
    FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass;
    PVOID                                  VolumeBuffer;
  } QueryVolumeInformation;
  struct {
    ULONG                                  Length;
    FS_INFORMATION_CLASS POINTER_ALIGNMENT FsInformationClass;
    PVOID                                  VolumeBuffer;
  } SetVolumeInformation;
  union {
    struct {
      ULONG                   Length;
      PUNICODE_STRING         FileName;
      FILE_INFORMATION_CLASS  FileInformationClass;
      ULONG POINTER_ALIGNMENT FileIndex;
      PVOID                   DirectoryBuffer;
      PMDL                    MdlAddress;
    } QueryDirectory;
    struct {
      ULONG                   Length;
      ULONG POINTER_ALIGNMENT CompletionFilter;
      ULONG POINTER_ALIGNMENT Spare1;
      ULONG POINTER_ALIGNMENT Spare2;
      PVOID                   DirectoryBuffer;
      PMDL                    MdlAddress;
    } NotifyDirectory;
    struct {
      ULONG                                                Length;
      ULONG POINTER_ALIGNMENT                              CompletionFilter;
      DIRECTORY_NOTIFY_INFORMATION_CLASS POINTER_ALIGNMENT DirectoryNotifyInformationClass;
      ULONG POINTER_ALIGNMENT                              Spare2;
      PVOID                                                DirectoryBuffer;
      PMDL                                                 MdlAddress;
    } NotifyDirectoryEx;
  } DirectoryControl;
  union {
    struct {
      PVPB           Vpb;
      PDEVICE_OBJECT DeviceObject;
    } VerifyVolume;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT FsControlCode;
    } Common;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT FsControlCode;
      PVOID                   InputBuffer;
      PVOID                   OutputBuffer;
      PMDL                    OutputMdlAddress;
    } Neither;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT FsControlCode;
      PVOID                   SystemBuffer;
    } Buffered;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT FsControlCode;
      PVOID                   InputSystemBuffer;
      PVOID                   OutputBuffer;
      PMDL                    OutputMdlAddress;
    } Direct;
  } FileSystemControl;
  union {
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT IoControlCode;
    } Common;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT IoControlCode;
      PVOID                   InputBuffer;
      PVOID                   OutputBuffer;
      PMDL                    OutputMdlAddress;
    } Neither;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT IoControlCode;
      PVOID                   SystemBuffer;
    } Buffered;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT IoControlCode;
      PVOID                   InputSystemBuffer;
      PVOID                   OutputBuffer;
      PMDL                    OutputMdlAddress;
    } Direct;
    struct {
      ULONG                   OutputBufferLength;
      ULONG POINTER_ALIGNMENT InputBufferLength;
      ULONG POINTER_ALIGNMENT IoControlCode;
      PVOID                   InputBuffer;
      PVOID                   OutputBuffer;
    } FastIo;
  } DeviceIoControl;
  struct {
    PLARGE_INTEGER          Length;
    ULONG POINTER_ALIGNMENT Key;
    LARGE_INTEGER           ByteOffset;
    PEPROCESS               ProcessId;
    BOOLEAN                 FailImmediately;
    BOOLEAN                 ExclusiveLock;
  } LockControl;
  struct {
    SECURITY_INFORMATION    SecurityInformation;
    ULONG POINTER_ALIGNMENT Length;
    PVOID                   SecurityBuffer;
    PMDL                    MdlAddress;
  } QuerySecurity;
  struct {
    SECURITY_INFORMATION SecurityInformation;
    PSECURITY_DESCRIPTOR SecurityDescriptor;
  } SetSecurity;
  struct {
    ULONG_PTR ProviderId;
    PVOID     DataPath;
    ULONG     BufferSize;
    PVOID     Buffer;
  } WMI;
  struct {
    ULONG                       Length;
    PSID                        StartSid;
    PFILE_GET_QUOTA_INFORMATION SidList;
    ULONG                       SidListLength;
    PVOID                       QuotaBuffer;
    PMDL                        MdlAddress;
  } QueryQuota;
  struct {
    ULONG Length;
    PVOID QuotaBuffer;
    PMDL  MdlAddress;
  } SetQuota;
  union {
    struct {
      PCM_RESOURCE_LIST AllocatedResources;
      PCM_RESOURCE_LIST AllocatedResourcesTranslated;
    } StartDevice;
    struct {
      DEVICE_RELATION_TYPE Type;
    } QueryDeviceRelations;
    struct {
      const GUID *InterfaceType;
      USHORT     Size;
      USHORT     Version;
      PINTERFACE Interface;
      PVOID      InterfaceSpecificData;
    } QueryInterface;
    struct {
      PDEVICE_CAPABILITIES Capabilities;
    } DeviceCapabilities;
    struct {
      PIO_RESOURCE_REQUIREMENTS_LIST IoResourceRequirementList;
    } FilterResourceRequirements;
    struct {
      ULONG                   WhichSpace;
      PVOID                   Buffer;
      ULONG                   Offset;
      ULONG POINTER_ALIGNMENT Length;
    } ReadWriteConfig;
    struct {
      BOOLEAN Lock;
    } SetLock;
    struct {
      BUS_QUERY_ID_TYPE IdType;
    } QueryId;
    struct {
      DEVICE_TEXT_TYPE       DeviceTextType;
      LCID POINTER_ALIGNMENT LocaleId;
    } QueryDeviceText;
    struct {
      BOOLEAN                                          InPath;
      BOOLEAN                                          Reserved[3];
      DEVICE_USAGE_NOTIFICATION_TYPE POINTER_ALIGNMENT Type;
    } UsageNotification;
  } Pnp;
  struct {
    FS_FILTER_SECTION_SYNC_TYPE    SyncType;
    ULONG                          PageProtection;
    PFS_FILTER_SECTION_SYNC_OUTPUT OutputInformation;
    ULONG                          Flags;
    ULONG                          AllocationAttributes;
  } AcquireForSectionSynchronization;
  struct {
    PLARGE_INTEGER EndingOffset;
    PERESOURCE     *ResourceToRelease;
  } AcquireForModifiedPageWriter;
  struct {
    PERESOURCE ResourceToRelease;
  } ReleaseForModifiedPageWriter;
  struct {
    PIRP                   Irp;
    PVOID                  FileInformation;
    PULONG                 Length;
    FILE_INFORMATION_CLASS FileInformationClass;
  } QueryOpen;
  struct {
    LARGE_INTEGER             FileOffset;
    ULONG                     Length;
    ULONG POINTER_ALIGNMENT   LockKey;
    BOOLEAN POINTER_ALIGNMENT CheckForReadOperation;
  } FastIoCheckIfPossible;
  struct {
    PIRP                           Irp;
    PFILE_NETWORK_OPEN_INFORMATION NetworkInformation;
  } NetworkQueryOpen;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } MdlRead;
  struct {
    PMDL MdlChain;
  } MdlReadComplete;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } PrepareMdlWrite;
  struct {
    LARGE_INTEGER FileOffset;
    PMDL          MdlChain;
  } MdlWriteComplete;
  struct {
    ULONG DeviceType;
  } MountVolume;
  struct {
    PVOID         Argument1;
    PVOID         Argument2;
    PVOID         Argument3;
    PVOID         Argument4;
    PVOID         Argument5;
    LARGE_INTEGER Argument6;
  } Others;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

メンバー

Create

Create.SecurityContext

Create.Options

Create.FileAttributes

Create.ShareAccess

Create.EaLength

Create.EaBuffer

Create.AllocationSize

CreatePipe

CreatePipe.SecurityContext

CreatePipe.Options

CreatePipe.Reserved

CreatePipe.ShareAccess

CreatePipe.Parameters

CreateMailslot

CreateMailslot.SecurityContext

CreateMailslot.Options

CreateMailslot.Reserved

CreateMailslot.ShareAccess

CreateMailslot.Parameters

Read

Read.Length

Read.Key

Read.ByteOffset

Read.ReadBuffer

Read.MdlAddress

Write

Write.Length

Write.Key

Write.ByteOffset

Write.WriteBuffer

Write.MdlAddress

QueryFileInformation

QueryFileInformation.Length

QueryFileInformation.FileInformationClass

QueryFileInformation.InfoBuffer

SetFileInformation

SetFileInformation.Length

SetFileInformation.FileInformationClass

SetFileInformation.ParentOfTarget

SetFileInformation.ReplaceIfExists

SetFileInformation.AdvanceOnly

SetFileInformation.ClusterCount

SetFileInformation.DeleteHandle

SetFileInformation.InfoBuffer

QueryEa

QueryEa.Length

QueryEa.EaList

QueryEa.EaListLength

QueryEa.EaIndex

QueryEa.EaBuffer

QueryEa.MdlAddress

SetEa

SetEa.Length

SetEa.EaBuffer

SetEa.MdlAddress

QueryVolumeInformation

QueryVolumeInformation.Length

QueryVolumeInformation.FsInformationClass

QueryVolumeInformation.VolumeBuffer

SetVolumeInformation

SetVolumeInformation.Length

SetVolumeInformation.FsInformationClass

SetVolumeInformation.VolumeBuffer

DirectoryControl

DirectoryControl.QueryDirectory

DirectoryControl.QueryDirectory.Length

DirectoryControl.QueryDirectory.FileName

DirectoryControl.QueryDirectory.FileInformationClass

DirectoryControl.QueryDirectory.FileIndex

DirectoryControl.QueryDirectory.DirectoryBuffer

DirectoryControl.QueryDirectory.MdlAddress

DirectoryControl.NotifyDirectory

DirectoryControl.NotifyDirectory.Length

DirectoryControl.NotifyDirectory.CompletionFilter

DirectoryControl.NotifyDirectory.Spare1

DirectoryControl.NotifyDirectory.Spare2

DirectoryControl.NotifyDirectory.DirectoryBuffer

DirectoryControl.NotifyDirectory.MdlAddress

DirectoryControl.NotifyDirectoryEx

DirectoryControl.NotifyDirectoryEx.Length

DirectoryControl.NotifyDirectoryEx.CompletionFilter

DirectoryControl.NotifyDirectoryEx.DirectoryNotifyInformationClass

DirectoryControl.NotifyDirectoryEx.Spare2

DirectoryControl.NotifyDirectoryEx.DirectoryBuffer

DirectoryControl.NotifyDirectoryEx.MdlAddress

FileSystemControl

FileSystemControl.VerifyVolume

FileSystemControl.VerifyVolume.Vpb

FileSystemControl.VerifyVolume.DeviceObject

FileSystemControl.Common

FileSystemControl.Common.OutputBufferLength

FileSystemControl.Common.InputBufferLength

FileSystemControl.Common.FsControlCode

FileSystemControl.Neither

FileSystemControl.Neither.OutputBufferLength

FileSystemControl.Neither.InputBufferLength

FileSystemControl.Neither.FsControlCode

FileSystemControl.Neither.InputBuffer

FileSystemControl.Neither.OutputBuffer

FileSystemControl.Neither.OutputMdlAddress

FileSystemControl.Buffered

FileSystemControl.Buffered.OutputBufferLength

FileSystemControl.Buffered.InputBufferLength

FileSystemControl.Buffered.FsControlCode

FileSystemControl.Buffered.SystemBuffer

FileSystemControl.Direct

FileSystemControl.Direct.OutputBufferLength

FileSystemControl.Direct.InputBufferLength

FileSystemControl.Direct.FsControlCode

FileSystemControl.Direct.InputSystemBuffer

FileSystemControl.Direct.OutputBuffer

FileSystemControl.Direct.OutputMdlAddress

DeviceIoControl

DeviceIoControl.Common

DeviceIoControl.Common.OutputBufferLength

DeviceIoControl.Common.InputBufferLength

DeviceIoControl.Common.IoControlCode

DeviceIoControl.Neither

DeviceIoControl.Neither.OutputBufferLength

DeviceIoControl.Neither.InputBufferLength

DeviceIoControl.Neither.IoControlCode

DeviceIoControl.Neither.InputBuffer

DeviceIoControl.Neither.OutputBuffer

DeviceIoControl.Neither.OutputMdlAddress

DeviceIoControl.Buffered

DeviceIoControl.Buffered.OutputBufferLength

DeviceIoControl.Buffered.InputBufferLength

DeviceIoControl.Buffered.IoControlCode

DeviceIoControl.Buffered.SystemBuffer

DeviceIoControl.Direct

DeviceIoControl.Direct.OutputBufferLength

DeviceIoControl.Direct.InputBufferLength

DeviceIoControl.Direct.IoControlCode

DeviceIoControl.Direct.InputSystemBuffer

DeviceIoControl.Direct.OutputBuffer

DeviceIoControl.Direct.OutputMdlAddress

DeviceIoControl.FastIo

DeviceIoControl.FastIo.OutputBufferLength

DeviceIoControl.FastIo.InputBufferLength

DeviceIoControl.FastIo.IoControlCode

DeviceIoControl.FastIo.InputBuffer

DeviceIoControl.FastIo.OutputBuffer

LockControl

LockControl.Length

LockControl.Key

LockControl.ByteOffset

LockControl.ProcessId

LockControl.FailImmediately

LockControl.ExclusiveLock

QuerySecurity

QuerySecurity.SecurityInformation

QuerySecurity.Length

QuerySecurity.SecurityBuffer

QuerySecurity.MdlAddress

SetSecurity

SetSecurity.SecurityInformation

SetSecurity.SecurityDescriptor

WMI

WMI.ProviderId

WMI.DataPath

WMI.BufferSize

WMI.Buffer

QueryQuota

QueryQuota.Length

QueryQuota.StartSid

QueryQuota.SidList

QueryQuota.SidListLength

QueryQuota.QuotaBuffer

QueryQuota.MdlAddress

SetQuota

SetQuota.Length

SetQuota.QuotaBuffer

SetQuota.MdlAddress

Pnp

Pnp.StartDevice

Pnp.StartDevice.AllocatedResources

Pnp.StartDevice.AllocatedResourcesTranslated

Pnp.QueryDeviceRelations

Pnp.QueryDeviceRelations.Type

Pnp.QueryInterface

Pnp.QueryInterface.InterfaceType

Pnp.QueryInterface.Size

Pnp.QueryInterface.Version

Pnp.QueryInterface.Interface

Pnp.QueryInterface.InterfaceSpecificData

Pnp.DeviceCapabilities

Pnp.DeviceCapabilities.Capabilities

Pnp.FilterResourceRequirements

Pnp.FilterResourceRequirements.IoResourceRequirementList

Pnp.ReadWriteConfig

Pnp.ReadWriteConfig.WhichSpace

Pnp.ReadWriteConfig.Buffer

Pnp.ReadWriteConfig.Offset

Pnp.ReadWriteConfig.Length

Pnp.SetLock

Pnp.SetLock.Lock

Pnp.QueryId

Pnp.QueryId.IdType

Pnp.QueryDeviceText

Pnp.QueryDeviceText.DeviceTextType

Pnp.QueryDeviceText.LocaleId

Pnp.UsageNotification

Pnp.UsageNotification.InPath

Pnp.UsageNotification.Reserved[3]

Pnp.UsageNotification.Type

AcquireForSectionSynchronization

AcquireForSectionSynchronization.SyncType

AcquireForSectionSynchronization.PageProtection

AcquireForSectionSynchronization.OutputInformation

AcquireForSectionSynchronization.Flags

AcquireForSectionSynchronization.AllocationAttributes

AcquireForModifiedPageWriter

AcquireForModifiedPageWriter.EndingOffset

AcquireForModifiedPageWriter.ResourceToRelease

ReleaseForModifiedPageWriter

ReleaseForModifiedPageWriter.ResourceToRelease

QueryOpen

QueryOpen.Irp

QueryOpen.FileInformation

QueryOpen.Length

QueryOpen.FileInformationClass

FastIoCheckIfPossible

FastIoCheckIfPossible.FileOffset

FastIoCheckIfPossible.Length

FastIoCheckIfPossible.LockKey

FastIoCheckIfPossible.CheckForReadOperation

NetworkQueryOpen

NetworkQueryOpen.Irp

NetworkQueryOpen.NetworkInformation

MdlRead

MdlRead.FileOffset

MdlRead.Length

MdlRead.Key

MdlRead.MdlChain

MdlReadComplete

MdlReadComplete.MdlChain

PrepareMdlWrite

PrepareMdlWrite.FileOffset

PrepareMdlWrite.Length

PrepareMdlWrite.Key

PrepareMdlWrite.MdlChain

MdlWriteComplete

MdlWriteComplete.FileOffset

MdlWriteComplete.MdlChain

MountVolume

MountVolume.DeviceType

Others

Others.Argument1

Others.Argument2

Others.Argument3

Others.Argument4

Others.Argument5

Others.Argument6

注釈

FLT_PARAMETERS構造体は、操作のFLT_IO_PARAMETER_BLOCK構造体の Parameters フィールドに格納されます。 (FLT_IO_PARAMETER_BLOCK構造体へのポインターは、操作のFLT_CALLBACK_DATA構造体の Iopb フィールドに格納されます)。

次の表に、FLT_PARAMETERS共用体の各構造体メンバーを示し、関連付けられた IRP の構造体のメンバーを説明するページへのリンクを示します。 構造体は、FLT_PARAMETERS内で定義されている順序で一覧表示されます。

構造体名 説明
作成 FLT_PARAMETERS (IRP_MJ_CREATE 用)
CreatePipe FLT_PARAMETERS for IRP_MJ_CREATE_NAMED_PIPE
CreateMailslot FLT_PARAMETERS for IRP_MJ_CREATE_MAILSLOT
読み取り FLT_PARAMETERS (IRP_MJ_READ 用)
書き込み FLT_PARAMETERS (IRP_MJ_WRITE 用)
QueryFileInformation FLT_PARAMETERS (IRP_MJ_QUERY_INFORMATION 用)
SetFileInformation FLT_PARAMETERS (IRP_MJ_SET_INFORMATION 用)
QueryEa FLT_PARAMETERS (IRP_MJ_QUERY_EA 用)
SetEa FLT_PARAMETERS (IRP_MJ_SET_EA 用)
QueryVolumeInformation FLT_PARAMETERS (IRP_MJ_QUERY_VOLUME_INFORMATION 用)
SetVolumeInformation FLT_PARAMETERS (IRP_MJ_SET_VOLUME_INFORMATION 用)
DirectoryControl FLT_PARAMETERS (IRP_MJ_DIRECTORY_CONTROL 用)
FileSystemControl FLT_PARAMETERS (IRP_MJ_FILE_SYSTEM_CONTROL 用)
DeviceIoControl FLT_PARAMETERS (IRP_MJ_DEVICE_CONTROL と IRP_MJ_INTERNAL_DEVICE_CONTROL 用)
LockControl FLT_PARAMETERS (IRP_MJ_LOCK_CONTROL 用)
QuerySecurity FLT_PARAMETERS (IRP_MJ_QUERY_SECURITY 用)
SetSecurity FLT_PARAMETERS (IRP_MJ_SET_SECURITY 用)
QueryQuota FLT_PARAMETERS (IRP_MJ_QUERY_QUOTA 用)
SetQuota FLT_PARAMETERS (IRP_MJ_SET_QUOTA 用)
Pnp FLT_PARAMETERS (IRP_MJ_PNP 用)
AcquireForSectionSynchronization FLT_PARAMETERS (IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 用)
AcquireForModifiedPageWriter FLT_PARAMETERS (IRP_MJ_ACQUIRE_FOR_MOD_WRITE 用)
ReleaseForModifiedPageWriter FLT_PARAMETERS (IRP_MJ_RELEASE_FOR_MOD_WRITE 用)
QueryOpen FLT_PARAMETERS (IRP_MJ_QUERY_OPEN 用)
FastIoCheckIfPossible FLT_PARAMETERS (IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE 用)
NetworkQueryOpen FLT_PARAMETERS (IRP_MJ_NETWORK_QUERY_OPEN 用)
MdlRead FLT_PARAMETERS (IRP_MJ_MDL_READ 用)
MdlReadComplete FLT_PARAMETERS (IRP_MJ_MDL_READ_COMPLETE 用)
PrepareMdlWrite FLT_PARAMETERS (IRP_MJ_PREPARE_MDL_WRITE 用)
MdlWriteComplete FLT_PARAMETERS (IRP_MJ_MDL_WRITE_COMPLETE 用)
MountVolume FLT_PARAMETERS (IRP_MJ_VOLUME_MOUNT 用)

次の I/O 操作にはパラメーターがないため、FLT_PARAMETERS構造体内に対応するメンバーがありません。 これらの I/O 操作のコールバック ルーチンを登録するミニフィルター ドライバーは、必要な処理を実行し、次を返す必要があります。

  • IRP_MJ_ACQUIRE_FOR_CC_FLUSH
  • IRP_MJ_CLEANUP
  • IRP_MJ_CLOSE
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_RELEASE_FOR_CC_FLUSH
  • IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION
  • IRP_MJ_SHUTDOWN
  • IRP_MJ_VOLUME_DISMOUNT

や などのIRP_MJ_ACQUIRE_FOR_CC_FLUSHIRP_MJ_RELEASE_FOR_CC_FLUSH一部の操作名の "acquire" または "release" という用語は、ミニフィルターで常に両方の操作が表示されることを保証するものではありません。 や などの操作と同様に、ミニフィルターは、2 番目の操作が発生する前に InstanceTeardownStartCallback を受け取るなど、他の要因によって 2 番目の操作を監視できない場合があります。IRP_MJ_CREATEIRP_MJ_CLEANUP

要件

要件
Header fltkernel.h (Fltkernel.h を含む)

こちらもご覧ください

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FltSetCallbackDataDirty