FLT_PARAMETERS 공용 구조체(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 구조체의 매개 변수 필드에 저장됩니다. (FLT_IO_PARAMETER_BLOCK 구조체에 대한 포인터는 작업에 대한 FLT_CALLBACK_DATA 구조체의 Iopb 필드에 저장됩니다.

다음 표에서는 FLT_PARAMETERS 공용 구조체의 각 구조체 멤버를 나열한 다음, 연결된 IRP에 대한 해당 구조체의 멤버를 설명하는 페이지에 대한 링크를 나열합니다. 구조체는 FLT_PARAMETERS 내에 정의된 순서대로 나열됩니다.

구조체 이름 Description
만들기 IRP_MJ_CREATE 대한 FLT_PARAMETERS
CreatePipe IRP_MJ_CREATE_NAMED_PIPE 대한 FLT_PARAMETERS
CreateMailslot IRP_MJ_CREATE_MAILSLOT 대한 FLT_PARAMETERS
읽기 IRP_MJ_READ 대한 FLT_PARAMETERS
쓰기 IRP_MJ_WRITE 대한 FLT_PARAMETERS
QueryFileInformation IRP_MJ_QUERY_INFORMATION 대한 FLT_PARAMETERS
SetFileInformation IRP_MJ_SET_INFORMATION 대한 FLT_PARAMETERS
QueryEa IRP_MJ_QUERY_EA 대한 FLT_PARAMETERS
SetEa IRP_MJ_SET_EA 대한 FLT_PARAMETERS
QueryVolumeInformation IRP_MJ_QUERY_VOLUME_INFORMATION 대한 FLT_PARAMETERS
SetVolumeInformation IRP_MJ_SET_VOLUME_INFORMATION 대한 FLT_PARAMETERS
DirectoryControl IRP_MJ_DIRECTORY_CONTROL 대한 FLT_PARAMETERS
FileSystemControl IRP_MJ_FILE_SYSTEM_CONTROL 대한 FLT_PARAMETERS
DeviceIoControl IRP_MJ_DEVICE_CONTROL 및 IRP_MJ_INTERNAL_DEVICE_CONTROL 대한 FLT_PARAMETERS
LockControl IRP_MJ_LOCK_CONTROL 대한 FLT_PARAMETERS
QuerySecurity IRP_MJ_QUERY_SECURITY 대한 FLT_PARAMETERS
SetSecurity IRP_MJ_SET_SECURITY 대한 FLT_PARAMETERS
QueryQuota IRP_MJ_QUERY_QUOTA 대한 FLT_PARAMETERS
SetQuota IRP_MJ_SET_QUOTA 대한 FLT_PARAMETERS
Pnp IRP_MJ_PNP 대한 FLT_PARAMETERS
AcquireForSectionSynchronization IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 대한 FLT_PARAMETERS
AcquireForModifiedPageWriter IRP_MJ_ACQUIRE_FOR_MOD_WRITE 대한 FLT_PARAMETERS
ReleaseForModifiedPageWriter IRP_MJ_RELEASE_FOR_MOD_WRITE 대한 FLT_PARAMETERS
QueryOpen IRP_MJ_QUERY_OPEN 대한 FLT_PARAMETERS
FastIoCheckIfPossible IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE 대한 FLT_PARAMETERS
NetworkQueryOpen IRP_MJ_NETWORK_QUERY_OPEN 대한 FLT_PARAMETERS
MdlRead IRP_MJ_MDL_READ 대한 FLT_PARAMETERS
MdlReadComplete IRP_MJ_MDL_READ_COMPLETE 대한 FLT_PARAMETERS
PrepareMdlWrite IRP_MJ_PREPARE_MDL_WRITE 대한 FLT_PARAMETERS
MdlWriteComplete IRP_MJ_MDL_WRITE_COMPLETE 대한 FLT_PARAMETERS
MountVolume IRP_MJ_VOLUME_MOUNT 대한 FLT_PARAMETERS

다음 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_RELEASE_FOR_CC_FLUSH같은 IRP_MJ_ACQUIRE_FOR_CC_FLUSH 일부 작업 이름에서 "acquire" 또는 "release"라는 용어는 미니필터에 항상 두 작업이 모두 표시된다는 보장을 의미하지는 않습니다. 및 와 같은 IRP_MJ_CREATE 작업과 IRP_MJ_CLEANUP마찬가지로 미니필터는 두 번째 작업이 발생하기 전에 InstanceTeardownStartCallback 수신과 같은 다른 요인에 의해 두 번째 작업을 관찰하지 못할 수 있습니다.

요구 사항

요구 사항
헤더 fltkernel.h(Fltkernel.h 포함)

추가 정보

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FltSetCallbackDataDirty