ReactOS  0.4.12-dev-36-g472787f
fltkernel.h File Reference
#include <ntifs.h>
#include <fltuserstructures.h>
#include <initguid.h>
#include "pshpack4.h"
#include "poppack.h"
Include dependency graph for fltkernel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  _FLT_PARAMETERS
 
struct  _FLT_IO_PARAMETER_BLOCK
 
struct  _FLT_CALLBACK_DATA
 
struct  _FLT_RELATED_OBJECTS
 
struct  _FLT_RELATED_CONTEXTS
 
struct  _FLT_CONTEXT_REGISTRATION
 
struct  _FLT_OPERATION_REGISTRATION
 
struct  _FLT_TAG_DATA_BUFFER
 
struct  _FLT_NAME_CONTROL
 
struct  _FLT_REGISTRATION
 
struct  _FLT_FILE_NAME_INFORMATION
 
struct  _FLT_VOLUME_PROPERTIES
 
struct  _FLT_CALLBACK_DATA_QUEUE
 

Macros

#define __FLTKERNEL__
 
#define FLT_MGR_BASELINE
 
#define FLT_MGR_AFTER_XPSP2
 
#define FLT_MGR_LONGHORN   (NTDDI_VERSION >= NTDDI_VISTA)
 
#define FLT_MGR_WIN7   (NTDDI_VERSION >= NTDDI_WIN7)
 
#define FLT_ASSERT(_e)   NT_ASSERT(_e)
 
#define FLT_ASSERTMSG(_m, _e)   NT_ASSERTMSG(_m, _e)
 
#define Add2Ptr(P, I)   ((PVOID)((PUCHAR)(P) + (I)))
 
#define PtrOffset(B, O)   ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B)))
 
#define ROUND_TO_SIZE(_length, _alignment)   ((((ULONG_PTR)(_length)) + ((_alignment)-1)) & ~(ULONG_PTR) ((_alignment) - 1))
 
#define IS_ALIGNED(_pointer, _alignment)   ((((ULONG_PTR) (_pointer)) & ((_alignment) - 1)) == 0)
 
#define IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-1)
 
#define IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-2)
 
#define IRP_MJ_ACQUIRE_FOR_MOD_WRITE   ((UCHAR)-3)
 
#define IRP_MJ_RELEASE_FOR_MOD_WRITE   ((UCHAR)-4)
 
#define IRP_MJ_ACQUIRE_FOR_CC_FLUSH   ((UCHAR)-5)
 
#define IRP_MJ_RELEASE_FOR_CC_FLUSH   ((UCHAR)-6)
 
#define IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE   ((UCHAR)-13)
 
#define IRP_MJ_NETWORK_QUERY_OPEN   ((UCHAR)-14)
 
#define IRP_MJ_MDL_READ   ((UCHAR)-15)
 
#define IRP_MJ_MDL_READ_COMPLETE   ((UCHAR)-16)
 
#define IRP_MJ_PREPARE_MDL_WRITE   ((UCHAR)-17)
 
#define IRP_MJ_MDL_WRITE_COMPLETE   ((UCHAR)-18)
 
#define IRP_MJ_VOLUME_MOUNT   ((UCHAR)-19)
 
#define IRP_MJ_VOLUME_DISMOUNT   ((UCHAR)-20)
 
#define IRP_MJ_OPERATION_END   ((UCHAR)0x80)
 
#define FLT_INTERNAL_OPERATION_COUNT   22
 
#define NULL_CONTEXT   ((PFLT_CONTEXT)NULL)
 
#define FLTFL_CALLBACK_DATA_REISSUE_MASK   0x0000FFFF
 
#define FLTFL_CALLBACK_DATA_IRP_OPERATION   0x00000001
 
#define FLTFL_CALLBACK_DATA_FAST_IO_OPERATION   0x00000002
 
#define FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION   0x00000004
 
#define FLTFL_CALLBACK_DATA_SYSTEM_BUFFER   0x00000008
 
#define FLTFL_CALLBACK_DATA_GENERATED_IO   0x00010000
 
#define FLTFL_CALLBACK_DATA_REISSUED_IO   0x00020000
 
#define FLTFL_CALLBACK_DATA_DRAINING_IO   0x00040000
 
#define FLTFL_CALLBACK_DATA_POST_OPERATION   0x00080000
 
#define FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER   0x00100000
 
#define FLTFL_CALLBACK_DATA_DIRTY   0x80000000
 
#define FLT_SET_CALLBACK_DATA_DIRTY(Data)   FltSetCallbackDataDirty(Data)
 
#define FLT_CLEAR_CALLBACK_DATA_DIRTY(Data)   FltClearCallbackDataDirty(Data)
 
#define FLT_IS_CALLBACK_DATA_DIRTY(Data)   FltIsCallbackDataDirty(Data)
 
#define FLT_IS_IRP_OPERATION(Data)   (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_IRP_OPERATION))
 
#define FLT_IS_FASTIO_OPERATION(Data)   (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FAST_IO_OPERATION))
 
#define FLT_IS_FS_FILTER_OPERATION(Data)   (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION))
 
#define FLT_IS_REISSUED_IO(Data)   (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_REISSUED_IO))
 
#define FLT_IS_SYSTEM_BUFFER(Data)   (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_SYSTEM_BUFFER))
 
#define FLT_VOLUME_CONTEXT   0x0001
 
#define FLT_INSTANCE_CONTEXT   0x0002
 
#define FLT_FILE_CONTEXT   0x0004
 
#define FLT_STREAM_CONTEXT   0x0008
 
#define FLT_STREAMHANDLE_CONTEXT   0x0010
 
#define FLT_TRANSACTION_CONTEXT   0x0020
 
#define FLT_CONTEXT_END   0xffff
 
#define FLT_ALL_CONTEXTS
 
#define FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY   0x00000001
 
#define FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH   0x0001
 
#define FLT_VARIABLE_SIZED_CONTEXTS   ((SIZE_T)-1)
 
#define FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT   0x00000001
 
#define FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT   0x00000002
 
#define FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME   0x00000004
 
#define FLTFL_INSTANCE_SETUP_DETACHED_VOLUME   0x00000008
 
#define FLT_MAX_TRANSACTION_NOTIFICATIONS
 
#define FLTFL_INSTANCE_TEARDOWN_MANUAL   0x00000001
 
#define FLTFL_INSTANCE_TEARDOWN_FILTER_UNLOAD   0x00000002
 
#define FLTFL_INSTANCE_TEARDOWN_MANDATORY_FILTER_UNLOAD   0x00000004
 
#define FLTFL_INSTANCE_TEARDOWN_VOLUME_DISMOUNT   0x00000008
 
#define FLTFL_INSTANCE_TEARDOWN_INTERNAL_ERROR   0x00000010
 
#define FLTFL_POST_OPERATION_DRAINING   0x00000001
 
#define FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO   0x00000001
 
#define FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO   0x00000002
 
#define FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO   0x00000004
 
#define FLT_TAG_DATA_BUFFER_HEADER_SIZE   FIELD_OFFSET(FLT_TAG_DATA_BUFFER, GenericReparseBuffer)
 
#define FLTFL_FILTER_UNLOAD_MANDATORY   0x00000001
 
#define FLTFL_NORMALIZE_NAME_CASE_SENSITIVE   0x01
 
#define FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME   0x02
 
#define FLT_REGISTRATION_VERSION_0200   0x0200
 
#define FLT_REGISTRATION_VERSION_0201   0x0201
 
#define FLT_REGISTRATION_VERSION_0202   0x0202
 
#define FLT_REGISTRATION_VERSION_0203   0x0203
 
#define FLT_REGISTRATION_VERSION   FLT_REGISTRATION_VERSION_0202
 
#define FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP   0x00000001
 
#define FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS   0x00000002
 
#define FLTFL_IO_OPERATION_NON_CACHED   0x00000001
 
#define FLTFL_IO_OPERATION_PAGING   0x00000002
 
#define FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET   0x00000004
 
#define FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING   0x00000008
 
#define FLT_VALID_FILE_NAME_FORMATS   0x000000ff
 
#define FLT_FILE_NAME_NORMALIZED   0x01
 
#define FLT_FILE_NAME_OPENED   0x02
 
#define FLT_FILE_NAME_SHORT   0x03
 
#define FltGetFileNameFormat(_NameOptions)   ((_NameOptions) & FLT_VALID_FILE_NAME_FORMATS)
 
#define FLT_VALID_FILE_NAME_QUERY_METHODS   0x0000ff00
 
#define FLT_FILE_NAME_QUERY_DEFAULT   0x0100
 
#define FLT_FILE_NAME_QUERY_CACHE_ONLY   0x0200
 
#define FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY   0x0300
 
#define FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP   0x0400
 
#define FltGetFileNameQueryMethod(_NameOptions)   ((_NameOptions) & FLT_VALID_FILE_NAME_QUERY_METHODS)
 
#define FLT_VALID_FILE_NAME_FLAGS   0xff000000
 
#define FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER   0x01000000
 
#define FLT_FILE_NAME_DO_NOT_CACHE   0x02000000
 
#define FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE   0x04000000
 
#define FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT   0x0001
 
#define FLTFL_FILE_NAME_PARSED_EXTENSION   0x0002
 
#define FLTFL_FILE_NAME_PARSED_STREAM   0x0004
 
#define FLTFL_FILE_NAME_PARSED_PARENT_DIR   0x0008
 
#define FLT_PORT_CONNECT   0x0001
 
#define FLT_PORT_ALL_ACCESS   (FLT_PORT_CONNECT | STANDARD_RIGHTS_ALL)
 

Typedefs

typedef struct _FLT_FILTERPFLT_FILTER
 
typedef struct _FLT_VOLUMEPFLT_VOLUME
 
typedef struct _FLT_INSTANCEPFLT_INSTANCE
 
typedef struct _FLT_PORT * PFLT_PORT
 
typedef PVOID PFLT_CONTEXT
 
typedef union _FLT_PARAMETERS FLT_PARAMETERS
 
typedef union _FLT_PARAMETERSPFLT_PARAMETERS
 
typedef struct _FLT_IO_PARAMETER_BLOCK FLT_IO_PARAMETER_BLOCK
 
typedef struct _FLT_IO_PARAMETER_BLOCKPFLT_IO_PARAMETER_BLOCK
 
typedef USHORT FLT_CONTEXT_TYPE
 
typedef ULONG FLT_CALLBACK_DATA_FLAGS
 
typedef ULONG FLT_ALLOCATE_CALLBACK_DATA_FLAGS
 
typedef struct _FLT_CALLBACK_DATA FLT_CALLBACK_DATA
 
typedef struct _FLT_CALLBACK_DATAPFLT_CALLBACK_DATA
 
typedef struct _FLT_RELATED_OBJECTS FLT_RELATED_OBJECTS
 
typedef struct _FLT_RELATED_OBJECTSPFLT_RELATED_OBJECTS
 
typedef const struct _FLT_RELATED_OBJECTSPCFLT_RELATED_OBJECTS
 
typedef struct _FLT_RELATED_CONTEXTS FLT_RELATED_CONTEXTS
 
typedef struct _FLT_RELATED_CONTEXTSPFLT_RELATED_CONTEXTS
 
typedef VOID(FLTAPI * PFLT_CONTEXT_CLEANUP_CALLBACK) (_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
 
typedef PVOID(FLTAPI * PFLT_CONTEXT_ALLOCATE_CALLBACK) (_In_ POOL_TYPE PoolType, _In_ SIZE_T Size, _In_ FLT_CONTEXT_TYPE ContextType)
 
typedef VOID(FLTAPI * PFLT_CONTEXT_FREE_CALLBACK) (_In_ PVOID Pool, _In_ FLT_CONTEXT_TYPE ContextType)
 
typedef USHORT FLT_CONTEXT_REGISTRATION_FLAGS
 
typedef struct _FLT_CONTEXT_REGISTRATION FLT_CONTEXT_REGISTRATION
 
typedef struct _FLT_CONTEXT_REGISTRATIONPFLT_CONTEXT_REGISTRATION
 
typedef const struct _FLT_CONTEXT_REGISTRATIONPCFLT_CONTEXT_REGISTRATION
 
typedef ULONG FLT_INSTANCE_SETUP_FLAGS
 
typedef NTSTATUS(FLTAPI * PFLT_INSTANCE_SETUP_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
 
typedef ULONG FLT_INSTANCE_QUERY_TEARDOWN_FLAGS
 
typedef NTSTATUS(FLTAPI * PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
 
typedef ULONG FLT_INSTANCE_TEARDOWN_FLAGS
 
typedef VOID(FLTAPI * PFLT_INSTANCE_TEARDOWN_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Reason)
 
typedef enum _FLT_PREOP_CALLBACK_STATUS FLT_PREOP_CALLBACK_STATUS
 
typedef enum _FLT_PREOP_CALLBACK_STATUSPFLT_PREOP_CALLBACK_STATUS
 
typedef FLT_PREOP_CALLBACK_STATUS(FLTAPI * PFLT_PRE_OPERATION_CALLBACK) (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Outptr_result_maybenull_ PVOID *CompletionContext)
 
typedef enum _FLT_POSTOP_CALLBACK_STATUS FLT_POSTOP_CALLBACK_STATUS
 
typedef enum _FLT_POSTOP_CALLBACK_STATUSPFLT_POSTOP_CALLBACK_STATUS
 
typedef ULONG FLT_POST_OPERATION_FLAGS
 
typedef FLT_POSTOP_CALLBACK_STATUS(FLTAPI * PFLT_POST_OPERATION_CALLBACK) (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
 
typedef ULONG FLT_OPERATION_REGISTRATION_FLAGS
 
typedef struct _FLT_OPERATION_REGISTRATION FLT_OPERATION_REGISTRATION
 
typedef struct _FLT_OPERATION_REGISTRATIONPFLT_OPERATION_REGISTRATION
 
typedef struct _FLT_TAG_DATA_BUFFER FLT_TAG_DATA_BUFFER
 
typedef struct _FLT_TAG_DATA_BUFFERPFLT_TAG_DATA_BUFFER
 
typedef ULONG FLT_FILTER_UNLOAD_FLAGS
 
typedef NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK) (FLT_FILTER_UNLOAD_FLAGS Flags)
 
typedef struct _FLT_NAME_CONTROL FLT_NAME_CONTROL
 
typedef struct _FLT_NAME_CONTROLPFLT_NAME_CONTROL
 
typedef ULONG FLT_FILE_NAME_OPTIONS
 
typedef NTSTATUS(FLTAPI * PFLT_GENERATE_FILE_NAME) (_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_opt_ PFLT_CALLBACK_DATA CallbackData, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Out_ PBOOLEAN CacheFileNameInformation, _Out_ PFLT_NAME_CONTROL FileName)
 
typedef ULONG FLT_NORMALIZE_NAME_FLAGS
 
typedef NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT) (_In_ PFLT_INSTANCE Instance, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)
 
typedef NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT_EX) (_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)
 
typedef VOID(FLTAPI * PFLT_NORMALIZE_CONTEXT_CLEANUP) (_In_opt_ PVOID *NormalizationContext)
 
typedef NTSTATUS(FLTAPI * PFLT_TRANSACTION_NOTIFICATION_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG NotificationMask)
 
typedef ULONG FLT_REGISTRATION_FLAGS
 
typedef struct _FLT_REGISTRATION FLT_REGISTRATION
 
typedef struct _FLT_REGISTRATIONPFLT_REGISTRATION
 
typedef VOID(FLTAPI * PFLT_COMPLETED_ASYNC_IO_CALLBACK) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_ PFLT_CONTEXT Context)
 
typedef ULONG FLT_IO_OPERATION_FLAGS
 
typedef VOID(FLTAPI * PFLT_GET_OPERATION_STATUS_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_IO_PARAMETER_BLOCK IopbSnapshot, _In_ NTSTATUS OperationStatus, _In_opt_ PVOID RequesterContext)
 
typedef USHORT FLT_FILE_NAME_PARSED_FLAGS
 
typedef struct _FLT_FILE_NAME_INFORMATION FLT_FILE_NAME_INFORMATION
 
typedef struct _FLT_FILE_NAME_INFORMATIONPFLT_FILE_NAME_INFORMATION
 
typedef enum _FLT_SET_CONTEXT_OPERATION FLT_SET_CONTEXT_OPERATION
 
typedef enum _FLT_SET_CONTEXT_OPERATIONPFLT_SET_CONTEXT_OPERATION
 
typedef struct _FLT_VOLUME_PROPERTIES FLT_VOLUME_PROPERTIES
 
typedef struct _FLT_VOLUME_PROPERTIESPFLT_VOLUME_PROPERTIES
 
typedef NTSTATUS(FLTAPI * PFLT_MESSAGE_NOTIFY) (_In_opt_ PVOID PortCookie, _In_reads_bytes_opt_(InputBufferLength) PVOID InputBuffer, _In_ ULONG InputBufferLength, _Out_writes_bytes_to_opt_(OutputBufferLength, *ReturnOutputBufferLength) PVOID OutputBuffer, _In_ ULONG OutputBufferLength, _Out_ PULONG ReturnOutputBufferLength)
 
typedef NTSTATUS(FLTAPI * PFLT_CONNECT_NOTIFY) (_In_ PFLT_PORT ClientPort, _In_opt_ PVOID ServerPortCookie, _In_reads_bytes_opt_(SizeOfContext) PVOID ConnectionContext, _In_ ULONG SizeOfContext, _Outptr_result_maybenull_ PVOID *ConnectionPortCookie)
 
typedef VOID(FLTAPI * PFLT_DISCONNECT_NOTIFY) (_In_opt_ PVOID ConnectionCookie)
 
typedef VOID(FLTAPI * PFLT_COMPLETE_CANCELED_CALLBACK) (_In_ PFLT_CALLBACK_DATA CallbackData)
 
typedef struct _FLT_DEFERRED_IO_WORKITEM * PFLT_DEFERRED_IO_WORKITEM
 
typedef struct _FLT_GENERIC_WORKITEM * PFLT_GENERIC_WORKITEM
 
typedef VOID(FLTAPI * PFLT_DEFERRED_IO_WORKITEM_ROUTINE) (_In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem, _In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
 
typedef VOID(FLTAPI * PFLT_GENERIC_WORKITEM_ROUTINE) (_In_ PFLT_GENERIC_WORKITEM FltWorkItem, _In_ PVOID FltObject, _In_opt_ PVOID Context)
 
typedef IO_CSQ_IRP_CONTEXT FLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
 
typedef IO_CSQ_IRP_CONTEXTPFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT
 
typedef struct _FLT_CALLBACK_DATA_QUEUE FLT_CALLBACK_DATA_QUEUE
 
typedef struct _FLT_CALLBACK_DATA_QUEUEPFLT_CALLBACK_DATA_QUEUE
 
typedef NTSTATUS(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_INSERT_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID InsertContext)
 
typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd)
 
typedef PFLT_CALLBACK_DATA(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO) (_In_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID PeekContext)
 
typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_ACQUIRE) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Out_opt_ PKIRQL Irql)
 
typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_RELEASE) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ KIRQL Irql)
 
typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Inout_ PFLT_CALLBACK_DATA Cbd)
 
typedef ULONG FLT_CALLBACK_DATA_QUEUE_FLAGS
 
typedef NTSTATUS(* PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) (_In_opt_ PVOID Context, _In_ PFLT_CALLBACK_DATA CallbackData)
 
typedef VOID(FLTAPI * PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
 
typedef VOID(FLTAPI * PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)
 

Enumerations

enum  _FLT_PREOP_CALLBACK_STATUS {
  FLT_PREOP_SUCCESS_WITH_CALLBACK, FLT_PREOP_SUCCESS_NO_CALLBACK, FLT_PREOP_PENDING, FLT_PREOP_DISALLOW_FASTIO,
  FLT_PREOP_COMPLETE, FLT_PREOP_SYNCHRONIZE
}
 
enum  _FLT_POSTOP_CALLBACK_STATUS { FLT_POSTOP_FINISHED_PROCESSING, FLT_POSTOP_MORE_PROCESSING_REQUIRED }
 
enum  _FLT_SET_CONTEXT_OPERATION { FLT_SET_CONTEXT_REPLACE_IF_EXISTS, FLT_SET_CONTEXT_KEEP_IF_EXISTS }
 

Functions

VOID FLTAPI FltSetCallbackDataDirty (_Inout_ PFLT_CALLBACK_DATA Data)
 
VOID FLTAPI FltClearCallbackDataDirty (_Inout_ PFLT_CALLBACK_DATA Data)
 
BOOLEAN FLTAPI FltIsCallbackDataDirty (_In_ PFLT_CALLBACK_DATA Data)
 
_Must_inspect_result_ BOOLEAN FLTAPI FltDoCompletionProcessingWhenSafe (_In_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags, _In_ PFLT_POST_OPERATION_CALLBACK SafePostCallback, _Out_ PFLT_POSTOP_CALLBACK_STATUS RetPostOperationStatus)
 
_Must_inspect_result_ _IRQL_requires_max_ (APC_LEVEL) NTSTATUS FLTAPI FltCheckAndGrowNameControl(_Inout_ PFLT_NAME_CONTROL NameCtrl
 
 _When_ (CallbackStatus==FLT_PREOP_COMPLETE, _IRQL_requires_max_(DISPATCH_LEVEL)) _When_(CallbackStatus!
 
 _IRQL_requires_max_ (DISPATCH_LEVEL) VOID FLTAPI FltCompletePendedPostOperation(_In_ PFLT_CALLBACK_DATA CallbackData)
 
 _When_ ((PoolType==NonPagedPoolNx), _IRQL_requires_max_(DISPATCH_LEVEL)) _When_((PoolType!
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_reads_bytes_ (FileNameLength) PWSTR FileName
 
_Must_inspect_result_ _IRQL_requires_max_ (PASSIVE_LEVEL) NTSTATUS FLTAPI FltLoadFilter(_In_ PCUNICODE_STRING FilterName)
 
 _When_ (FlagOn(CallbackData->Iopb->IrpFlags, IRP_PAGING_IO), _IRQL_requires_max_(APC_LEVEL)) _When_(!FlagOn(CallbackData -> Iopb->IrpFlags, IRP_PAGING_IO), _IRQL_requires_max_(PASSIVE_LEVEL)) VOID FLTAPI FltPerformSynchronousIo(_Inout_ PFLT_CALLBACK_DATA CallbackData)
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_reads_bytes_opt_ (EaLength) PVOID EaBuffer
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _Out_writes_bytes_to_ (Length, *BytesRead) PVOID Buffer
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID _In_reads_bytes_ (DataBufferLength) PVOID DataBuffer
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_reads_bytes_ (Length) PVOID Buffer
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _Inout_updates_bytes_opt_ (Length) PSECURITY_DESCRIPTOR SecurityDescriptor
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_reads_bytes_opt_ (InputBufferLength) PVOID InputBuffer
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _Out_writes_bytes_to_opt_ (OutputBufferLength, *LengthReturned) PVOID OutputBuffer
 
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE _Outptr_result_bytebuffer_ (ContextSize) PFLT_CONTEXT *ReturnedContext)
 
LONG FLTAPI FltCompareInstanceAltitudes (_In_ PFLT_INSTANCE Instance1, _In_ PFLT_INSTANCE Instance2)
 
_In_ FILTER_INFORMATION_CLASS _Out_writes_bytes_to_opt_ (BufferSize, *BytesReturned) PVOID Buffer
 
 _Out_writes_bytes_to_opt_ (VolumePropertiesLength, *LengthReturned) PFLT_VOLUME_PROPERTIES VolumeProperties
 
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK _Out_writes_bytes_ (Length) PVOID FsInformation
 
_Must_inspect_result_ _Out_writes_to_opt_ (VolumeListSize, *NumberVolumesReturned) PFLT_VOLUME *VolumeList
 
_Must_inspect_result_ _In_opt_ PFLT_FILTER _Out_writes_to_opt_ (InstanceListSize, *NumberInstancesReturned) PFLT_INSTANCE *InstanceList
 
_Must_inspect_result_ _In_ PFLT_PORT _In_reads_bytes_ (SenderBufferLength) PVOID SenderBuffer
 
BOOLEAN FLTAPI FltIsIoCanceled (_In_ PFLT_CALLBACK_DATA CallbackData)
 
NTSTATUS FLTAPI FltDecodeParameters (_In_ PFLT_CALLBACK_DATA CallbackData, _Outptr_opt_ PMDL **MdlAddressPointer, _Outptr_opt_result_bytebuffer_(**Length) PVOID **Buffer, _Outptr_opt_ PULONG *Length, _Out_opt_ LOCK_OPERATION *DesiredAccess)
 
PMDL FASTCALL FltGetSwappedBufferMdlAddress (_In_ PFLT_CALLBACK_DATA CallbackData)
 
VOID FASTCALL FltRetainSwappedBufferMdlAddress (_In_ PFLT_CALLBACK_DATA CallbackData)
 
NTSTATUS FLTAPI FltCbdqInitialize (_In_ PFLT_INSTANCE Instance, _Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA_QUEUE_INSERT_IO CbdqInsertIo, _In_ PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO CbdqRemoveIo, _In_ PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO CbdqPeekNextIo, _In_ PFLT_CALLBACK_DATA_QUEUE_ACQUIRE CbdqAcquire, _In_ PFLT_CALLBACK_DATA_QUEUE_RELEASE CbdqRelease, _In_ PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO CbdqCompleteCanceledIo)
 
VOID FLTAPI FltCbdqEnable (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
 
VOID FLTAPI FltCbdqDisable (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq)
 
_Must_inspect_result_ NTSTATUS FLTAPI FltCbdqInsertIo (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT Context, _In_opt_ PVOID InsertContext)
 
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveIo (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT Context)
 
_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PVOID PeekContext)
 
VOID FLTAPI FltInitializeFileLock (_Out_ PFILE_LOCK FileLock)
 
VOID FLTAPI FltUninitializeFileLock (_In_ PFILE_LOCK FileLock)
 
 _Acquires_lock_ (_Global_critical_region_) _IRQL_requires_max_(APC_LEVEL) VOID FLTAPI FltAcquireResourceExclusive(_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_lock_(*_Curr_) PERESOURCE Resource)
 
 _Releases_lock_ (_Global_critical_region_) _IRQL_requires_max_(DISPATCH_LEVEL) VOID FLTAPI FltReleaseResource(_Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PERESOURCE Resource)
 
BOOLEAN FLTAPI FltIsOperationSynchronous (_In_ PFLT_CALLBACK_DATA CallbackData)
 
PCHAR FLTAPI FltGetIrpName (_In_ UCHAR IrpMajorCode)
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_reads_bytes_opt_ (EaListLength) PVOID EaList
 
_Must_inspect_result_ _When_ (((CallbackData!=NULL) &&FLT_IS_IRP_OPERATION(CallbackData)), _IRQL_requires_max_(PASSIVE_LEVEL)) _When_((!((CallbackData!
 
_Must_inspect_result_ _IRQL_requires_max_ (DPC_LEVEL) PVOID FLTAPI FltGetNewSystemBufferAddress(_In_ PFLT_CALLBACK_DATA CallbackData)
 
BOOLEAN FLTAPI FltOplockKeysEqual (_In_opt_ PFILE_OBJECT Fo1, _In_opt_ PFILE_OBJECT Fo2)
 

Variables

_Must_inspect_result_ _In_ USHORT NewSize
 
_Must_inspect_result_ _In_opt_ PFILE_OBJECT FileObject
 
_Must_inspect_result_ _In_ CONST FLT_REGISTRATIONRegistration
 
_Must_inspect_result_ _In_ CONST FLT_REGISTRATION _Outptr_ PFLT_FILTERRetFilter
 
_In_ FLT_PREOP_CALLBACK_STATUS CallbackStatus
 
_In_ FLT_PREOP_CALLBACK_STATUS _In_opt_ PVOID Context
 
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
 
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK _In_opt_ PVOID RequesterContext
 
_In_ PVOID Buffer
 
_In_ PVOID _In_ ULONG Tag
 
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS NameOptions
 
_Must_inspect_result_ _In_ FLT_FILE_NAME_OPTIONS _Outptr_ PFLT_FILE_NAME_INFORMATIONFileNameInformation
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE Instance
 
_Inout_opt_ PUNICODE_STRING Extension
 
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING Stream
 
_Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING _Inout_opt_ PUNICODE_STRING FinalComponent
 
_Must_inspect_result_ _In_ PFLT_FILE_NAME_INFORMATION _Outptr_result_maybenull_ PFLT_FILE_NAME_INFORMATIONRetTunneledFileNameInformation
 
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING VolumeName
 
_Must_inspect_result_ _Inout_opt_ PUNICODE_STRING _Out_opt_ PULONG BufferSizeNeeded
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE RootDirectory
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG FileNameLength
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ HANDLE _In_ ULONG _In_ FLT_FILE_NAME_OPTIONS _Outptr_ PFLT_FILE_NAME_INFORMATIONRetFileNameInformation
 
_Must_inspect_result_ _In_ PFLT_INSTANCE _Out_ PBOOLEAN IsDirectory
 
_Must_inspect_result_ _Inout_ PFLT_VOLUME Volume
 
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING InstanceName
 
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_opt_ PCUNICODE_STRING _Outptr_opt_result_maybenull_ PFLT_INSTANCERetInstance
 
_Must_inspect_result_ _Inout_ PFLT_VOLUME _In_ PCUNICODE_STRING Altitude
 
_Must_inspect_result_ _In_opt_ PFILE_OBJECT _Outptr_ PFLT_CALLBACK_DATARetNewCallbackData
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK DesiredAccess
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES ObjectAttributes
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK IoStatusBlock
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER AllocationSize
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG ShareAccess
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG CreateDisposition
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG CreateOptions
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG EaLength
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG Flags
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER ByteOffset
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG Length
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesRead
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG _In_opt_ PFLT_COMPLETED_ASYNC_IO_CALLBACK _In_opt_ PVOID CallbackContext
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FileTag
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUIDGuid
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_opt_ GUID _In_ USHORT DataBufferLength
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ FLT_IO_OPERATION_FLAGS _Out_opt_ PULONG BytesWritten
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS FileInformationClass
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _Out_opt_ PULONG LengthReturned
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FS_INFORMATION_CLASS FsInformationClass
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _In_ ULONG _Out_opt_ PULONG LengthNeeded
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG FsControlCode
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG InputBufferLength
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _In_ ULONG OutputBufferLength
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG IoControlCode
 
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE ContextType
 
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T ContextSize
 
_Must_inspect_result_ _In_ FLT_CONTEXT_TYPE _In_ SIZE_T _In_ POOL_TYPE PoolType
 
_In_ FLT_CONTEXT_TYPE DesiredContexts
 
_In_ FLT_CONTEXT_TYPE _Out_ PFLT_RELATED_CONTEXTS Contexts
 
_In_ FLT_SET_CONTEXT_OPERATION Operation
 
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT NewContext
 
_In_ FLT_SET_CONTEXT_OPERATION _In_ PFLT_CONTEXT _Outptr_opt_result_maybenull_ PFLT_CONTEXTOldContext
 
_In_ PCUNICODE_STRING _Outptr_ PFLT_VOLUMERetVolume
 
_In_ PDEVICE_OBJECT DeviceObject
 
_Outptr_ PDEVICE_OBJECTDiskDeviceObject
 
_Outptr_ PFLT_INSTANCELowerInstance
 
_Outptr_ PFLT_INSTANCEUpperInstance
 
_In_ FILTER_INFORMATION_CLASS InformationClass
 
_In_ FILTER_INFORMATION_CLASS _In_ ULONG BufferSize
 
_In_ FILTER_INFORMATION_CLASS _In_ ULONG _Out_ PULONG BytesReturned
 
_In_ ULONG VolumePropertiesLength
 
_Must_inspect_result_ _Out_ PBOOLEAN IsWritable
 
_Must_inspect_result_ _Out_ PUNICODE_STRING VolumeGuidName
 
_Must_inspect_result_ _Out_ PIO_STATUS_BLOCK Iosb
 
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTERFilterList
 
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG FilterListSize
 
_Must_inspect_result_ *NumberFiltersReturned PFLT_FILTER _In_ ULONG _Out_ PULONG NumberFiltersReturned
 
_Must_inspect_result_ _In_ ULONG VolumeListSize
 
_Must_inspect_result_ _In_ ULONG _Out_ PULONG NumberVolumesReturned
 
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
 
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG InstanceListSize
 
_Must_inspect_result_ _In_opt_ PFLT_FILTER _In_ ULONG _Out_ PULONG NumberInstancesReturned
 
_Must_inspect_result_ _In_ ULONG Index
 
_Must_inspect_result_ _Outptr_ PFLT_PORTServerPort
 
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
 
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
 
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
 
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
 
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
 
_Outptr_ PFLT_PORTClientPort
 
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG SenderBufferLength
 
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID ReplyBuffer
 
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG ReplyLength
 
_Must_inspect_result_ _In_ PFLT_PORT _In_ ULONG _Out_writes_bytes_opt_ ReplyLength PVOID _Inout_opt_ PULONG _In_opt_ PLARGE_INTEGER Timeout
 
_In_ PFLT_COMPLETE_CANCELED_CALLBACK CanceledCallback
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA Data
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE WorkerRoutine
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ PFLT_DEFERRED_IO_WORKITEM_ROUTINE _In_ WORK_QUEUE_TYPE QueueType
 
_Must_inspect_result_ _In_ PVOID FltObject
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA CallbackData
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_ ULONG OpenCount
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_opt_ PVOID _In_opt_ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE WaitCompletionRoutine
 
_Must_inspect_result_ _In_ PFLT_CALLBACK_DATA _In_opt_ PVOID _In_opt_ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE _In_opt_ PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
 
_Must_inspect_result_ _In_opt_ PUNLOCK_ROUTINE UnlockRoutine
 
_Inout_ PLIST_ENTRY NotifyList
 
_Inout_ PLIST_ENTRY _In_ PVOID FsContext
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN WatchTree
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN IgnoreBuffer
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG CompletionFilter
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA NotifyCallbackData
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS TraverseCallback
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext
 
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT _In_opt_ PFILTER_REPORT_CHANGE FilterCallback
 
_Must_inspect_result_ _Out_ PHANDLE VolumeHandle
 
_Must_inspect_result_ _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECTVolumeFileObject
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN ReturnSingleEntry
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG EaListLength
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG EaIndex
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ BOOLEAN _In_ ULONG _In_opt_ PULONG _In_ BOOLEAN RestartScan
 
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _Outptr_opt_ PFILE_OBJECT _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_ ULONG _In_opt_ PIO_DRIVER_CREATE_CONTEXT DriverContext
 
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ FILE_INFORMATION_CLASS _In_ BOOLEAN _In_opt_ PUNICODE_STRING FileName
 
_In_ PKTRANSACTION Transaction
 
_Out_ PFLT_FILESYSTEM_TYPE FileSystemType
 
_Must_inspect_result_ _Out_ PBOOLEAN IsSnapshotVolume
 
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT TransactionContext
 
_Must_inspect_result_ _In_ PKTRANSACTION _In_ PFLT_CONTEXT _In_ NOTIFICATION_MASK NotificationMask
 
_Must_inspect_result_ _In_ FSRTL_ALLOCATE_ECPLIST_FLAGS _Outptr_ PECP_LISTEcpList
 
_Must_inspect_result_ _In_ LPCGUID EcpType
 
_Must_inspect_result_ _In_ LPCGUID ULONG SizeOfContext
 
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback
 
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG PoolTag
 
_Must_inspect_result_ _In_ LPCGUID ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _In_ ULONG _Outptr_ PVOIDEcpContext
 
_Inout_ PVOID Lookaside
 
_Inout_ PVOID _In_ FSRTL_ECP_LOOKASIDE_FLAGS _In_ SIZE_T Size
 
_Must_inspect_result_ _In_ LPCGUID _In_ ULONG _In_ FSRTL_ALLOCATE_ECP_FLAGS _In_opt_ PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK _Inout_ PVOID LookasideList
 
_In_ PECP_LIST _In_ LPCGUID _Outptr_opt_ PVOID _Out_opt_ ULONGEcpContextSize
 
_In_ PECP_LIST _In_opt_ PVOID CurrentEcpContext
 
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID NextEcpType
 
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOIDNextEcpContext
 
_In_ PECP_LIST _In_opt_ PVOID _Out_opt_ LPGUID _Outptr_opt_ PVOID _Out_opt_ ULONGNextEcpContextSize
 
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
 
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD _Inout_ PIO_PRIORITY_INFO PriorityInfo
 
_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo
 
_In_ IO_PRIORITY_HINT PriorityHint
 
_Must_inspect_result_ _Out_ PULONG SessionId
 
_In_ PFLT_INSTANCE TargetInstance
 
_In_ PFLT_INSTANCE _Out_opt_ PBOOLEAN SourceDeviceStackSizeModified
 
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowed
 
_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowedThisIo
 
_In_ PFLT_INSTANCE _Out_ PBOOLEAN _Out_opt_ PBOOLEAN RedirectionAllowedAllIo
 

Macro Definition Documentation

◆ __FLTKERNEL__

#define __FLTKERNEL__

Definition at line 23 of file fltkernel.h.

◆ Add2Ptr

#define Add2Ptr (   P,
  I 
)    ((PVOID)((PUCHAR)(P) + (I)))

Definition at line 56 of file fltkernel.h.

◆ FLT_ALL_CONTEXTS

#define FLT_ALL_CONTEXTS
Value:
FLT_FILE_CONTEXT | FLT_STREAM_CONTEXT | \
FLT_STREAMHANDLE_CONTEXT | FLT_TRANSACTION_CONTEXT)
#define FLT_TRANSACTION_CONTEXT
Definition: fltkernel.h:443
#define FLT_STREAM_CONTEXT
Definition: fltkernel.h:441
#define FLT_INSTANCE_CONTEXT
Definition: fltkernel.h:439
#define FLT_VOLUME_CONTEXT
Definition: fltkernel.h:438

Definition at line 446 of file fltkernel.h.

◆ FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

#define FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY   0x00000001

Definition at line 454 of file fltkernel.h.

◆ FLT_ASSERT

◆ FLT_ASSERTMSG

#define FLT_ASSERTMSG (   _m,
  _e 
)    NT_ASSERTMSG(_m, _e)

Definition at line 50 of file fltkernel.h.

◆ FLT_CLEAR_CALLBACK_DATA_DIRTY

#define FLT_CLEAR_CALLBACK_DATA_DIRTY (   Data)    FltClearCallbackDataDirty(Data)

Definition at line 427 of file fltkernel.h.

◆ FLT_CONTEXT_END

#define FLT_CONTEXT_END   0xffff

Definition at line 444 of file fltkernel.h.

Referenced by FltpRegisterContexts().

◆ FLT_FILE_CONTEXT

#define FLT_FILE_CONTEXT   0x0004

Definition at line 440 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE

#define FLT_FILE_NAME_ALLOW_QUERY_ON_REPARSE   0x04000000

Definition at line 795 of file fltkernel.h.

◆ FLT_FILE_NAME_DO_NOT_CACHE

#define FLT_FILE_NAME_DO_NOT_CACHE   0x02000000

Definition at line 792 of file fltkernel.h.

◆ FLT_FILE_NAME_NORMALIZED

#define FLT_FILE_NAME_NORMALIZED   0x01

Definition at line 774 of file fltkernel.h.

◆ FLT_FILE_NAME_OPENED

#define FLT_FILE_NAME_OPENED   0x02

Definition at line 775 of file fltkernel.h.

◆ FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP

#define FLT_FILE_NAME_QUERY_ALWAYS_ALLOW_CACHE_LOOKUP   0x0400

Definition at line 785 of file fltkernel.h.

◆ FLT_FILE_NAME_QUERY_CACHE_ONLY

#define FLT_FILE_NAME_QUERY_CACHE_ONLY   0x0200

Definition at line 783 of file fltkernel.h.

◆ FLT_FILE_NAME_QUERY_DEFAULT

#define FLT_FILE_NAME_QUERY_DEFAULT   0x0100

Definition at line 782 of file fltkernel.h.

◆ FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY

#define FLT_FILE_NAME_QUERY_FILESYSTEM_ONLY   0x0300

Definition at line 784 of file fltkernel.h.

◆ FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER

#define FLT_FILE_NAME_REQUEST_FROM_CURRENT_PROVIDER   0x01000000

Definition at line 791 of file fltkernel.h.

◆ FLT_FILE_NAME_SHORT

#define FLT_FILE_NAME_SHORT   0x03

Definition at line 776 of file fltkernel.h.

◆ FLT_INSTANCE_CONTEXT

#define FLT_INSTANCE_CONTEXT   0x0002

Definition at line 439 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLT_INTERNAL_OPERATION_COUNT

#define FLT_INTERNAL_OPERATION_COUNT   22

Definition at line 80 of file fltkernel.h.

◆ FLT_IS_CALLBACK_DATA_DIRTY

#define FLT_IS_CALLBACK_DATA_DIRTY (   Data)    FltIsCallbackDataDirty(Data)

Definition at line 428 of file fltkernel.h.

◆ FLT_IS_FASTIO_OPERATION

#define FLT_IS_FASTIO_OPERATION (   Data)    (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FAST_IO_OPERATION))

Definition at line 431 of file fltkernel.h.

◆ FLT_IS_FS_FILTER_OPERATION

#define FLT_IS_FS_FILTER_OPERATION (   Data)    (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION))

Definition at line 432 of file fltkernel.h.

◆ FLT_IS_IRP_OPERATION

#define FLT_IS_IRP_OPERATION (   Data)    (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_IRP_OPERATION))

Definition at line 430 of file fltkernel.h.

◆ FLT_IS_REISSUED_IO

#define FLT_IS_REISSUED_IO (   Data)    (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_REISSUED_IO))

Definition at line 433 of file fltkernel.h.

◆ FLT_IS_SYSTEM_BUFFER

#define FLT_IS_SYSTEM_BUFFER (   Data)    (FlagOn((Data)->Flags, FLTFL_CALLBACK_DATA_SYSTEM_BUFFER))

Definition at line 434 of file fltkernel.h.

◆ FLT_MAX_TRANSACTION_NOTIFICATIONS

#define FLT_MAX_TRANSACTION_NOTIFICATIONS
Value:
TRANSACTION_NOTIFY_PREPARE | \
TRANSACTION_NOTIFY_COMMIT | \
TRANSACTION_NOTIFY_ROLLBACK | \
TRANSACTION_NOTIFY_COMMIT_FINALIZE)
#define TRANSACTION_NOTIFY_PREPREPARE
Definition: ktmtypes.h:48

Definition at line 537 of file fltkernel.h.

◆ FLT_MGR_AFTER_XPSP2

#define FLT_MGR_AFTER_XPSP2
Value:
#define SPVER(Version)
Definition: sdkddkver.h:128
#define NTDDI_WS03
Definition: sdkddkver.h:92
#define NTDDI_WINXP
Definition: sdkddkver.h:87
#define NTDDI_VERSION
Definition: k32.h:33
#define OSVER(Version)
Definition: sdkddkver.h:127
#define NTDDI_WIN2KSP4
Definition: sdkddkver.h:86
#define NTDDI_VISTA
Definition: sdkddkver.h:103
#define NTDDI_WINXPSP2
Definition: sdkddkver.h:89
#define NTDDI_WS03SP1
Definition: sdkddkver.h:93
#define NTDDI_WIN2K
Definition: ndr_marshall.c:22

Definition at line 34 of file fltkernel.h.

◆ FLT_MGR_BASELINE

#define FLT_MGR_BASELINE
Value:
#define SPVER(Version)
Definition: sdkddkver.h:128
#define NTDDI_WS03
Definition: sdkddkver.h:92
#define NTDDI_WINXP
Definition: sdkddkver.h:87
#define NTDDI_VERSION
Definition: k32.h:33
#define OSVER(Version)
Definition: sdkddkver.h:127
#define NTDDI_WIN2KSP4
Definition: sdkddkver.h:86
#define NTDDI_VISTA
Definition: sdkddkver.h:103
#define NTDDI_WINXPSP2
Definition: sdkddkver.h:89
#define NTDDI_WS03SP1
Definition: sdkddkver.h:93
#define NTDDI_WIN2K
Definition: ndr_marshall.c:22

Definition at line 29 of file fltkernel.h.

◆ FLT_MGR_LONGHORN

#define FLT_MGR_LONGHORN   (NTDDI_VERSION >= NTDDI_VISTA)

Definition at line 39 of file fltkernel.h.

◆ FLT_MGR_WIN7

#define FLT_MGR_WIN7   (NTDDI_VERSION >= NTDDI_WIN7)

Definition at line 40 of file fltkernel.h.

◆ FLT_PORT_ALL_ACCESS

#define FLT_PORT_ALL_ACCESS   (FLT_PORT_CONNECT | STANDARD_RIGHTS_ALL)

Definition at line 836 of file fltkernel.h.

Referenced by CreateClientPort(), DriverEntry(), and FltpSetupCommunicationObjects().

◆ FLT_PORT_CONNECT

#define FLT_PORT_CONNECT   0x0001

Definition at line 835 of file fltkernel.h.

◆ FLT_REGISTRATION_VERSION

#define FLT_REGISTRATION_VERSION   FLT_REGISTRATION_VERSION_0202

Definition at line 718 of file fltkernel.h.

◆ FLT_REGISTRATION_VERSION_0200

#define FLT_REGISTRATION_VERSION_0200   0x0200

Definition at line 712 of file fltkernel.h.

◆ FLT_REGISTRATION_VERSION_0201

#define FLT_REGISTRATION_VERSION_0201   0x0201

Definition at line 713 of file fltkernel.h.

◆ FLT_REGISTRATION_VERSION_0202

#define FLT_REGISTRATION_VERSION_0202   0x0202

Definition at line 714 of file fltkernel.h.

◆ FLT_REGISTRATION_VERSION_0203

#define FLT_REGISTRATION_VERSION_0203   0x0203

Definition at line 715 of file fltkernel.h.

◆ FLT_SET_CALLBACK_DATA_DIRTY

#define FLT_SET_CALLBACK_DATA_DIRTY (   Data)    FltSetCallbackDataDirty(Data)

Definition at line 426 of file fltkernel.h.

◆ FLT_STREAM_CONTEXT

#define FLT_STREAM_CONTEXT   0x0008

Definition at line 441 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLT_STREAMHANDLE_CONTEXT

#define FLT_STREAMHANDLE_CONTEXT   0x0010

Definition at line 442 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLT_TAG_DATA_BUFFER_HEADER_SIZE

#define FLT_TAG_DATA_BUFFER_HEADER_SIZE   FIELD_OFFSET(FLT_TAG_DATA_BUFFER, GenericReparseBuffer)

Definition at line 647 of file fltkernel.h.

◆ FLT_TRANSACTION_CONTEXT

#define FLT_TRANSACTION_CONTEXT   0x0020

Definition at line 443 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLT_VALID_FILE_NAME_FLAGS

#define FLT_VALID_FILE_NAME_FLAGS   0xff000000

Definition at line 789 of file fltkernel.h.

◆ FLT_VALID_FILE_NAME_FORMATS

#define FLT_VALID_FILE_NAME_FORMATS   0x000000ff

Definition at line 772 of file fltkernel.h.

◆ FLT_VALID_FILE_NAME_QUERY_METHODS

#define FLT_VALID_FILE_NAME_QUERY_METHODS   0x0000ff00

Definition at line 780 of file fltkernel.h.

◆ FLT_VARIABLE_SIZED_CONTEXTS

#define FLT_VARIABLE_SIZED_CONTEXTS   ((SIZE_T)-1)

Definition at line 513 of file fltkernel.h.

Referenced by FltpRegisterContexts().

◆ FLT_VOLUME_CONTEXT

#define FLT_VOLUME_CONTEXT   0x0001

Definition at line 438 of file fltkernel.h.

Referenced by IsContextTypeValid().

◆ FLTFL_CALLBACK_DATA_DIRTY

#define FLTFL_CALLBACK_DATA_DIRTY   0x80000000

Definition at line 424 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_DRAINING_IO

#define FLTFL_CALLBACK_DATA_DRAINING_IO   0x00040000

Definition at line 421 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_FAST_IO_OPERATION

#define FLTFL_CALLBACK_DATA_FAST_IO_OPERATION   0x00000002

Definition at line 416 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION

#define FLTFL_CALLBACK_DATA_FS_FILTER_OPERATION   0x00000004

Definition at line 417 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_GENERATED_IO

#define FLTFL_CALLBACK_DATA_GENERATED_IO   0x00010000

Definition at line 419 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_IRP_OPERATION

#define FLTFL_CALLBACK_DATA_IRP_OPERATION   0x00000001

Definition at line 415 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER

#define FLTFL_CALLBACK_DATA_NEW_SYSTEM_BUFFER   0x00100000

Definition at line 423 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_POST_OPERATION

#define FLTFL_CALLBACK_DATA_POST_OPERATION   0x00080000

Definition at line 422 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_REISSUE_MASK

#define FLTFL_CALLBACK_DATA_REISSUE_MASK   0x0000FFFF

Definition at line 414 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_REISSUED_IO

#define FLTFL_CALLBACK_DATA_REISSUED_IO   0x00020000

Definition at line 420 of file fltkernel.h.

◆ FLTFL_CALLBACK_DATA_SYSTEM_BUFFER

#define FLTFL_CALLBACK_DATA_SYSTEM_BUFFER   0x00000008

Definition at line 418 of file fltkernel.h.

◆ FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH

#define FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH   0x0001

Definition at line 511 of file fltkernel.h.

◆ FLTFL_FILE_NAME_PARSED_EXTENSION

#define FLTFL_FILE_NAME_PARSED_EXTENSION   0x0002

Definition at line 801 of file fltkernel.h.

◆ FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT

#define FLTFL_FILE_NAME_PARSED_FINAL_COMPONENT   0x0001

Definition at line 800 of file fltkernel.h.

◆ FLTFL_FILE_NAME_PARSED_PARENT_DIR

#define FLTFL_FILE_NAME_PARSED_PARENT_DIR   0x0008

Definition at line 803 of file fltkernel.h.

◆ FLTFL_FILE_NAME_PARSED_STREAM

#define FLTFL_FILE_NAME_PARSED_STREAM   0x0004

Definition at line 802 of file fltkernel.h.

◆ FLTFL_FILTER_UNLOAD_MANDATORY

#define FLTFL_FILTER_UNLOAD_MANDATORY   0x00000001

Definition at line 651 of file fltkernel.h.

◆ FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT

#define FLTFL_INSTANCE_SETUP_AUTOMATIC_ATTACHMENT   0x00000001

Definition at line 529 of file fltkernel.h.

◆ FLTFL_INSTANCE_SETUP_DETACHED_VOLUME

#define FLTFL_INSTANCE_SETUP_DETACHED_VOLUME   0x00000008

Definition at line 535 of file fltkernel.h.

◆ FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT

#define FLTFL_INSTANCE_SETUP_MANUAL_ATTACHMENT   0x00000002

Definition at line 530 of file fltkernel.h.

◆ FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME

#define FLTFL_INSTANCE_SETUP_NEWLY_MOUNTED_VOLUME   0x00000004

Definition at line 531 of file fltkernel.h.

◆ FLTFL_INSTANCE_TEARDOWN_FILTER_UNLOAD

#define FLTFL_INSTANCE_TEARDOWN_FILTER_UNLOAD   0x00000002

Definition at line 562 of file fltkernel.h.

◆ FLTFL_INSTANCE_TEARDOWN_INTERNAL_ERROR

#define FLTFL_INSTANCE_TEARDOWN_INTERNAL_ERROR   0x00000010

Definition at line 565 of file fltkernel.h.

◆ FLTFL_INSTANCE_TEARDOWN_MANDATORY_FILTER_UNLOAD

#define FLTFL_INSTANCE_TEARDOWN_MANDATORY_FILTER_UNLOAD   0x00000004

Definition at line 563 of file fltkernel.h.

◆ FLTFL_INSTANCE_TEARDOWN_MANUAL

#define FLTFL_INSTANCE_TEARDOWN_MANUAL   0x00000001

Definition at line 561 of file fltkernel.h.

◆ FLTFL_INSTANCE_TEARDOWN_VOLUME_DISMOUNT

#define FLTFL_INSTANCE_TEARDOWN_VOLUME_DISMOUNT   0x00000008

Definition at line 564 of file fltkernel.h.

◆ FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET

#define FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET   0x00000004

Definition at line 757 of file fltkernel.h.

◆ FLTFL_IO_OPERATION_NON_CACHED

#define FLTFL_IO_OPERATION_NON_CACHED   0x00000001

Definition at line 755 of file fltkernel.h.

◆ FLTFL_IO_OPERATION_PAGING

#define FLTFL_IO_OPERATION_PAGING   0x00000002

Definition at line 756 of file fltkernel.h.

◆ FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING

#define FLTFL_IO_OPERATION_SYNCHRONOUS_PAGING   0x00000008

Definition at line 760 of file fltkernel.h.

◆ FLTFL_NORMALIZE_NAME_CASE_SENSITIVE

#define FLTFL_NORMALIZE_NAME_CASE_SENSITIVE   0x01

Definition at line 674 of file fltkernel.h.

◆ FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME

#define FLTFL_NORMALIZE_NAME_DESTINATION_FILE_NAME   0x02

Definition at line 675 of file fltkernel.h.

◆ FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO

#define FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO   0x00000002

Definition at line 606 of file fltkernel.h.

◆ FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO

#define FLTFL_OPERATION_REGISTRATION_SKIP_NON_DASD_IO   0x00000004

Definition at line 607 of file fltkernel.h.

◆ FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO

#define FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO   0x00000001

Definition at line 605 of file fltkernel.h.

◆ FLTFL_POST_OPERATION_DRAINING

#define FLTFL_POST_OPERATION_DRAINING   0x00000001

Definition at line 594 of file fltkernel.h.

◆ FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP

#define FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP   0x00000001

Definition at line 725 of file fltkernel.h.

Referenced by FltRegisterFilter().

◆ FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS

#define FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS   0x00000002

Definition at line 726 of file fltkernel.h.

◆ FltGetFileNameFormat

#define FltGetFileNameFormat (   _NameOptions)    ((_NameOptions) & FLT_VALID_FILE_NAME_FORMATS)

Definition at line 778 of file fltkernel.h.

◆ FltGetFileNameQueryMethod

#define FltGetFileNameQueryMethod (   _NameOptions)    ((_NameOptions) & FLT_VALID_FILE_NAME_QUERY_METHODS)

Definition at line 787 of file fltkernel.h.

◆ IRP_MJ_ACQUIRE_FOR_CC_FLUSH

#define IRP_MJ_ACQUIRE_FOR_CC_FLUSH   ((UCHAR)-5)

Definition at line 69 of file fltkernel.h.

◆ IRP_MJ_ACQUIRE_FOR_MOD_WRITE

#define IRP_MJ_ACQUIRE_FOR_MOD_WRITE   ((UCHAR)-3)

Definition at line 67 of file fltkernel.h.

◆ IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION

#define IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-1)

Definition at line 65 of file fltkernel.h.

◆ IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE

#define IRP_MJ_FAST_IO_CHECK_IF_POSSIBLE   ((UCHAR)-13)

Definition at line 71 of file fltkernel.h.

◆ IRP_MJ_MDL_READ

#define IRP_MJ_MDL_READ   ((UCHAR)-15)

Definition at line 73 of file fltkernel.h.

◆ IRP_MJ_MDL_READ_COMPLETE

#define IRP_MJ_MDL_READ_COMPLETE   ((UCHAR)-16)

Definition at line 74 of file fltkernel.h.

◆ IRP_MJ_MDL_WRITE_COMPLETE

#define IRP_MJ_MDL_WRITE_COMPLETE   ((UCHAR)-18)

Definition at line 76 of file fltkernel.h.

◆ IRP_MJ_NETWORK_QUERY_OPEN

#define IRP_MJ_NETWORK_QUERY_OPEN   ((UCHAR)-14)

Definition at line 72 of file fltkernel.h.

◆ IRP_MJ_OPERATION_END

#define IRP_MJ_OPERATION_END   ((UCHAR)0x80)

Definition at line 79 of file fltkernel.h.

Referenced by FltRegisterFilter(), and KmtFilterRegisterCallbacks().

◆ IRP_MJ_PREPARE_MDL_WRITE

#define IRP_MJ_PREPARE_MDL_WRITE   ((UCHAR)-17)

Definition at line 75 of file fltkernel.h.

◆ IRP_MJ_RELEASE_FOR_CC_FLUSH

#define IRP_MJ_RELEASE_FOR_CC_FLUSH   ((UCHAR)-6)

Definition at line 70 of file fltkernel.h.

◆ IRP_MJ_RELEASE_FOR_MOD_WRITE

#define IRP_MJ_RELEASE_FOR_MOD_WRITE   ((UCHAR)-4)

Definition at line 68 of file fltkernel.h.

◆ IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION

#define IRP_MJ_RELEASE_FOR_SECTION_SYNCHRONIZATION   ((UCHAR)-2)

Definition at line 66 of file fltkernel.h.

◆ IRP_MJ_VOLUME_DISMOUNT

#define IRP_MJ_VOLUME_DISMOUNT   ((UCHAR)-20)

Definition at line 78 of file fltkernel.h.

◆ IRP_MJ_VOLUME_MOUNT

#define IRP_MJ_VOLUME_MOUNT   ((UCHAR)-19)

Definition at line 77 of file fltkernel.h.

Referenced by FltRegisterFilter().

◆ IS_ALIGNED

#define IS_ALIGNED (   _pointer,
  _alignment 
)    ((((ULONG_PTR) (_pointer)) & ((_alignment) - 1)) == 0)

Definition at line 62 of file fltkernel.h.

◆ NULL_CONTEXT

#define NULL_CONTEXT   ((PFLT_CONTEXT)NULL)

Definition at line 82 of file fltkernel.h.

◆ PtrOffset

#define PtrOffset (   B,
  O 
)    ((ULONG)((ULONG_PTR)(O) - (ULONG_PTR)(B)))

Definition at line 57 of file fltkernel.h.

◆ ROUND_TO_SIZE

#define ROUND_TO_SIZE (   _length,
  _alignment 
)    ((((ULONG_PTR)(_length)) + ((_alignment)-1)) & ~(ULONG_PTR) ((_alignment) - 1))

Definition at line 59 of file fltkernel.h.

Typedef Documentation

◆ FLT_ALLOCATE_CALLBACK_DATA_FLAGS

Definition at line 453 of file fltkernel.h.

◆ FLT_CALLBACK_DATA

◆ FLT_CALLBACK_DATA_FLAGS

Definition at line 450 of file fltkernel.h.

◆ FLT_CALLBACK_DATA_QUEUE

◆ FLT_CALLBACK_DATA_QUEUE_FLAGS

Definition at line 914 of file fltkernel.h.

◆ FLT_CALLBACK_DATA_QUEUE_IO_CONTEXT

◆ FLT_CONTEXT_REGISTRATION

◆ FLT_CONTEXT_REGISTRATION_FLAGS

Definition at line 509 of file fltkernel.h.

◆ FLT_CONTEXT_TYPE

Definition at line 436 of file fltkernel.h.

◆ FLT_FILE_NAME_INFORMATION

◆ FLT_FILE_NAME_OPTIONS

Definition at line 661 of file fltkernel.h.

◆ FLT_FILE_NAME_PARSED_FLAGS

Definition at line 798 of file fltkernel.h.

◆ FLT_FILTER_UNLOAD_FLAGS

Definition at line 649 of file fltkernel.h.

◆ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS

Definition at line 552 of file fltkernel.h.

◆ FLT_INSTANCE_SETUP_FLAGS

Definition at line 527 of file fltkernel.h.

◆ FLT_INSTANCE_TEARDOWN_FLAGS

Definition at line 559 of file fltkernel.h.

◆ FLT_IO_OPERATION_FLAGS

Definition at line 753 of file fltkernel.h.

◆ FLT_IO_PARAMETER_BLOCK

◆ FLT_NAME_CONTROL

◆ FLT_NORMALIZE_NAME_FLAGS

Definition at line 672 of file fltkernel.h.

◆ FLT_OPERATION_REGISTRATION

◆ FLT_OPERATION_REGISTRATION_FLAGS

Definition at line 603 of file fltkernel.h.

◆ FLT_PARAMETERS

◆ FLT_POST_OPERATION_FLAGS

Definition at line 592 of file fltkernel.h.

◆ FLT_POSTOP_CALLBACK_STATUS

◆ FLT_PREOP_CALLBACK_STATUS

◆ FLT_REGISTRATION

◆ FLT_REGISTRATION_FLAGS

Definition at line 723 of file fltkernel.h.

◆ FLT_RELATED_CONTEXTS

◆ FLT_RELATED_OBJECTS

◆ FLT_SET_CONTEXT_OPERATION

◆ FLT_TAG_DATA_BUFFER

◆ FLT_VOLUME_PROPERTIES

◆ PCFLT_CONTEXT_REGISTRATION

◆ PCFLT_RELATED_OBJECTS

Definition at line 482 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA

◆ PFLT_CALLBACK_DATA_QUEUE

◆ PFLT_CALLBACK_DATA_QUEUE_ACQUIRE

typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_ACQUIRE) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Out_opt_ PKIRQL Irql)

Definition at line 900 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO

typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_COMPLETE_CANCELED_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _Inout_ PFLT_CALLBACK_DATA Cbd)

Definition at line 910 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA_QUEUE_INSERT_IO

typedef NTSTATUS(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_INSERT_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID InsertContext)

Definition at line 883 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA_QUEUE_IO_CONTEXT

◆ PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO

typedef PFLT_CALLBACK_DATA(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_PEEK_NEXT_IO) (_In_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ PFLT_CALLBACK_DATA Cbd, _In_opt_ PVOID PeekContext)

Definition at line 894 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA_QUEUE_RELEASE

typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_RELEASE) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_opt_ KIRQL Irql)

Definition at line 905 of file fltkernel.h.

◆ PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO

typedef VOID(FLTAPI * PFLT_CALLBACK_DATA_QUEUE_REMOVE_IO) (_Inout_ PFLT_CALLBACK_DATA_QUEUE Cbdq, _In_ PFLT_CALLBACK_DATA Cbd)

Definition at line 889 of file fltkernel.h.

◆ PFLT_COMPLETE_CANCELED_CALLBACK

typedef VOID(FLTAPI * PFLT_COMPLETE_CANCELED_CALLBACK) (_In_ PFLT_CALLBACK_DATA CallbackData)

Definition at line 860 of file fltkernel.h.

◆ PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE

typedef NTSTATUS(* PFLT_COMPLETE_LOCK_CALLBACK_DATA_ROUTINE) (_In_opt_ PVOID Context, _In_ PFLT_CALLBACK_DATA CallbackData)

Definition at line 929 of file fltkernel.h.

◆ PFLT_COMPLETED_ASYNC_IO_CALLBACK

typedef VOID(FLTAPI * PFLT_COMPLETED_ASYNC_IO_CALLBACK) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_ PFLT_CONTEXT Context)

Definition at line 749 of file fltkernel.h.

◆ PFLT_CONNECT_NOTIFY

typedef NTSTATUS(FLTAPI * PFLT_CONNECT_NOTIFY) (_In_ PFLT_PORT ClientPort, _In_opt_ PVOID ServerPortCookie, _In_reads_bytes_opt_(SizeOfContext) PVOID ConnectionContext, _In_ ULONG SizeOfContext, _Outptr_result_maybenull_ PVOID *ConnectionPortCookie)

Definition at line 848 of file fltkernel.h.

◆ PFLT_CONTEXT

Definition at line 89 of file fltkernel.h.

◆ PFLT_CONTEXT_ALLOCATE_CALLBACK

typedef PVOID(FLTAPI * PFLT_CONTEXT_ALLOCATE_CALLBACK) (_In_ POOL_TYPE PoolType, _In_ SIZE_T Size, _In_ FLT_CONTEXT_TYPE ContextType)

Definition at line 499 of file fltkernel.h.

◆ PFLT_CONTEXT_CLEANUP_CALLBACK

typedef VOID(FLTAPI * PFLT_CONTEXT_CLEANUP_CALLBACK) (_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)

Definition at line 494 of file fltkernel.h.

◆ PFLT_CONTEXT_FREE_CALLBACK

typedef VOID(FLTAPI * PFLT_CONTEXT_FREE_CALLBACK) (_In_ PVOID Pool, _In_ FLT_CONTEXT_TYPE ContextType)

Definition at line 505 of file fltkernel.h.

◆ PFLT_CONTEXT_REGISTRATION

◆ PFLT_DEFERRED_IO_WORKITEM

typedef struct _FLT_DEFERRED_IO_WORKITEM* PFLT_DEFERRED_IO_WORKITEM

Definition at line 863 of file fltkernel.h.

◆ PFLT_DEFERRED_IO_WORKITEM_ROUTINE

typedef VOID(FLTAPI * PFLT_DEFERRED_IO_WORKITEM_ROUTINE) (_In_ PFLT_DEFERRED_IO_WORKITEM FltWorkItem, _In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)

Definition at line 867 of file fltkernel.h.

◆ PFLT_DISCONNECT_NOTIFY

typedef VOID(FLTAPI * PFLT_DISCONNECT_NOTIFY) (_In_opt_ PVOID ConnectionCookie)

Definition at line 856 of file fltkernel.h.

◆ PFLT_FILE_NAME_INFORMATION

◆ PFLT_FILTER

Definition at line 84 of file fltkernel.h.

◆ PFLT_FILTER_UNLOAD_CALLBACK

typedef NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK) (FLT_FILTER_UNLOAD_FLAGS Flags)

Definition at line 654 of file fltkernel.h.

◆ PFLT_GENERATE_FILE_NAME

◆ PFLT_GENERIC_WORKITEM

typedef struct _FLT_GENERIC_WORKITEM* PFLT_GENERIC_WORKITEM

Definition at line 864 of file fltkernel.h.

◆ PFLT_GENERIC_WORKITEM_ROUTINE

typedef VOID(FLTAPI * PFLT_GENERIC_WORKITEM_ROUTINE) (_In_ PFLT_GENERIC_WORKITEM FltWorkItem, _In_ PVOID FltObject, _In_opt_ PVOID Context)

Definition at line 873 of file fltkernel.h.

◆ PFLT_GET_OPERATION_STATUS_CALLBACK

typedef VOID(FLTAPI * PFLT_GET_OPERATION_STATUS_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_IO_PARAMETER_BLOCK IopbSnapshot, _In_ NTSTATUS OperationStatus, _In_opt_ PVOID RequesterContext)

Definition at line 764 of file fltkernel.h.

◆ PFLT_INSTANCE

Definition at line 86 of file fltkernel.h.

◆ PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

typedef NTSTATUS(FLTAPI * PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)

Definition at line 555 of file fltkernel.h.

◆ PFLT_INSTANCE_SETUP_CALLBACK

typedef NTSTATUS(FLTAPI * PFLT_INSTANCE_SETUP_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)

Definition at line 546 of file fltkernel.h.

◆ PFLT_INSTANCE_TEARDOWN_CALLBACK

typedef VOID(FLTAPI * PFLT_INSTANCE_TEARDOWN_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Reason)

Definition at line 568 of file fltkernel.h.

◆ PFLT_IO_PARAMETER_BLOCK

◆ PFLT_MESSAGE_NOTIFY

Definition at line 839 of file fltkernel.h.

◆ PFLT_NAME_CONTROL

◆ PFLT_NORMALIZE_CONTEXT_CLEANUP

typedef VOID(FLTAPI * PFLT_NORMALIZE_CONTEXT_CLEANUP) (_In_opt_ PVOID *NormalizationContext)

Definition at line 701 of file fltkernel.h.

◆ PFLT_NORMALIZE_NAME_COMPONENT

typedef NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT) (_In_ PFLT_INSTANCE Instance, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)

Definition at line 678 of file fltkernel.h.

◆ PFLT_NORMALIZE_NAME_COMPONENT_EX

typedef NTSTATUS(FLTAPI * PFLT_NORMALIZE_NAME_COMPONENT_EX) (_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT VolumeNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)

Definition at line 689 of file fltkernel.h.

◆ PFLT_OPERATION_REGISTRATION

◆ PFLT_PARAMETERS

◆ PFLT_PORT

typedef struct _FLT_PORT* PFLT_PORT

Definition at line 87 of file fltkernel.h.

◆ PFLT_POST_OPERATION_CALLBACK

Definition at line 597 of file fltkernel.h.

◆ PFLT_POSTOP_CALLBACK_STATUS

◆ PFLT_PRE_OPERATION_CALLBACK

Definition at line 582 of file fltkernel.h.

◆ PFLT_PREOP_CALLBACK_STATUS

◆ PFLT_REGISTRATION

◆ PFLT_RELATED_CONTEXTS

◆ PFLT_RELATED_OBJECTS

◆ PFLT_SET_CONTEXT_OPERATION

◆ PFLT_TAG_DATA_BUFFER

◆ PFLT_TRANSACTION_NOTIFICATION_CALLBACK

typedef NTSTATUS(FLTAPI * PFLT_TRANSACTION_NOTIFICATION_CALLBACK) (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG NotificationMask)

Definition at line 706 of file fltkernel.h.

◆ PFLT_VOLUME

Definition at line 85 of file fltkernel.h.

◆ PFLT_VOLUME_PROPERTIES

◆ PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE

typedef VOID(FLTAPI * PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)

Definition at line 939 of file fltkernel.h.

◆ PFLTOPLOCK_WAIT_COMPLETE_ROUTINE

typedef VOID(FLTAPI * PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (_In_ PFLT_CALLBACK_DATA CallbackData, _In_opt_ PVOID Context)

Definition at line 934 of file fltkernel.h.

Enumeration Type Documentation

◆ _FLT_POSTOP_CALLBACK_STATUS

Enumerator
FLT_POSTOP_FINISHED_PROCESSING 
FLT_POSTOP_MORE_PROCESSING_REQUIRED 

Definition at line 587 of file fltkernel.h.

587  {
enum _FLT_POSTOP_CALLBACK_STATUS FLT_POSTOP_CALLBACK_STATUS
enum _FLT_POSTOP_CALLBACK_STATUS * PFLT_POSTOP_CALLBACK_STATUS

◆ _FLT_PREOP_CALLBACK_STATUS

Enumerator
FLT_PREOP_SUCCESS_WITH_CALLBACK 
FLT_PREOP_SUCCESS_NO_CALLBACK 
FLT_PREOP_PENDING 
FLT_PREOP_DISALLOW_FASTIO 
FLT_PREOP_COMPLETE 
FLT_PREOP_SYNCHRONIZE 

Definition at line 572 of file fltkernel.h.

◆ _FLT_SET_CONTEXT_OPERATION

Enumerator
FLT_SET_CONTEXT_REPLACE_IF_EXISTS 
FLT_SET_CONTEXT_KEEP_IF_EXISTS 

Definition at line 818 of file fltkernel.h.

818  {
enum _FLT_SET_CONTEXT_OPERATION * PFLT_SET_CONTEXT_OPERATION
enum _FLT_SET_CONTEXT_OPERATION FLT_SET_CONTEXT_OPERATION

Function Documentation

◆ _Acquires_lock_()

_Acquires_lock_ ( _Global_critical_region_  )

Definition at line 59 of file Object.c.

64 {
66 
67  /* Try acquiring the lock */
69  {
70  /* Someone changed it, use the slow path */
72  }
73 
74  /* Sanity check */
75  FLT_ASSERT(PushLock->Locked);
76 }
#define InterlockedBitTestAndSet
Definition: interlocked.h:30
VOID FASTCALL ExfAcquirePushLockExclusive(PEX_PUSH_LOCK PushLock)
Definition: pushlock.c:471
#define KeEnterCriticalRegion()
Definition: ke_x.h:83
#define EX_PUSH_LOCK_LOCK_V
Definition: Object.c:28
signed int * PLONG
Definition: retypes.h:5
#define FLT_ASSERT(_e)
Definition: fltkernel.h:49

◆ _In_reads_bytes_() [1/4]

◆ _In_reads_bytes_() [2/4]

◆ _In_reads_bytes_() [3/4]

◆ _In_reads_bytes_() [4/4]

◆ _In_reads_bytes_opt_() [1/3]

◆ _In_reads_bytes_opt_() [2/3]

◆ _In_reads_bytes_opt_() [3/3]

◆ _Inout_updates_bytes_opt_()

◆ _IRQL_requires_max_() [1/4]

_Must_inspect_result_ _IRQL_requires_max_ ( APC_LEVEL  )

◆ _IRQL_requires_max_() [2/4]

_IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 30 of file rmap.c.

36 {
38 }
#define TAG_RMAP
Definition: tag.h:133
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1099
#define P(row, col)
Definition: m_matrix.c:147

◆ _IRQL_requires_max_() [3/4]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Definition at line 64 of file Messaging.c.

75 {
76  PFLT_SERVER_PORT_OBJECT PortObject;
78 
79  /* The caller must allow at least one connection */
80  if (MaxConnections == 0)
81  {
83  }
84 
85  /* The request must be for a kernel handle */
86  if (!(ObjectAttributes->Attributes & OBJ_KERNEL_HANDLE))
87  {
89  }
90 
91  /*
92  * Get rundown protection on the target to stop the owner
93  * from unloading whilst this port object is open. It gets
94  * removed in the FltpServerPortClose callback
95  */
96  Status = FltObjectReference(Filter);
97  if (!NT_SUCCESS(Status))
98  {
99  return Status;
100  }
101 
102  /* Create the server port object for this filter */
103  Status = ObCreateObject(KernelMode,
106  KernelMode,
107  NULL,
108  sizeof(FLT_SERVER_PORT_OBJECT),
109  0,
110  0,
111  (PVOID *)&PortObject);
112  if (NT_SUCCESS(Status))
113  {
114  /* Zero out the struct */
115  RtlZeroMemory(PortObject, sizeof(FLT_SERVER_PORT_OBJECT));
116 
117  /* Increment the ref count on the target filter */
119 
120  /* Setup the filter port object */
121  PortObject->Filter = Filter;
122  PortObject->ConnectNotify = ConnectNotifyCallback;
124  PortObject->MessageNotify = MessageNotifyCallback;
125  PortObject->Cookie = ServerPortCookie;
126  PortObject->MaxConnections = MaxConnections;
127 
128  /* Insert the object */
129  Status = ObInsertObject(PortObject,
130  NULL,
132  0,
133  NULL,
135  if (NT_SUCCESS(Status))
136  {
137  /* Lock the connection list */
139 
140  /* Add the new port object to the connection list and increment the count */
143 
144  /* Unlock the connection list*/
146  }
147  }
148 
149  if (!NT_SUCCESS(Status))
150  {
151  /* Allow the filter to be cleaned up */
153  }
154 
155  return Status;
156 }
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:35
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
_Must_inspect_result_ _Outptr_ PFLT_PORT * ServerPort
Definition: fltkernel.h:1873
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
LONG NTSTATUS
Definition: precomp.h:26
#define InsertTailList(ListHead, Entry)
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
LIST_ENTRY mList
Definition: fltmgrint.h:56
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
#define FILE_READ_DATA
Definition: nt_native.h:628
smooth NULL
Definition: ftsmooth.c:416
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
Definition: oblife.c:952
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:24
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1873
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1873
Status
Definition: gdiplustypes.h:24
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
Definition: obhandle.c:2926
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1873
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:261
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY _In_ LONG MaxConnections
Definition: fltkernel.h:1873
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY _In_opt_ PFLT_MESSAGE_NOTIFY MessageNotifyCallback
Definition: fltkernel.h:1873
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121

◆ _IRQL_requires_max_() [4/4]

_Must_inspect_result_ _IRQL_requires_max_ ( DPC_LEVEL  )

◆ _Out_writes_bytes_()

◆ _Out_writes_bytes_to_()

_Must_inspect_result_ _In_ PFILE_OBJECT _Out_writes_bytes_to_ ( Length  ,
BytesRead 
)

◆ _Out_writes_bytes_to_opt_() [1/3]

_Must_inspect_result_ _In_ PFILE_OBJECT _In_ ULONG _In_ ULONG _Out_writes_bytes_to_opt_ ( OutputBufferLength  ,
LengthReturned 
)

◆ _Out_writes_bytes_to_opt_() [2/3]

_In_ FILTER_VOLUME_INFORMATION_CLASS _Out_writes_bytes_to_opt_ ( BufferSize  ,
BytesReturned 
)

◆ _Out_writes_bytes_to_opt_() [3/3]

_Out_writes_bytes_to_opt_ ( VolumePropertiesLength  ,
LengthReturned 
)

◆ _Out_writes_to_opt_() [1/2]

_Must_inspect_result_ _Out_writes_to_opt_ ( VolumeListSize  ,
NumberVolumesReturned 
)

◆ _Out_writes_to_opt_() [2/2]

_Must_inspect_result_ _In_opt_ PFLT_FILTER _Out_writes_to_opt_ ( InstanceListSize  ,
NumberInstancesReturned 
)

◆ _Outptr_result_bytebuffer_()

◆ _Releases_lock_()

_Releases_lock_ ( _Global_critical_region_  )

Definition at line 101 of file Object.c.

106 {
107  EX_PUSH_LOCK OldValue = *PushLock;
108  EX_PUSH_LOCK NewValue;
109 
110  /* Sanity checks */
111  FLT_ASSERT(OldValue.Locked);
112 
113  /* Check if the pushlock is shared */
114  if (OldValue.Shared > 1)
115  {
116  /* Decrease the share count */
117  NewValue.Value = OldValue.Value - EX_PUSH_LOCK_SHARE_INC;
118  }
119  else
120  {
121  /* Clear the pushlock entirely */
122  NewValue.Value = 0;
123  }
124 
125  /* Check if nobody is waiting on us and try clearing the lock here */
126  if ((OldValue.Waiting) ||
127  (ExpChangePushlock(PushLock, NewValue.Ptr, OldValue.Ptr) !=
128  OldValue.Ptr))
129  {
130  /* We have waiters, use the long path */
131  ExfReleasePushLock(PushLock);
132  }
133 
135 }
ULONG_PTR Value
Definition: extypes.h:465
PVOID Ptr
Definition: extypes.h:466
ULONG_PTR Waiting
Definition: extypes.h:460
VOID FASTCALL ExfReleasePushLock(PEX_PUSH_LOCK PushLock)
Definition: pushlock.c:810
#define ExpChangePushlock(x, y, z)
Definition: Object.c:23
ULONG_PTR Shared
Definition: extypes.h:463
#define KeLeaveCriticalRegion()
Definition: ke_x.h:114
#define EX_PUSH_LOCK_SHARE_INC
Definition: Object.c:33
ULONG_PTR Locked
Definition: extypes.h:459
#define FLT_ASSERT(_e)
Definition: fltkernel.h:49

◆ _When_() [1/4]

◆ _When_() [2/4]

_When_ ( (PoolType==NonPagedPoolNx)  ,
_IRQL_requires_max_(DISPATCH_LEVEL  
)

◆ _When_() [3/4]

_When_ ( FlagOn(CallbackData->Iopb->IrpFlags, IRP_PAGING_IO ,
_IRQL_requires_max_(APC_LEVEL  
) -> Iopb->IrpFlags, IRP_PAGING_IO), _IRQL_requires_max_(PASSIVE_LEVEL)) VOID FLTAPI FltPerformSynchronousIo(_Inout_ PFLT_CALLBACK_DATA CallbackData)

◆ _When_() [4/4]

◆ FltCbdqDisable()

VOID FLTAPI FltCbdqDisable ( _Inout_ PFLT_CALLBACK_DATA_QUEUE  Cbdq)

◆ FltCbdqEnable()

VOID FLTAPI FltCbdqEnable ( _Inout_ PFLT_CALLBACK_DATA_QUEUE  Cbdq)

◆ FltCbdqInitialize()

◆ FltCbdqInsertIo()

◆ FltCbdqRemoveIo()

◆ FltCbdqRemoveNextIo()

_Must_inspect_result_ PFLT_CALLBACK_DATA FLTAPI FltCbdqRemoveNextIo ( _Inout_ PFLT_CALLBACK_DATA_QUEUE  Cbdq,
_In_opt_ PVOID  PeekContext 
)

◆ FltClearCallbackDataDirty()

VOID FLTAPI FltClearCallbackDataDirty ( _Inout_ PFLT_CALLBACK_DATA  Data)

◆ FltCompareInstanceAltitudes()

LONG FLTAPI FltCompareInstanceAltitudes ( _In_ PFLT_INSTANCE  Instance1,
_In_ PFLT_INSTANCE  Instance2 
)

◆ FltDecodeParameters()

NTSTATUS FLTAPI FltDecodeParameters ( _In_ PFLT_CALLBACK_DATA  CallbackData,
_Outptr_opt_ PMDL **  MdlAddressPointer,
_Outptr_opt_result_bytebuffer_ **Length PVOID **  Buffer,
_Outptr_opt_ PULONG Length,
_Out_opt_ LOCK_OPERATION DesiredAccess 
)

◆ FltDoCompletionProcessingWhenSafe()

_Must_inspect_result_ BOOLEAN FLTAPI FltDoCompletionProcessingWhenSafe ( _In_ PFLT_CALLBACK_DATA  Data,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_opt_ PVOID  CompletionContext,
_In_ FLT_POST_OPERATION_FLAGS  Flags,
_In_ PFLT_POST_OPERATION_CALLBACK  SafePostCallback,
_Out_ PFLT_POSTOP_CALLBACK_STATUS  RetPostOperationStatus 
)

◆ FltGetIrpName()

PCHAR FLTAPI FltGetIrpName ( _In_ UCHAR  IrpMajorCode)

◆ FltGetSwappedBufferMdlAddress()

PMDL FASTCALL FltGetSwappedBufferMdlAddress ( _In_ PFLT_CALLBACK_DATA  CallbackData)

◆ FltInitializeFileLock()

VOID FLTAPI FltInitializeFileLock ( _Out_ PFILE_LOCK  FileLock)

◆ FltIsCallbackDataDirty()

BOOLEAN FLTAPI FltIsCallbackDataDirty ( _In_ PFLT_CALLBACK_DATA  Data)

◆ FltIsIoCanceled()

BOOLEAN FLTAPI FltIsIoCanceled ( _In_ PFLT_CALLBACK_DATA  CallbackData)

◆ FltIsOperationSynchronous()

BOOLEAN FLTAPI FltIsOperationSynchronous ( _In_ PFLT_CALLBACK_DATA  CallbackData)

◆ FltOplockKeysEqual()

BOOLEAN FLTAPI FltOplockKeysEqual ( _In_opt_ PFILE_OBJECT  Fo1,
_In_opt_ PFILE_OBJECT  Fo2 
)

◆ FltRetainSwappedBufferMdlAddress()

VOID FASTCALL FltRetainSwappedBufferMdlAddress ( _In_ PFLT_CALLBACK_DATA  CallbackData)

◆ FltSetCallbackDataDirty()

VOID FLTAPI FltSetCallbackDataDirty ( _Inout_ PFLT_CALLBACK_DATA  Data)

◆ FltUninitializeFileLock()

VOID FLTAPI FltUninitializeFileLock ( _In_ PFILE_LOCK  FileLock)

Variable Documentation

◆ AllocationSize

◆ Altitude

◆ Buffer

Definition at line 1053 of file fltkernel.h.

◆ BufferSize

_In_ FILTER_VOLUME_INFORMATION_CLASS _In_ ULONG BufferSize

Definition at line 1716 of file fltkernel.h.

◆ BufferSizeNeeded

Definition at line 1117 of file fltkernel.h.

Referenced by AcpiRsCreatePciRoutingTable().

◆ ByteOffset

◆ BytesRead

Definition at line 1255 of file fltkernel.h.

Referenced by _tmain(), AddDrive(), BrowseSubNodeIndexEntries(), ClientSideInstallW(), CCabinet::CommitDataBlocks(), ConDrvReadInput(), CreateBTreeNodeFromIndexNode(), DECLARE_INTERFACE_(), DhcpLeaseIpAddress(), DhcpQueryHWInfo(), DhcpReleaseIpAddressLease(), DhcpRenewIpAddressLease(), DhcpRosGetAdapterInfo(), DhcpStaticRefreshParams(), DismountMain(), DosInt21h(), DosReadCharacter(), EjectDrive(), ElfReadRecord(), EtfspCheckEtfs(), EtfsRead(), Ext2GetReparsePoint(), Ext2ReadFile(), ext3_r_blocks_count_set(), CCabinet::ExtractFile(), GetCurrentResources(), ImgpLoadPEImage(), IncreaseMftSize(), IopReadBootRecord(), IsConsoleProcess(), IsLetterOwned(), IsoRead(), KmtRunKernelTest(), KmtSendStringToDriver(), KmtSendToDriver(), KmtSendUlongToDriver(), KmtSendWStringToDriver(), ListTests(), LoadDIBImage(), CJournaledTestList::LoadJournalFile(), LockOrUnlockVolume(), Main(), MF_ReadMetaFile(), MiniDoAddressingReset(), MixerThreadRoutine(), NtfsInfoMain(), NtfsReadMftRecord(), NtReadVirtualMemory(), CCabinet::Open(), PciIdeXAddDevice(), PciIdeXGetBusData(), PeekNamedPipe(), PerformMount(), PipeThreadProc(), PrintAllVCNs(), QueryMain(), RamdiskCreateDiskDevice(), RamdiskReadWriteReal(), RamdiskSetPartitionInfo(), CCabinet::ReadDataBlocks(), ReadFileRecord(), CCabinet::ReadFileTable(), ReadRdpFile(), ReadRecord(), CCabinet::ReadString(), RefreshDevicesList(), RemountImage(), RemoveDrive(), Rs232ReadByteWin32(), RunTest(), CCabinet::SetCabinetReservedFile(), SetMain(), StatisticsMain(), UpdateMftMirror(), USBPORT_StartDevice(), WinLdrLoadImage(), WinLdrLoadModule(), WinLdrLoadNLSData(), WinLdrLoadSystemHive(), and CCabinet::WriteFileToScratchStorage().

◆ BytesReturned

_In_ FILTER_VOLUME_INFORMATION_CLASS _In_ ULONG _Out_ PULONG BytesReturned

Definition at line 1716 of file fltkernel.h.

Referenced by CKsProxy::AdvisePeriodic(), CKsProxy::AdviseTime(), AudioPositionPropertyHandler(), AuxGetAudio(), AuxSetAudio(), BasepGetVolumeNameFromReparsePoint(), CdRomCompleteIrpAndStartNextPacketSafely(), CBDADeviceControl::CheckChanges(), CKsClockForwarder_ThreadStartup(), CBDADeviceControl::CommitChanges(), ComputeCompatibleFormat(), CKsProxy::ConvertTimeFormat(), COutputPin_SetState(), CreatePinCallback(), COutputPin::CreatePinHandle(), CBDADeviceControl::CreateTopology(), DECLARE_INTERFACE_(), CInputPin::Get(), COutputPin::Get(), CKsProxy::Get(), CBDASignalStatistics::get_SampleTime(), CBDASignalStatistics::get_SignalLocked(), CBDASignalStatistics::get_SignalPresent(), CBDASignalStatistics::get_SignalQuality(), CBDASignalStatistics::get_SignalStrength(), CInputPin::GetAllocatorRequirements(), CKsProxy::GetAvailable(), DriveVolume::GetBitmap(), CKsProxy::GetCapabilities(), DriveVolume::GetClusterInfo(), CBDADeviceControl::GetControlNode(), CKsProxy::GetCurrentPosition(), CKsProxy::GetDuration(), GetFilterNodeProperty(), GetFilterPinDataRanges(), CKsProxy::GetMediaSeekingFormats(), CBDADeviceControl::GetNodeDescriptors(), CBDADeviceControl::GetNodeInterfaces(), CBDADeviceControl::GetNodeTypes(), CKsProxy::GetNumberOfPins(), CKsProxy::GetPinCommunication(), CKsProxy::GetPinDataflow(), CBDAPinControl::GetPinID(), GetPinInstanceCount(), CKsProxy::GetPinInstanceCount(), CKsProxy::GetPinName(), CBDAPinControl::GetPinType(), CBDADeviceControl::GetPinTypes(), CKsProxy::GetPreroll(), CKsProxy::GetStopPosition(), CInputPin::GetSupportedSets(), COutputPin::GetSupportedSets(), CKsProxy::GetSupportedSets(), GetSysAudioDeviceCount(), GetSysAudioDevicePnpName(), CKsProxy::GetTime(), CKsProxy::GetTimeFormat(), GetVolumeNameForRoot(), GetVolumePathNamesForVolumeNameW(), HandleSysAudioFilterPinProperties(), IKsPin_PinMasterClock(), IKsReferenceClock_fnGetResolution(), IKsReferenceClock_fnGetState(), KmtUserCallbackThread(), CKsInterfaceHandler::KsCompleteIo(), KsGetMultiplePinFactoryItems(), CKsInterfaceHandler::KsProcessMediaSamples(), COutputPin::KsPropagateAcquire(), CInputPin::KsPropagateAcquire(), ListFilters(), ListVolumes(), CKsProxy::Load(), main(), MMixerAddEvent(), MMixerAddMixerControl(), MMixerGetAudioPinDataRanges(), MMixerGetChannelCountEnhanced(), MMixerGetChannelCountLegacy(), MMixerGetComponentAndTargetType(), MMixerGetFilterPinCount(), MMixerGetFilterTopologyProperty(), MMixerGetPhysicalConnection(), MMixerGetPinDataFlowAndCommunication(), MMixerGetPinInstanceCount(), MMixerGetPinName(), MMixerSetGetControlDetails(), MMixerSetGetMuxControlDetails(), DriveVolume::MoveFileDumb(), CKsProxy::PerformClockProperty(), Pin_fnDeviceIoControl(), ProcessList_Update(), CInputPin::QuerySupported(), COutputPin::QuerySupported(), CKsProxy::QuerySupported(), RemoveDirectoryW(), SendRequest(), CInputPin::Set(), COutputPin::Set(), CKsProxy::Set(), CKsClockForwarder::SetClockState(), SetMixerInputOutputFormat(), CKsProxy::SetPinState(), CKsProxy::SetPositions(), CKsProxy::SetSyncSource(), CKsProxy::SetTimeFormat(), CBDADeviceControl::StartChanges(), CKsNode::STDMETHODIMP_(), COutputPin::STDMETHODIMP_(), CInputPin::STDMETHODIMP_(), CKsProxy::STDMETHODIMP_(), SysAudioHandleProperty(), Test_WSAIoctl_GetInterfaceList(), CKsProxy::Unadvise(), WdmAudControlDeviceState(), WdmAudFrameSize(), and WdmAudResetStream().

◆ BytesWritten

◆ CallbackContext

◆ CallbackData

◆ CallbackRoutine

◆ CallbackStatus

Definition at line 1020 of file fltkernel.h.

Referenced by _NavigateToLeafNode(), AcpiPsNextParseState(), and KeUserModeCallback().

◆ CanceledCallback

Definition at line 1933 of file fltkernel.h.

◆ CleanupCallback

◆ ClientPort

◆ CompletionFilter

◆ ConnectNotifyCallback

◆ Context

◆ Contexts

Definition at line 1454 of file fltkernel.h.

◆ ContextSize

◆ ContextType

Definition at line 1444 of file fltkernel.h.

◆ CreateDisposition

◆ CreateOptions

◆ CurrentEcpContext

_In_ PECP_LIST _In_opt_ PVOID CurrentEcpContext

Definition at line 2621 of file fltkernel.h.

◆ Data

◆ DataBufferLength

◆ DesiredAccess

◆ DesiredContexts

_In_ FLT_CONTEXT_TYPE DesiredContexts

Definition at line 1454 of file fltkernel.h.

◆ DeviceObject

_Outptr_ PDEVICE_OBJECT* DeviceObject

Definition at line 1658 of file fltkernel.h.

◆ DisconnectNotifyCallback

◆ DiskDeviceObject

_Outptr_ PDEVICE_OBJECT* DiskDeviceObject

Definition at line 1673 of file fltkernel.h.

◆ DriverContext

◆ EaIndex

◆ EaLength

◆ EaListLength

◆ EcpContext

Definition at line 2520 of file fltkernel.h.

◆ EcpContextSize

Definition at line 2571 of file fltkernel.h.

◆ EcpList

Definition at line 2511 of file fltkernel.h.

◆ EcpType

Definition at line 2520 of file fltkernel.h.

◆ Extension

◆ FileAttributes

◆ FileHandle

Definition at line 1230 of file fltkernel.h.

◆ FileInformationClass

Definition at line 1306 of file fltkernel.h.

◆ FileName

◆ FileNameInformation

Definition at line 1062 of file fltkernel.h.

◆ FileNameLength

◆ FileObject

Definition at line 983 of file fltkernel.h.

◆ FileSystemType

_Out_ PFLT_FILESYSTEM_TYPE FileSystemType

Definition at line 2408 of file fltkernel.h.

◆ FileTag

Definition at line 1266 of file fltkernel.h.

◆ Filter

◆ FilterCallback

◆ FilterList

Definition at line 1782 of file fltkernel.h.

◆ FilterListSize

Definition at line 1782 of file fltkernel.h.

◆ FinalComponent

◆ Flags

◆ FltObject

Definition at line 1988 of file fltkernel.h.

◆ FsContext

Definition at line 2239 of file fltkernel.h.

Referenced by FatDecodeFileObject(), and FsRtlNotifyFilterChangeDirectory().

◆ FsControlCode

◆ FsInformationClass

◆ FullDirectoryName

_In_ PLIST_ENTRY _In_ PVOID _In_ PSTRING FullDirectoryName

Definition at line 2239 of file fltkernel.h.

Referenced by FsRtlNotifyFilterChangeDirectory().

◆ Guid

◆ IgnoreBuffer

Definition at line 2239 of file fltkernel.h.

◆ Index

_In_ ULONG Index

Definition at line 1824 of file fltkernel.h.

◆ InformationClass

_In_ FILTER_VOLUME_INFORMATION_CLASS InformationClass

◆ InputBufferLength

◆ Instance

Definition at line 1071 of file fltkernel.h.

◆ InstanceListSize

Definition at line 1804 of file fltkernel.h.

◆ InstanceName

Definition at line 1162 of file fltkernel.h.

Referenced by DiskFdoExecuteWmiMethod().

◆ IoControlCode

◆ Iosb

Definition at line 1761 of file fltkernel.h.

◆ IoStatusBlock

◆ IsDirectory

◆ IsSnapshotVolume

Definition at line 2416 of file fltkernel.h.

◆ IsWritable

Definition at line 1744 of file fltkernel.h.

◆ Length

◆ LengthNeeded

◆ LengthReturned

◆ Lookaside

◆ LookasideList

◆ LowerInstance

_Outptr_ PFLT_INSTANCE* LowerInstance

Definition at line 1680 of file fltkernel.h.

◆ MaxConnections

◆ MessageNotifyCallback

◆ NameOptions

◆ NewContext

Definition at line 1468 of file fltkernel.h.

Referenced by EtfspCreateContext(), and NpGetClientSecurityContext().

◆ NewSize

◆ NextEcpContext

Definition at line 2621 of file fltkernel.h.

◆ NextEcpContextSize

Definition at line 2621 of file fltkernel.h.

◆ NextEcpType

Definition at line 2621 of file fltkernel.h.

◆ NotificationMask

Definition at line 2453 of file fltkernel.h.

◆ NotifyCallbackData

◆ NotifyList

_In_ PLIST_ENTRY NotifyList

Definition at line 2239 of file fltkernel.h.

◆ NumberFiltersReturned

_Must_inspect_result_ * NumberFiltersReturned PFLT_FILTER _In_ ULONG _Out_ PULONG NumberFiltersReturned

Definition at line 1782 of file fltkernel.h.

◆ NumberInstancesReturned

Definition at line 1804 of file fltkernel.h.

◆ NumberVolumesReturned

_Must_inspect_result_ _In_ ULONG _Out_ PULONG NumberVolumesReturned

Definition at line 1793 of file fltkernel.h.

◆ ObjectAttributes

◆ OldContext

_In_ PKTRANSACTION _Outptr_opt_ PFLT_CONTEXT * OldContext

Definition at line 1468 of file fltkernel.h.

◆ OpenCount

Definition at line 2082 of file fltkernel.h.

◆ Operation

◆ OutputBufferLength

◆ OutputPriorityInfo

_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo

Definition at line 2662 of file fltkernel.h.

◆ PoolTag

_In_ ULONG PoolTag

Definition at line 2520 of file fltkernel.h.

Referenced by ExpFindAndRemoveTagBigPages().

◆ PoolType

◆ PrePostCallbackDataRoutine

◆ PriorityHint

_In_ IO_PRIORITY_HINT PriorityHint

Definition at line 2682 of file fltkernel.h.

◆ PriorityInfo

Definition at line 2653 of file fltkernel.h.

◆ QueueType

Definition at line 1977 of file fltkernel.h.

Referenced by ExQueueWorkItem().

◆ RedirectionAllowed

_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowed

Definition at line 2831 of file fltkernel.h.

◆ RedirectionAllowedAllIo

Definition at line 2839 of file fltkernel.h.

◆ RedirectionAllowedThisIo

_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowedThisIo

Definition at line 2839 of file fltkernel.h.

◆ Registration

Definition at line 991 of file fltkernel.h.

Referenced by DriverEntry().

◆ ReplyBuffer

◆ ReplyLength

◆ RequesterContext

◆ RestartScan

◆ RetFileNameInformation

◆ RetFilter

_Outptr_ PFLT_FILTER * RetFilter

Definition at line 991 of file fltkernel.h.

◆ RetInstance

Definition at line 1162 of file fltkernel.h.

◆ RetNewCallbackData

◆ RetTunneledFileNameInformation

◆ ReturnSingleEntry

◆ RetVolume

Definition at line 1619 of file fltkernel.h.

◆ RootDirectory

Definition at line 1126 of file fltkernel.h.

◆ SecurityDescriptor

◆ SecurityInformation

◆ SenderBufferLength

Definition at line 1902 of file fltkernel.h.

◆ ServerPort

◆ ServerPortCookie

◆ SessionId

Definition at line 2816 of file fltkernel.h.

◆ ShareAccess

◆ Size

◆ SizeOfContext

Definition at line 2520 of file fltkernel.h.

◆ SourceDeviceStackSizeModified

_In_ PFLT_INSTANCE _Out_opt_ PBOOLEAN SourceDeviceStackSizeModified

Definition at line 2823 of file fltkernel.h.

◆ Stream

◆ SubjectContext

◆ Tag

◆ TargetInstance

_In_ PFLT_INSTANCE TargetInstance

Definition at line 2823 of file fltkernel.h.

◆ Thread

Definition at line 2653 of file fltkernel.h.

Referenced by _ExAcquireFastMutexUnsafe(), _Function_class_(), _IRQL_requires_min_(), _KeAcquireGuardedMutex(), _KeAcquireGuardedMutexUnsafe(), _KeReleaseGuardedMutex(), _KeTryToAcquireGuardedMutex(), _Requires_lock_held_(), _tWinMain(), AcpiDsCreateWalkState(), AcpiPsParseAml(), CallSoundThread(), CcInitializeCacheManager(), CmpInitializeHiveList(), ConDrvConsoleCtrlEventTimeout(), connect(), ConSrvConsoleCtrlEventTimeout(), DbgkExitProcess(), DbgkExitThread(), DbgkMapViewOfSection(), DbgkpQueueMessage(), DbgkpWakeTarget(), DbgkUnMapViewOfSection(), DECLSPEC_ALIGN(), DLDAcquireExclusive(), DLDAcquireShared(), DLDpAcquireResourceExclusiveLite(), DLDProcessThread(), CDownloadManager::DownloadDlgProc(), ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), ExAcquireSharedWaitForExclusive(), ExIsResourceAcquiredSharedLite(), ExpCreateWorkerThread(), ExpInitializeKeyedEvent(), ExpInitializeWorkerThreads(), ExpRaiseHardError(), ExpTimerApcKernelRoutine(), ExpWaitForResource(), ExpWorkerThreadEntryPoint(), ExSetResourceOwnerPointer(), ExSwapinWorkerThreads(), Ext2ExceptionHandler(), ExTimerRundown(), ExTryToAcquireResourceExclusiveLite(), FFSExceptionHandler(), find_thread(), FirstSendHandler(), gdb_send_exception(), gethostbyaddr(), gethostbyname(), GetProcessLuid(), getprotobyname(), getprotobynumber(), getservbyname(), getservbyport(), getsockopt(), GspGetRegisters(), GspQuery(), GuiConsoleShowConsoleProperties(), GUIDisplayStatusMessage(), handle_gdb_query(), handle_gdb_thread_alive(), inet_ntoa(), InitThreadCallback(), IntTID2PTI(), IofCompleteRequest(), IoRaiseHardError(), IoSetThreadHardErrorMode(), IsConsoleMode(), KdbpAttachToProcess(), KdbpAttachToThread(), KdbpCmdThread(), KdbpInternalEnter(), Ke386CallBios(), Ke386SetIOPL(), KeAttachProcess(), KeDelayExecutionThread(), KeDetachProcess(), KeInitializeApc(), KeInitThread(), KeInsertQueueApc(), KePulseEvent(), KeQueryRuntimeProcess(), KeQueryValuesProcess(), KeRemoveQueue(), KeRemoveQueueApc(), KeRundownQueue(), KeRundownThread(), KeSetAffinityProcess(), KeSetEvent(), KeSetEventBoostPriority(), KeSetKernelStackSwapEnable(), KeSetPriorityAndQuantumProcess(), KeSetQuantumProcess(), KeStackAttachProcess(), KeTerminateThread(), KeTestAlertThread(), KeUnstackDetachProcess(), KeUpdateRunTime(), KeWaitForGate(), KeWaitForMultipleObjects(), KeWaitForSingleObject(), Ki386AdjustEsp0(), KiActivateWaiterQueue(), KiCallbackReturnHandler(), KiCheckForApcDelivery(), KiDeferredReadyThread(), KiDeliverApc(), KiEnterV86Mode(), KiExitDispatcher(), KiExitV86Mode(), KiExitV86Trap(), KiFlushNPXState(), KiInitializeSystem(), KiInsertQueue(), KiInsertQueueApc(), KiProcessDeferredReadyList(), KiQuantumEnd(), KiReleaseTimerLock(), KiRundownThread(), KiScanReadyQueues(), KiSelectNextThread(), KiSelectReadyThread(), KiSetTebBase(), KiSoftwareInterruptHandler(), KiSystemCallHandler(), KiSystemServiceHandler(), KiSystemStartupBootStack(), KiThreadStartup(), KiTrap02(), KiTrap07Handler(), KiTrap0EHandler(), KiTrap10Handler(), KiTrap13Handler(), KmtFinishThread(), LpcpDeletePort(), LpcpDestroyPortQueue(), LpcpFreeToPortZone(), LpcRequestPort(), LpcRequestWaitReplyPort(), main(), MiMapLockedPagesInUserSpace(), MiProtectVirtualMemory(), MiSetProtectionOnSection(), MiUnmapLockedPagesInUserSpace(), MmAccessFaultCacheSection(), MmCleanProcessAddressSpace(), MmDeleteTeb(), MmGrowKernelStackEx(), MmIsRecursiveIoFault(), MmNotPresentFaultCacheSection(), MmZeroPageThread(), NotifyProcessForShutdown(), NpCompleteDeferredIrps(), NtAlertResumeThread(), NtAlertThread(), NtCancelIoFile(), NtCompleteConnectPort(), NtContinue(), NtGetContextThread(), NtImpersonateThread(), NtOpenProcess(), NtOpenThread(), NtOpenThreadTokenEx(), NtQueryInformationThread(), NtQueueApcThread(), NtRaiseException(), NtRegisterThreadTerminatePort(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestPort(), NtRequestWaitReplyPort(), NtResumeThread(), NtSecureConnectPort(), NtSetContextThread(), NtSetInformationProcess(), NtSetInformationThread(), NtSetThreadExecutionState(), NtSetTimer(), NtSuspendThread(), NtTerminateProcess(), NtTerminateThread(), NtUserBuildHwndList(), NtUserGetGUIThreadInfo(), NtUserGetThreadDesktop(), NtUserQueryInformationThread(), NtUserSetInformationThread(), NtUserSetWinEventHook(), NtWaitForDebugEvent(), NtYieldExecution(), ObpReferenceProcessObjectByHandle(), PoRequestShutdownWait(), PsConvertToGuiThread(), PsGetContextThread(), PsGetNextProcessThread(), PspCreateThread(), PspDeleteThread(), PspExitNormalApc(), PspExitThread(), PspGetOrSetContextKernelRoutine(), PspReapRoutine(), PspSystemThreadStartup(), PspTerminateProcess(), PspUserThreadStartup(), PsResumeProcess(), PsSetContextThread(), PsSuspendProcess(), PsTerminateSystemThread(), RfsdExceptionHandler(), RtlEnterCriticalSection(), RtlLeaveCriticalSection(), RtlpCaptureStackLimits(), RtlWalkFrameChain(), send_kd_state_change(), setsockopt(), socket(), SoundThreadMain(), SoundThreadTerminator(), START_TEST(), StartDefragThread(), TestConnect(), TestEventConcurrent(), TestEventFunctional(), TestEventScheduling(), TestFastMutex(), TestGuardedMutexConcurrent(), TestObjectTypes(), TestTdi(), TestTimerFunctional(), UDFExceptionHandler(), VdmpStartExecution(), WPUQueryBlockingCallback(), WriteMinidump(), WSAAccept(), WSAAddressToStringA(), WSAAddressToStringW(), WSAAsyncGetHostByAddr(), WSAAsyncGetHostByName(), WSAAsyncGetProtoByName(), WSAAsyncGetProtoByNumber(), WSAAsyncGetServByName(), WSAAsyncGetServByPort(), WSACancelAsyncRequest(), WSACancelBlockingCall(), WSACleanup(), WSAIsBlocking(), WSAJoinLeaf(), WSALookupServiceBeginW(), WSALookupServiceEnd(), WSALookupServiceNextW(), WSARecvDisconnect(), WSASendDisconnect(), WSASetBlockingHook(), WSASocketW(), WSAStringToAddressA(), WSAStringToAddressW(), WSAUnhookBlockingHook(), WsSlowProlog(), WsSlowPrologTid(), WsThreadAllocate(), WsThreadBlockingCallback(), WsThreadCreate(), WsThreadDestroyCurrentThread(), and WsThreadGetThreadId().

◆ Timeout

◆ Transaction

_In_ PKTRANSACTION Transaction

Definition at line 2366 of file fltkernel.h.

◆ TransactionContext

_In_ PKTRANSACTION _In_opt_ PFLT_CONTEXT TransactionContext

Definition at line 2453 of file fltkernel.h.

◆ TraverseCallback

◆ UnlockRoutine

◆ UpperInstance

_Outptr_ PFLT_INSTANCE* UpperInstance

Definition at line 1687 of file fltkernel.h.

◆ Volume

_In_ PFLT_VOLUME Volume

Definition at line 1162 of file fltkernel.h.

◆ VolumeFileObject

Definition at line 2284 of file fltkernel.h.

◆ VolumeGuidName

Definition at line 1752 of file fltkernel.h.

◆ VolumeHandle

◆ VolumeListSize

Definition at line 1793 of file fltkernel.h.

Referenced by FltEnumerateVolumes().

◆ VolumeName

◆ VolumePropertiesLength

_In_ ULONG VolumePropertiesLength

Definition at line 1735 of file fltkernel.h.

◆ WaitCompletionRoutine

◆ WatchTree

◆ WorkerRoutine