Freigeben über


FLT_PARAMETERS Union (fltkernel.h)

Die FLT_PARAMETERS Union definiert für einen Minifilter die anforderungstypspezifischen Parameter, die einem E/A-Vorgang zugeordnet sind. Im Abschnitt Mitglieder auf dieser Referenzseite werden die Elemente ohne Beschreibungen aufgeführt. Springen Sie direkt zu Hinweise für Zeiger auf die tatsächlichen Strukturbeschreibungen.

Syntax

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;

Member

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

Hinweise

Die FLT_PARAMETERS-Struktur wird im Feld Parameter der FLT_IO_PARAMETER_BLOCK-Struktur für den Vorgang gespeichert. (Ein Zeiger auf die FLT_IO_PARAMETER_BLOCK Struktur wird im Feld Iopb der FLT_CALLBACK_DATA-Struktur für den Vorgang gespeichert.)

In der folgenden Tabelle sind die einzelnen Strukturmember der FLT_PARAMETERS Union aufgeführt und dann mit der Seite verknüpft, die die Elemente dieser Struktur für die zugeordnete IRP beschreibt. Die Strukturen werden in der Reihenfolge aufgeführt, in der sie innerhalb FLT_PARAMETERS definiert sind.

Strukturname BESCHREIBUNG
Erstellen FLT_PARAMETERS für IRP_MJ_CREATE
CreatePipe FLT_PARAMETERS für IRP_MJ_CREATE_NAMED_PIPE
CreateMailslot FLT_PARAMETERS für IRP_MJ_CREATE_MAILSLOT
Lesen FLT_PARAMETERS für IRP_MJ_READ
Schreiben FLT_PARAMETERS für IRP_MJ_WRITE
QueryFileInformation FLT_PARAMETERS für IRP_MJ_QUERY_INFORMATION
SetFileInformation FLT_PARAMETERS für IRP_MJ_SET_INFORMATION
QueryEa FLT_PARAMETERS für IRP_MJ_QUERY_EA
SetEa FLT_PARAMETERS für IRP_MJ_SET_EA
QueryVolumeInformation FLT_PARAMETERS für IRP_MJ_QUERY_VOLUME_INFORMATION
SetVolumeInformation FLT_PARAMETERS für IRP_MJ_SET_VOLUME_INFORMATION
Directorycontrol FLT_PARAMETERS für IRP_MJ_DIRECTORY_CONTROL
FileSystemControl FLT_PARAMETERS für IRP_MJ_FILE_SYSTEM_CONTROL
DeviceIoControl FLT_PARAMETERS für IRP_MJ_DEVICE_CONTROL und IRP_MJ_INTERNAL_DEVICE_CONTROL
LockControl FLT_PARAMETERS für IRP_MJ_LOCK_CONTROL
QuerySecurity FLT_PARAMETERS für IRP_MJ_QUERY_SECURITY
SetSecurity FLT_PARAMETERS für IRP_MJ_SET_SECURITY
QueryQuota FLT_PARAMETERS für IRP_MJ_QUERY_QUOTA
SetQuota FLT_PARAMETERS für IRP_MJ_SET_QUOTA
Pnp FLT_PARAMETERS für IRP_MJ_PNP
AcquireForSectionSynchronization FLT_PARAMETERS für IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION
AcquireForModifiedPageWriter FLT_PARAMETERS für IRP_MJ_ACQUIRE_FOR_MOD_WRITE
ReleaseForModifiedPageWriter FLT_PARAMETERS für IRP_MJ_RELEASE_FOR_MOD_WRITE
QueryOpen FLT_PARAMETERS für IRP_MJ_QUERY_OPEN
FastIoCheckIfPossible FLT_PARAMETERS für IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE
NetworkQueryOpen FLT_PARAMETERS für IRP_MJ_NETWORK_QUERY_OPEN
MdlRead FLT_PARAMETERS für IRP_MJ_MDL_READ
MdlReadComplete FLT_PARAMETERS für IRP_MJ_MDL_READ_COMPLETE
PrepareMdlWrite FLT_PARAMETERS für IRP_MJ_PREPARE_MDL_WRITE
MdlWriteComplete FLT_PARAMETERS für IRP_MJ_MDL_WRITE_COMPLETE
MountVolume FLT_PARAMETERS für IRP_MJ_VOLUME_MOUNT

Die folgenden E/A-Vorgänge verfügen über keine Parameter und daher keinen entsprechenden Member innerhalb der FLT_PARAMETERS-Struktur. Minifiltertreiber, die eine Rückrufroutine für diese E/A-Vorgänge registrieren, sollten die erforderliche Verarbeitung ausführen und zurückgeben:

  • 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

Beachten Sie, dass die Begriffe "acquire" oder "release" in einigen Vorgangsnamen, z IRP_MJ_ACQUIRE_FOR_CC_FLUSH . B. und IRP_MJ_RELEASE_FOR_CC_FLUSH, keine Garantie dafür bieten, dass ein Minifilter immer beide Vorgänge sieht. Genau wie bei Vorgängen wie IRP_MJ_CREATE und IRP_MJ_CLEANUPkann ein Minifilter durch andere Faktoren daran gehindert werden, den zweiten Vorgang zu beobachten, z. B. das Empfangen eines InstanceTeardownStartCallback vor dem zweiten Vorgang.

Anforderungen

Anforderung Wert
Header fltkernel.h (include Fltkernel.h)

Weitere Informationen

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FltSetCallbackDataDirty