ReactOS 0.4.15-dev-7961-gdcf9eb0
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)
 Queries information details about a security descriptor.
 
 _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:
#define FLT_TRANSACTION_CONTEXT
Definition: fltkernel.h:443
#define FLT_STREAMHANDLE_CONTEXT
Definition: fltkernel.h:442
#define FLT_VOLUME_CONTEXT
Definition: fltkernel.h:438
#define FLT_FILE_CONTEXT
Definition: fltkernel.h:440
#define FLT_STREAM_CONTEXT
Definition: fltkernel.h:441
#define FLT_INSTANCE_CONTEXT
Definition: fltkernel.h:439

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

#define FLT_ASSERT (   _e)    NT_ASSERT(_e)

Definition at line 49 of file fltkernel.h.

◆ 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.

◆ FLT_FILE_CONTEXT

#define FLT_FILE_CONTEXT   0x0004

Definition at line 440 of file fltkernel.h.

◆ 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.

◆ 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:
#define TRANSACTION_NOTIFY_COMMIT
Definition: ktmtypes.h:50
#define TRANSACTION_NOTIFY_ROLLBACK
Definition: ktmtypes.h:51
#define TRANSACTION_NOTIFY_PREPARE
Definition: ktmtypes.h:49
#define TRANSACTION_NOTIFY_COMMIT_FINALIZE
Definition: ktmtypes.h:74
#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 NTDDI_VERSION
Definition: k32.h:33
#define OSVER(Version)
Definition: sdkddkver.h:142
#define NTDDI_WINXP
Definition: sdkddkver.h:87
#define NTDDI_VISTA
Definition: sdkddkver.h:103
#define NTDDI_WINXPSP2
Definition: sdkddkver.h:89
#define NTDDI_WS03
Definition: sdkddkver.h:92
#define NTDDI_WS03SP1
Definition: sdkddkver.h:93
#define NTDDI_WIN2KSP4
Definition: sdkddkver.h:86
#define NTDDI_WIN2K
Definition: sdkddkver.h:82
#define SPVER(Version)
Definition: sdkddkver.h:143

Definition at line 34 of file fltkernel.h.

◆ FLT_MGR_BASELINE

◆ 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.

◆ 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.

◆ FLT_STREAMHANDLE_CONTEXT

#define FLT_STREAMHANDLE_CONTEXT   0x0010

Definition at line 442 of file fltkernel.h.

◆ 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.

◆ 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.

◆ FLT_VOLUME_CONTEXT

#define FLT_VOLUME_CONTEXT   0x0001

Definition at line 438 of file fltkernel.h.

◆ 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.

◆ 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.

◆ 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.

◆ 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 899 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 909 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 882 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 893 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 904 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 888 of file fltkernel.h.

◆ PFLT_COMPLETE_CANCELED_CALLBACK

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

Definition at line 859 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 928 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 748 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 847 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 498 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 493 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 504 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 866 of file fltkernel.h.

◆ PFLT_DISCONNECT_NOTIFY

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

Definition at line 855 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 653 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 872 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 763 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 554 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 545 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 567 of file fltkernel.h.

◆ PFLT_IO_PARAMETER_BLOCK

◆ PFLT_MESSAGE_NOTIFY

Definition at line 838 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 700 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 677 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 688 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 596 of file fltkernel.h.

◆ PFLT_POSTOP_CALLBACK_STATUS

◆ PFLT_PRE_OPERATION_CALLBACK

Definition at line 581 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 705 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 938 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 933 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
@ FLT_POSTOP_MORE_PROCESSING_REQUIRED
Definition: fltkernel.h:589
@ FLT_POSTOP_FINISHED_PROCESSING
Definition: fltkernel.h:588
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.

572 {
enum _FLT_PREOP_CALLBACK_STATUS FLT_PREOP_CALLBACK_STATUS
@ FLT_PREOP_DISALLOW_FASTIO
Definition: fltkernel.h:576
@ FLT_PREOP_COMPLETE
Definition: fltkernel.h:577
@ FLT_PREOP_PENDING
Definition: fltkernel.h:575
@ FLT_PREOP_SUCCESS_WITH_CALLBACK
Definition: fltkernel.h:573
@ FLT_PREOP_SUCCESS_NO_CALLBACK
Definition: fltkernel.h:574
@ FLT_PREOP_SYNCHRONIZE
Definition: fltkernel.h:578
enum _FLT_PREOP_CALLBACK_STATUS * PFLT_PREOP_CALLBACK_STATUS

◆ _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 {
@ FLT_SET_CONTEXT_KEEP_IF_EXISTS
Definition: fltkernel.h:820
@ FLT_SET_CONTEXT_REPLACE_IF_EXISTS
Definition: fltkernel.h:819
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 EX_PUSH_LOCK_LOCK_V
Definition: Object.c:28
#define FLT_ASSERT(_e)
Definition: fltkernel.h:49
#define InterlockedBitTestAndSet
Definition: interlocked.h:30
#define KeEnterCriticalRegion()
Definition: ke_x.h:88
VOID FASTCALL ExfAcquirePushLockExclusive(PEX_PUSH_LOCK PushLock)
Definition: pushlock.c:471
int32_t * PLONG
Definition: typedefs.h:58

◆ _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  )

Definition at line 37 of file cddata.c.

254{
255 THREAD_CONTEXT ThreadContext = {0};
256 PIRP_CONTEXT IrpContext = NULL;
258
259#ifdef CD_SANITY
260 PVOID PreviousTopLevel;
261#endif
262
264
265#if DBG
266
267 KIRQL SaveIrql = KeGetCurrentIrql();
268
269#endif
270
272
274
276
277#ifdef CD_SANITY
278 PreviousTopLevel = IoGetTopLevelIrp();
279#endif
280
281 //
282 // Loop until this request has been completed or posted.
283 //
284
285 do {
286
287 //
288 // Use a try-except to handle the exception cases.
289 //
290
291 _SEH2_TRY {
292
293 //
294 // If the IrpContext is NULL then this is the first pass through
295 // this loop.
296 //
297
298 if (IrpContext == NULL) {
299
300 //
301 // Decide if this request is waitable an allocate the IrpContext.
302 // If the file object in the stack location is NULL then this
303 // is a mount which is always waitable. Otherwise we look at
304 // the file object flags.
305 //
306
308
309 Wait = TRUE;
310
311 } else {
312
313 Wait = CanFsdWait( Irp );
314 }
315
316 IrpContext = CdCreateIrpContext( Irp, Wait );
317
318 //
319 // Update the thread context information.
320 //
321
322 CdSetThreadContext( IrpContext, &ThreadContext );
323
324#ifdef CD_SANITY
325 NT_ASSERT( !CdTestTopLevel ||
326 SafeNodeType( IrpContext->TopLevel ) == CDFS_NTC_IRP_CONTEXT );
327#endif
328
329 //
330 // Otherwise cleanup the IrpContext for the retry.
331 //
332
333 } else {
334
335 //
336 // Set the MORE_PROCESSING flag to make sure the IrpContext
337 // isn't inadvertently deleted here. Then cleanup the
338 // IrpContext to perform the retry.
339 //
340
341 SetFlag( IrpContext->Flags, IRP_CONTEXT_FLAG_MORE_PROCESSING );
342 CdCleanupIrpContext( IrpContext, FALSE );
343 }
344
345 //
346 // Case on the major irp code.
347 //
348
349 switch (IrpContext->MajorFunction) {
350
351 case IRP_MJ_CREATE :
352
353 Status = CdCommonCreate( IrpContext, Irp );
354 break;
355
356 case IRP_MJ_CLOSE :
357
358 Status = CdCommonClose( IrpContext, Irp );
359 break;
360
361 case IRP_MJ_READ :
362
363 //
364 // If this is an Mdl complete request, don't go through
365 // common read.
366 //
367
368 if (FlagOn( IrpContext->MinorFunction, IRP_MN_COMPLETE )) {
369
370 Status = CdCompleteMdl( IrpContext, Irp );
371
372 } else {
373
374 Status = CdCommonRead( IrpContext, Irp );
375 }
376
377 break;
378
379 case IRP_MJ_WRITE :
380
381 Status = CdCommonWrite( IrpContext, Irp );
382 break;
383
385
386 Status = CdCommonQueryInfo( IrpContext, Irp );
387 break;
388
390
391 Status = CdCommonSetInfo( IrpContext, Irp );
392 break;
393
395
396 Status = CdCommonQueryVolInfo( IrpContext, Irp );
397 break;
398
400
401 Status = CdCommonDirControl( IrpContext, Irp );
402 break;
403
405
406 Status = CdCommonFsControl( IrpContext, Irp );
407 break;
408
410
411 Status = CdCommonDevControl( IrpContext, Irp );
412 break;
413
415
416 Status = CdCommonLockControl( IrpContext, Irp );
417 break;
418
419 case IRP_MJ_CLEANUP :
420
421 Status = CdCommonCleanup( IrpContext, Irp );
422 break;
423
424 case IRP_MJ_PNP :
425
426 Status = CdCommonPnp( IrpContext, Irp );
427 break;
428
429 case IRP_MJ_SHUTDOWN :
430
431 Status = CdCommonShutdown( IrpContext, Irp );
432 break;
433
434 default :
435
437 CdCompleteRequest( IrpContext, Irp, Status );
438 }
439
441
442 Status = CdProcessException( IrpContext, Irp, _SEH2_GetExceptionCode() );
443 } _SEH2_END;
444
445 } while (Status == STATUS_CANT_WAIT);
446
447#ifdef CD_SANITY
448 NT_ASSERT( !CdTestTopLevel ||
449 (PreviousTopLevel == IoGetTopLevelIrp()) );
450#endif
451
453
454 NT_ASSERT( SaveIrql == KeGetCurrentIrql( ));
455
456 return Status;
457}
static PIO_STACK_LOCATION IoGetCurrentIrpStackLocation(PIRP Irp)
unsigned char BOOLEAN
LONG NTSTATUS
Definition: precomp.h:26
VOID CdCompleteRequest(_Inout_opt_ PIRP_CONTEXT IrpContext, _Inout_opt_ PIRP Irp, _In_ NTSTATUS Status)
Definition: cddata.c:914
LONG CdExceptionFilter(_Inout_ PIRP_CONTEXT IrpContext, _In_ PEXCEPTION_POINTERS ExceptionPointer)
Definition: cddata.c:525
VOID CdSetThreadContext(_Inout_ PIRP_CONTEXT IrpContext, _In_ PTHREAD_CONTEXT ThreadContext)
Definition: cddata.c:981
#define ASSERT_OPTIONAL_IRP(I)
Definition: cddata.h:251
NTSTATUS CdCompleteMdl(_In_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: cachesup.c:411
VOID CdCleanupIrpContext(_In_ PIRP_CONTEXT IrpContext, _In_ BOOLEAN Post)
Definition: strucsup.c:1733
#define CanFsdWait(I)
Definition: cdprocs.h:2001
NTSTATUS CdCommonLockControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: lockctrl.c:35
NTSTATUS CdCommonDevControl(_Inout_ PIRP_CONTEXT IrpContext, _Inout_ PIRP Irp)
Definition: devctrl.c:46
_Ret_valid_ PIRP_CONTEXT CdCreateIrpContext(_In_ PIRP Irp, _In_ BOOLEAN Wait)
Definition: strucsup.c:1573
#define IRP_MJ_PNP
Definition: cdrw_usr.h:52
#define IRP_CONTEXT_FLAG_MORE_PROCESSING
Definition: cdstruc.h:1214
_In_ PIRP Irp
Definition: csq.h:116
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CDFS_NTC_IRP_CONTEXT
Definition: nodetype.h:34
#define SafeNodeType(Ptr)
Definition: nodetype.h:54
UCHAR KIRQL
Definition: env_spec_w32.h:591
#define KeGetCurrentIrql()
Definition: env_spec_w32.h:706
#define SetFlag(_F, _SF)
Definition: ext2fs.h:187
#define FlagOn(_F, _SF)
Definition: ext2fs.h:179
#define _SEH2_END
Definition: filesup.c:22
#define _SEH2_TRY
Definition: filesup.c:19
#define FsRtlEnterFileSystem
#define FsRtlExitFileSystem
Status
Definition: gdiplustypes.h:25
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
PIRP NTAPI IoGetTopLevelIrp(VOID)
Definition: irp.c:1843
#define STATUS_CANT_WAIT
Definition: ntstatus.h:452
#define _SEH2_GetExceptionCode()
Definition: pseh2_64.h:159
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:34
#define _SEH2_GetExceptionInformation()
Definition: pseh2_64.h:158
#define IRP_MJ_DIRECTORY_CONTROL
Definition: rdpdr.c:51
#define IRP_MJ_CLOSE
Definition: rdpdr.c:45
#define IRP_MJ_READ
Definition: rdpdr.c:46
#define IRP_MJ_DEVICE_CONTROL
Definition: rdpdr.c:52
#define IRP_MJ_QUERY_VOLUME_INFORMATION
Definition: rdpdr.c:50
#define IRP_MJ_LOCK_CONTROL
Definition: rdpdr.c:53
#define IRP_MJ_WRITE
Definition: rdpdr.c:47
#define IRP_MJ_SET_INFORMATION
Definition: rdpdr.c:49
#define IRP_MJ_CREATE
Definition: rdpdr.c:44
#define IRP_MJ_QUERY_INFORMATION
Definition: rdpdr.c:48
#define STATUS_INVALID_DEVICE_REQUEST
Definition: udferr_usr.h:138
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
Definition: wdfdevice.h:550
_In_ WDFDPC _In_ BOOLEAN Wait
Definition: wdfdpc.h:170
#define IRP_MN_COMPLETE
Definition: iotypes.h:4420
#define IRP_MJ_FILE_SYSTEM_CONTROL
#define IRP_MJ_SHUTDOWN
#define IRP_MJ_CLEANUP
#define NT_ASSERT
Definition: rtlfuncs.h:3310

◆ _IRQL_requires_max_() [2/4]

_IRQL_requires_max_ ( DISPATCH_LEVEL  )

Definition at line 347 of file hardware.c.

1709{
1710 SendKey();
1712}
static VOID SendKey(VOID)
Definition: hardware.c:332
static VOID Wake(_In_ UCHAR Csn)
Definition: hardware.c:149
_In_ PISAPNP_LOGICAL_DEVICE LogicalDevice
Definition: isapnp.h:399

◆ _IRQL_requires_max_() [3/4]

_Must_inspect_result_ _IRQL_requires_max_ ( DPC_LEVEL  )

◆ _IRQL_requires_max_() [4/4]

_Must_inspect_result_ _IRQL_requires_max_ ( PASSIVE_LEVEL  )

Queries information details about a security descriptor.

Computes the quota size of a security descriptor.

Assigns a security descriptor for a new object.

An extended function that assigns a security descriptor for a new object.

Frees a security descriptor.

An extended function that sets new information data to a security descriptor.

Modifies some information data about a security descriptor.

Parameters
[in]SecurityInformationSecurity information details to be queried from a security descriptor.
[out]SecurityDescriptorThe returned security descriptor with security information data.
[in,out]LengthThe returned length of a security descriptor.
[in,out]ObjectsSecurityDescriptorThe returned object security descriptor.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the specific information about the security descriptor has been queried. STATUS_BUFFER_TOO_SMALL is returned if the buffer size is too small to contain the queried info about the security descriptor.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
See SeSetSecurityDescriptorInfoEx.
Parameters
[in]ObjectIf specified, the function will use this arbitrary object that points to an object security descriptor.
[in]SecurityInformationSecurity information details to be set.
[in]SecurityDescriptorA security descriptor where its info is to be changed.
[in,out]ObjectsSecurityDescriptorThe returned pointer to security descriptor objects.
[in]AutoInheritFlagsFlags bitmask inheritation, influencing how the security descriptor can be inherited and if it can be in the first place.
[in]PoolTypePool type for the new security descriptor to allocate.
[in]GenericMappingThe generic mapping of access rights masks.
Returns
Returns STATUS_SUCCESS if the operations have been completed without problems and that new info has been set to the security descriptor. STATUS_NO_SECURITY_ON_OBJECT is returned if the object does not have a security descriptor. STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the new security descriptor with new info set has failed.
Parameters
[in]SecurityDescriptorA security descriptor to be freed from memory.
Returns
Returns STATUS_SUCCESS.
Parameters
[in]_ParentDescriptorA security descriptor of the parent object that is being created.
[in]_ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]ObjectTypeThe type of the new object.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]AutoInheritFlagsAutomatic inheritance flags that influence how access control entries within ACLs from security descriptors are inherited.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
Returns STATUS_SUCCESS if the operations have been completed successfully and that the security descriptor has been assigned to the new object. STATUS_NO_TOKEN is returned if the caller hasn't supplied a valid argument to a security subject context. STATUS_INVALID_OWNER is returned if the caller hasn't supplied a parent descriptor that belongs to the main user (owner). STATUS_INVALID_PRIMARY_GROUP is returned by the same reason as with the previous NTSTATUS code. The two NTSTATUS codes are returned if the calling thread stated that the owner and/or group is defaulted to the parent descriptor (SEF_DEFAULT_OWNER_FROM_PARENT and/or SEF_DEFAULT_GROUP_FROM_PARENT respectively). STATUS_INSUFFICIENT_RESOURCES is returned if memory pool allocation for the descriptor buffer has failed. A failure NTSTATUS is returned otherwise.
Parameters
[in]ParentDescriptorA security descriptor of the parent object that is being created.
[in]ExplicitDescriptorAn explicit security descriptor that is applied to a new object.
[out]NewDescriptorThe new allocated security descriptor.
[in]IsDirectoryObjectSet this to TRUE if the newly created object is a directory object, otherwise set this to FALSE.
[in]SubjectContextSecurity subject context of the new object.
[in]GenericMappingGeneric mapping of access mask rights.
[in]PoolTypeThis parameter is unused.
Returns
See SeAssignSecurityEx.
Parameters
[in]SecurityDescriptorA security descriptor.
[out]QuotaInfoSizeThe returned quota size of the given security descriptor to the caller. The function may return 0 to this parameter if the descriptor doesn't have a group or a discretionary access control list (DACL) even.
Returns
Returns STATUS_SUCCESS if the quota size of a security descriptor has been computed successfully. STATUS_UNKNOWN_REVISION is returned if the security descriptor has an invalid revision.

Definition at line 923 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 */
97 if (!NT_SUCCESS(Status))
98 {
99 return Status;
100 }
101
102 /* Create the server port object for this filter */
107 NULL,
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;
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}
static const INTERNET_PORT ServerPort
Definition: CWebService.cpp:11
POBJECT_TYPE ServerPortObjectType
Definition: Messaging.c:24
VOID FLTAPI FltObjectDereference(_Inout_ PVOID Object)
Definition: Object.c:53
NTSTATUS FLTAPI FltObjectReference(_Inout_ PVOID Object)
Definition: Object.c:41
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
Definition: conport.c:36
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define InsertTailList(ListHead, Entry)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1801
_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:1877
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY ConnectNotifyCallback
Definition: fltkernel.h:1875
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID ServerPortCookie
Definition: fltkernel.h:1874
_Must_inspect_result_ _Outptr_ PFLT_PORT _In_ POBJECT_ATTRIBUTES _In_opt_ PVOID _In_ PFLT_CONNECT_NOTIFY _In_ PFLT_DISCONNECT_NOTIFY DisconnectNotifyCallback
Definition: fltkernel.h:1876
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
Definition: Object.c:322
VOID FASTCALL ExAcquireFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:23
VOID FASTCALL ExReleaseFastMutex(IN PFAST_MUTEX FastMutex)
Definition: fmutex.c:31
#define OBJ_KERNEL_HANDLE
Definition: winternl.h:231
static LONG MaxConnections
#define KernelMode
Definition: asm.h:34
#define FILE_READ_DATA
Definition: nt_native.h:628
#define STANDARD_RIGHTS_ALL
Definition: nt_native.h:69
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
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:2935
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:1039
FLT_MUTEX_LIST_HEAD ConnectionList
Definition: fltmgrint.h:121
LIST_ENTRY mList
Definition: fltmgrint.h:56
FAST_MUTEX mLock
Definition: fltmgrint.h:55
PFLT_DISCONNECT_NOTIFY DisconnectNotify
Definition: fltmgrint.h:192
PFLT_MESSAGE_NOTIFY MessageNotify
Definition: fltmgrint.h:193
PFLT_CONNECT_NOTIFY ConnectNotify
Definition: fltmgrint.h:191
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135

◆ _Out_writes_bytes_()

◆ _Out_writes_bytes_to_()

_Must_inspect_result_ _In_ PFILE_OBJECT _In_opt_ PLARGE_INTEGER _In_ ULONG _Out_writes_bytes_to_ ( Length  ,
BytesRead 
)

◆ _Out_writes_bytes_to_opt_() [1/3]

_In_ FILTER_INFORMATION_CLASS _Out_writes_bytes_to_opt_ ( BufferSize  ,
BytesReturned 
)

◆ _Out_writes_bytes_to_opt_() [2/3]

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

◆ _Out_writes_bytes_to_opt_() [3/3]

_Out_writes_bytes_to_opt_ ( VolumePropertiesLength  ,
LengthReturned 
)

◆ _Out_writes_to_opt_() [1/2]

_Must_inspect_result_ _In_opt_ PFLT_FILTER _Out_writes_to_opt_ ( InstanceListSize  ,
NumberInstancesReturned 
)

◆ _Out_writes_to_opt_() [2/2]

_Must_inspect_result_ _Out_writes_to_opt_ ( VolumeListSize  ,
NumberVolumesReturned 
)

◆ _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}
#define EX_PUSH_LOCK_SHARE_INC
Definition: Object.c:33
#define ExpChangePushlock(x, y, z)
Definition: Object.c:23
#define KeLeaveCriticalRegion()
Definition: ke_x.h:119
VOID FASTCALL ExfReleasePushLock(PEX_PUSH_LOCK PushLock)
Definition: pushlock.c:810
ULONG_PTR Value
Definition: extypes.h:465
PVOID Ptr
Definition: extypes.h:466
ULONG_PTR Waiting
Definition: extypes.h:460
ULONG_PTR Shared
Definition: extypes.h:463
ULONG_PTR Locked
Definition: extypes.h:459

◆ _When_() [1/4]

◆ _When_() [2/4]

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

◆ _When_() [3/4]

◆ _When_() [4/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)

◆ 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 1715 of file fltkernel.h.

◆ BufferSizeNeeded

◆ ByteOffset

◆ BytesRead

◆ BytesReturned

_In_ FILTER_VOLUME_INFORMATION_CLASS _In_ ULONG _Out_ PULONG BytesReturned

Definition at line 1716 of file fltkernel.h.

◆ BytesWritten

◆ CallbackContext

◆ CallbackData

◆ CallbackRoutine

◆ CallbackStatus

Definition at line 1020 of file fltkernel.h.

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

◆ CanceledCallback

Definition at line 1932 of file fltkernel.h.

◆ CleanupCallback

◆ ClientPort

◆ CompletionFilter

◆ ConnectNotifyCallback

◆ Context

◆ Contexts

Definition at line 1454 of file fltkernel.h.

◆ ContextSize

◆ ContextType

Definition at line 1443 of file fltkernel.h.

Referenced by BaseInitializeContext(), and IsContextTypeValid().

◆ CreateDisposition

◆ CreateOptions

◆ CurrentEcpContext

_In_ PECP_LIST _In_opt_ PVOID CurrentEcpContext

Definition at line 2621 of file fltkernel.h.

Referenced by FsRtlGetNextExtraCreateParameter().

◆ Data

◆ DataBufferLength

◆ DesiredAccess

◆ DesiredContexts

_In_ FLT_CONTEXT_TYPE DesiredContexts

Definition at line 1453 of file fltkernel.h.

◆ DeviceObject

Definition at line 1657 of file fltkernel.h.

◆ DisconnectNotifyCallback

◆ DiskDeviceObject

_Outptr_ PDEVICE_OBJECT* DiskDeviceObject

Definition at line 1672 of file fltkernel.h.

Referenced by FltGetDiskDeviceObject(), and IoGetDiskDeviceObject().

◆ DriverContext

◆ EaIndex

◆ EaLength

◆ EaListLength

◆ EcpContext

Definition at line 2524 of file fltkernel.h.

◆ EcpContextSize

Definition at line 2573 of file fltkernel.h.

◆ EcpList

◆ EcpType

Definition at line 2519 of file fltkernel.h.

◆ Extension

◆ FileAttributes

◆ FileHandle

Definition at line 1231 of file fltkernel.h.

Referenced by _IRQL_requires_max_(), AddDiskToList(), ApphelpCheckRunAppEx(), BaseCheckAppcompatCache(), BaseCheckRunApp(), BaseMarkFileForDelete(), BasepCheckBadapp(), BasepCheckWebBladeHashes(), BasepOpenFileForMove(), BasepShimCacheCheckBypass(), BasepShimCacheLookup(), BasepShimCacheSearch(), BasicBehaviorChecks(), BindIoCompletionCallback(), BlImgLoadImageWithProgress2(), BmFwInitializeBootDirectoryPath(), call_ApphelpCheckRunApp(), CallApphelpWithImage(), CheckForValidPEAndVendor(), clean_main(), CmosWriteFile(), CmpInitHiveFromFile(), CmSaveKey(), CmSaveMergedKeys(), CompareFileContents(), CreateFileA(), CreateFileW(), CreateIoCompletionPort(), CreatePartitionList(), CreateProcessInternalW(), CreateRegistryFile(), CSR_API(), DbgUiConvertStateChangeStructure(), DeleteFileW(), DoesPathExist(), DosCreateFile(), DosCreateFileEx(), DosDeviceIoControl(), DosFlushFileBuffers(), DosInt21h(), DosLoadDriver(), DosLoadExecutable(), DosOpenFile(), DosPrintCharacter(), DosReadCharacter(), DosReadFile(), DosReadLineBuffered(), DosSeekFile(), DosWriteFile(), DumpDisk(), DumpPartition(), Ext2Close(), Ext2GetFileInformation(), Ext2Open(), Ext2OpenDevice(), Ext2OpenFile(), Ext2Read(), Ext2Seek(), Fat12Format(), Fat12WriteBootSector(), Fat12WriteFAT(), Fat12WriteRootDirectory(), Fat16Format(), Fat16WriteBootSector(), Fat16WriteFAT(), Fat16WriteRootDirectory(), Fat32Format(), Fat32WriteBootSector(), Fat32WriteFAT(), Fat32WriteFsInfo(), Fat32WriteRootDirectory(), FatClose(), FatGetFileInformation(), FatOpen(), FatRead(), FatSeek(), FatWipeSectors(), Fatx16WriteFAT(), Fatx32WriteFAT(), FatxFormat(), FatxWriteBootSector(), FatxWriteRootDirectory(), FileClose(), FileLoadByHandle(), FilterConnectCommunicationPort(), FindBootStore(), FindFirstStreamW(), FsRecRegisterFs(), GetFileSecurityW(), GetFileSystem(), GetPhysicalFileSize(), ImageAddCertificate(), ImageGetDigestStream(), ImageRemoveCertificate(), InfOpenFile(), InfWriteFile(), IniCacheLoad(), IniCacheLoadByHandle(), IniCacheSave(), IniCacheSaveByHandle(), InstallBootCodeToFile(), InstallSetupInfFile(), IntGdiAddFontResourceEx(), IntGetCodePageEntry(), IoCreateFile(), IoCreateFileSpecifyDeviceObjectHint(), IoCreateStreamFileObjectEx(), IopCreateFile(), IopCreateLogFile(), IopGetDeviceObjectPointer(), IopMarkBootPartition(), IopWriteLogFile(), IsoClose(), IsoGetFileInformation(), IsoOpen(), IsoRead(), IsoSeek(), kbd_c(), kbd_def(), kbd_h(), kbd_rc(), LdrpCheckForLoadedDll(), LdrpCreateDllSection(), LdrVerifyImageMatchesChecksum(), LoadSymbolsRoutine(), LogMessage(), main(), MapDebugInformation(), MapFile(), MiShutdownSystem(), MmCreateArm3Section(), MmCreateSection(), MmLoadSystemImage(), DriveVolume::MoveFileDumb(), MyDeleteFile(), NdisCloseFile(), NdisMapFile(), NdisOpenFile(), NdisUnmapFile(), NtCancelIoFile(), NtCreateFile(), NtCreateMailslotFile(), NtCreateNamedPipeFile(), NtCreatePagingFile(), NtCreateSection(), NtFlushBuffersFile(), NtfsClose(), NtfsGetFileInformation(), NtfsOpen(), NtfsRead(), NtfsSeek(), NtLockFile(), NtNotifyChangeDirectoryFile(), NtOpenFile(), NtQueryDirectoryFile(), NtQueryInformationFile(), NtQueryVolumeInformationFile(), NtReadFile(), NtSaveKey(), NtSaveKeyEx(), NtSaveMergedKeys(), NtSetInformationFile(), NtSetVolumeInformationFile(), NtUnlockFile(), NtWriteFile(), OpenAndMapFile(), OpenFile(), PopAddRemoveSysCapsCallback(), PrintNameTable(), ProtectBootIni(), PsLocateSystemDll(), QueryFileInfo(), ReadBlock(), ReadBootCodeByHandle(), ReadBootCodeFromFile(), RegRestoreKeyW(), RegSaveKeyW(), RtlCreateBootStatusDataFile(), RtlGetSetBootStatusData(), RtlLockBootStatusData(), RtlSetIoCompletionCallback(), RtlUnlockBootStatusData(), SaveBootSector(), SetFileAttributesW(), SetFileCompletionNotificationModes(), SetFileSecurityW(), SetLastWriteTime(), SetupDeleteFile(), SmpDeletePagingFile(), SmpGetPagingFileSize(), SmpInitializeKnownDllsInternal(), SmpProcessFileRenames(), START_TEST(), Test_ApphelpCheckRunApp(), Test_ImageSection(), Test_ImageSection2(), TestAllInformation(), TestProviderInfo(), TestRead(), TestRelativeNames(), TestSharedCacheMap(), TestWrite(), TouchFileTimes(), UnprotectBootIni(), VfatFormat(), VfatxFormat(), WaitNamedPipeW(), WritePartitions(), xHalIoAssignDriveLetters(), and xOpenFile().

◆ FileInformationClass

Definition at line 1307 of file fltkernel.h.

◆ FileName

◆ FileNameInformation

Definition at line 1063 of file fltkernel.h.

◆ FileNameLength

◆ FileObject

◆ FileSystemType

_Out_ PFLT_FILESYSTEM_TYPE FileSystemType

Definition at line 2407 of file fltkernel.h.

◆ FileTag

Definition at line 1267 of file fltkernel.h.

◆ Filter

CopyMemory & Filter

Definition at line 1801 of file fltkernel.h.

Referenced by _IRQL_requires_max_(), _SEH3$_GetFilterResult(), _SEH3$_InvokeNestedFunctionFilter(), AudioPositionPropertyHandler(), BdaMethodCreatePin(), BdaMethodCreateTopology(), BdaPropertyGetPinControl(), BdaPropertyTemplateConnections(), BuildFilterStrings(), CredEnumerateA(), CredEnumerateW(), DECLARE_INTERFACE_(), DeleteWithWildcard(), DoOpenFile(), DoSaveFile(), EthCreateFilter(), EthDeleteFilter(), EthFilterDprIndicateReceive(), EthFilterDprIndicateReceiveComplete(), Ext2NotifyReportChange(), FilterAudioMuteHandler(), FilterAudioVolumeHandler(), FilterMapper3_UnregisterFilter(), FilterMapper_RegisterPin(), FilterMapper_UnregisterFilter(), FilterMapper_UnregisterPin(), FindDeviceByGuid(), FindDeviceByMappedId(), FltEnumerateVolumes(), FltpOpenFilterServicesKey(), FltpRegisterContexts(), FltRegisterFilter(), FltStartFiltering(), FltUnregisterFilter(), GetDeviceID(), GetFilterAltitude(), GetFilterFrame(), GetPinIdFromFilter(), IKsFilter_AddPin(), IKsFilter_AttachFilterToFilterFactory(), IKsFilter_DispatchClose(), IKsFilter_DispatchDeviceIoControl(), IKsFilter_GetFilterFromIrp(), IKsFilter_RemoveFilterFromFilterFactory(), IKsFilter_RemovePin(), IKsPin_DispatchKsStream(), InitOpenFileName(), KsFilterAcquireProcessingMutex(), KsFilterAddTopologyConnections(), KsFilterAttemptProcessing(), KsFilterCreatePinFactory(), KsFilterGetAndGate(), KsFilterGetChildPinCount(), KsFilterGetFirstChildPin(), KsFilterRegisterPowerCallbacks(), KsFilterReleaseProcessingMutex(), KspCreateFilterFactory(), KspCreatePin(), KSPropertySetImpl_Get(), LoadHive(), NewDirectSoundCaptureBuffer(), NewPrimarySoundBuffer(), NewSecondarySoundBuffer(), nfs41_QueryDirectory(), PcCreateItemDispatch(), PcCreatePinDispatch(), PinCreate(), PinReset(), PinState(), TestFltRegisterFilter(), USBAudioFilterCreate(), USBAudioPinCreate(), UsbAudioPinDataIntersect(), and VfatWrite().

◆ FilterCallback

◆ FilterList

Definition at line 1781 of file fltkernel.h.

Referenced by CODE_SEG().

◆ FilterListSize

Definition at line 1782 of file fltkernel.h.

◆ FinalComponent

◆ Flags

◆ FltObject

Definition at line 1987 of file fltkernel.h.

◆ FsContext

◆ FsControlCode

Definition at line 1370 of file fltkernel.h.

Referenced by Ext2UserFsRequest(), and NpControlPipe().

◆ FsInformationClass

◆ FullDirectoryName

◆ Guid

◆ IgnoreBuffer

◆ Index

Definition at line 1823 of file fltkernel.h.

◆ InformationClass

◆ InputBufferLength

◆ Instance

Definition at line 1071 of file fltkernel.h.

◆ InstanceListSize

Definition at line 1803 of file fltkernel.h.

◆ InstanceName

◆ IoControlCode

◆ Iosb

Definition at line 1760 of file fltkernel.h.

◆ IoStatusBlock

◆ IsDirectory

Definition at line 1140 of file fltkernel.h.

◆ IsSnapshotVolume

Definition at line 2415 of file fltkernel.h.

◆ IsWritable

Definition at line 1743 of file fltkernel.h.

Referenced by DiskDetermineMediaTypes().

◆ Length

◆ LengthNeeded

◆ LengthReturned

◆ Lookaside

Definition at line 2531 of file fltkernel.h.

◆ LookasideList

◆ LowerInstance

_Outptr_ PFLT_INSTANCE* LowerInstance

Definition at line 1679 of file fltkernel.h.

◆ MaxConnections

◆ MessageNotifyCallback

◆ NameOptions

◆ NewContext

◆ NewSize

◆ NextEcpContext

◆ NextEcpContextSize

◆ NextEcpType

Definition at line 2622 of file fltkernel.h.

Referenced by FsRtlGetNextExtraCreateParameter().

◆ NotificationMask

Definition at line 2454 of file fltkernel.h.

◆ NotifyCallbackData

◆ NotifyList

◆ NumberFiltersReturned

_Must_inspect_result_ * NumberFiltersReturned PFLT_FILTER _In_ ULONG _Out_ PULONG NumberFiltersReturned

Definition at line 1783 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.

Referenced by FltEnumerateVolumes().

◆ ObjectAttributes

◆ OldContext

_In_ PKTRANSACTION _Outptr_opt_ PFLT_CONTEXT * OldContext

Definition at line 1469 of file fltkernel.h.

Referenced by ArchSwitchContext().

◆ OpenCount

Definition at line 2082 of file fltkernel.h.

◆ Operation

_In_ PKTRANSACTION _In_ FLT_SET_CONTEXT_OPERATION Operation

Definition at line 1467 of file fltkernel.h.

◆ OutputBufferLength

◆ OutputPriorityInfo

_Out_opt_ PIO_PRIORITY_INFO OutputPriorityInfo

Definition at line 2661 of file fltkernel.h.

◆ PoolTag

◆ PoolType

◆ PrePostCallbackDataRoutine

◆ PriorityHint

_In_ IO_PRIORITY_HINT PriorityHint

Definition at line 2681 of file fltkernel.h.

◆ PriorityInfo

Definition at line 2654 of file fltkernel.h.

Referenced by $endif().

◆ QueueType

◆ RedirectionAllowed

_In_ PFLT_INSTANCE _Out_ PBOOLEAN RedirectionAllowed

Definition at line 2831 of file fltkernel.h.

◆ RedirectionAllowedAllIo

Definition at line 2840 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(), and FltRegisterFilter().

◆ ReplyBuffer

◆ ReplyLength

◆ RequesterContext

◆ RestartScan

◆ RetFileNameInformation

◆ RetFilter

_Outptr_ PFLT_FILTER * RetFilter

Definition at line 992 of file fltkernel.h.

Referenced by FltGetFilterFromName(), and FltRegisterFilter().

◆ RetInstance

Definition at line 1164 of file fltkernel.h.

◆ RetNewCallbackData

◆ RetTunneledFileNameInformation

◆ ReturnSingleEntry

◆ RetVolume

Definition at line 1619 of file fltkernel.h.

◆ RootDirectory

Definition at line 1127 of file fltkernel.h.

◆ SecurityDescriptor

◆ SecurityInformation

◆ SenderBufferLength

Definition at line 1901 of file fltkernel.h.

Referenced by _IRQL_requires_max_().

◆ ServerPort

Definition at line 1872 of file fltkernel.h.

◆ ServerPortCookie

◆ SessionId

Definition at line 2815 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 2822 of file fltkernel.h.

◆ Thread

Definition at line 2653 of file fltkernel.h.

Referenced by _ExAcquireFastMutexUnsafe(), _IRQL_requires_(), _IRQL_requires_min_(), _KeAcquireGuardedMutex(), _KeAcquireGuardedMutexUnsafe(), _KeReleaseGuardedMutex(), _KeTryToAcquireGuardedMutex(), _Requires_lock_held_(), _Requires_lock_not_held_(), _tWinMain(), AcpiDsCallControlMethod(), AcpiDsCreateWalkState(), AcpiDsGetCurrentWalkState(), AcpiDsPopWalkState(), AcpiDsPushWalkState(), AcpiExLinkMutex(), AcpiExReleaseAllMutexes(), AcpiExUnlinkMutex(), AcpiPsParseAml(), AllocW32Thread(), CallSoundThread(), CcInitializeCacheManager(), CmpInitializeHiveList(), connect(), ConSrvConsoleCtrlEventTimeout(), CreateSoundThread(), CsrInsertThread(), DbgkCreateThread(), DbgkExitProcess(), DbgkExitThread(), DbgkMapViewOfSection(), DbgkpOpenHandles(), DbgkpPostFakeModuleMessages(), DbgkpQueueMessage(), DbgkpWakeTarget(), DbgkUnMapViewOfSection(), DECLSPEC_ALIGN(), DestroySoundThread(), DLDAcquireExclusive(), DLDAcquireShared(), DLDpAcquireResourceExclusiveLite(), DLDpFindCurrentThread(), DLDProcessThread(), CDownloadManager::DownloadDlgProc(), ExAcquireResourceExclusiveLite(), ExAcquireResourceSharedLite(), ExAcquireSharedStarveExclusive(), ExAcquireSharedWaitForExclusive(), ExIsResourceAcquiredSharedLite(), ExitThreadCallback(), ExpBoostOwnerThread(), ExpCreateWorkerThread(), ExpFindEntryForThread(), ExpInitializeWorkerThreads(), ExpRaiseHardError(), ExpTimerApcKernelRoutine(), ExpWaitForResource(), ExpWorkerThreadEntryPoint(), ExReleaseResourceForThreadLite(), ExSetResourceOwnerPointer(), ExSwapinWorkerThreads(), Ext2ExceptionHandler(), ExTimerRundown(), ExTryToAcquireResourceExclusiveLite(), find_thread(), FirstSendHandler(), gdb_send_exception(), gethostbyaddr(), gethostbyname(), GetProcessIdOfThread(), GetProcessLuid(), getprotobyname(), getprotobynumber(), getservbyname(), getservbyport(), getsockopt(), GetThreadFromCurrentProcess(), GetThreadId(), GuiConsoleShowConsoleProperties(), GUIDisplayStatusMessage(), handle_gdb_query(), handle_gdb_thread_alive(), inet_ntoa(), InitThreadCallback(), IntFindWindowToRepaint(), IntGetPaintMessage(), IntTID2PTI(), IoCancelThreadIo(), IofCompleteRequest(), IoGetDeviceToVerify(), IoIsSystemThread(), IopQueueIrpToThread(), IoRaiseHardError(), IoSetDeviceToVerify(), IoSetThreadHardErrorMode(), IoThreadToProcess(), KdbpAttachToProcess(), KdbpAttachToThread(), KdbpCmdThread(), KdbpInternalEnter(), KdbSymInit(), Ke386CallBios(), Ke386GetGdtEntryThread(), Ke386SetIOPL(), KeAlertResumeThread(), KeAlertThread(), KeAttachProcess(), KeBoostPriorityThread(), KeDelayExecutionThread(), KeDetachProcess(), KeFlushQueueApc(), KeForceResumeThread(), KeInitializeApc(), KeInitializeThread(), KeInitThread(), KeInsertQueueApc(), KePulseEvent(), KeQueryBasePriorityThread(), KeQueryPriorityThread(), KeQueryRuntimeProcess(), KeQueryRuntimeThread(), KeQueryValuesProcess(), KeReadStateThread(), KeReadyThread(), KeRemoveQueue(), KeRemoveQueueApc(), KeResumeThread(), KeRundownQueue(), KeRundownThread(), KeSetAffinityProcess(), KeSetAffinityThread(), KeSetBasePriorityThread(), KeSetDisableBoostThread(), KeSetEvent(), KeSetEventBoostPriority(), KeSetIdealProcessorThread(), KeSetKernelStackSwapEnable(), KeSetPriorityAndQuantumProcess(), KeSetPriorityThread(), KeSetQuantumProcess(), KeStackAttachProcess(), KeStartThread(), KeSuspendThread(), KeTerminateThread(), KeTestAlertThread(), KeUninitThread(), KeUnstackDetachProcess(), KeUpdateRunTime(), KeWaitForGate(), KeWaitForMultipleObjects(), KeWaitForSingleObject(), Ki386AdjustEsp0(), KiAcquireApcLockAtSynchLevel(), KiAcquireApcLockRaiseToDpc(), KiAcquireApcLockRaiseToSynch(), KiAcquireThreadLock(), KiActivateWaiterQueue(), KiAdjustQuantumThread(), KiAttachProcess(), KiCallbackReturnHandler(), KiCheckAlertability(), KiCheckForApcDelivery(), KiCheckThreadStackSwap(), KiComputeNewPriority(), KiDeferredReadyThread(), KiDeliverApc(), KiEnterV86Mode(), KiExitDispatcher(), KiExitV86Mode(), KiExitV86Trap(), KiFlushNPXState(), KiGetThreadNpxArea(), KiInitializeContextThread(), KiInitializeHandBuiltThread(), KiInitializeSystem(), KiInsertDeferredReadyList(), KiInsertQueue(), KiInsertQueueApc(), KiNpxHandler(), KiProcessDeferredReadyList(), KiQueueReadyThread(), KiReadyThread(), KiReleaseThreadLock(), KiRundownThread(), KiScanReadyQueues(), KiSelectNextThread(), KiSelectReadyThread(), KiSetAffinityThread(), KiSetPriorityThread(), KiSetThreadSwapBusy(), KiSoftwareInterruptHandler(), KiSystemCallHandler(), KiSystemService(), KiSystemServiceHandler(), KiSystemStartupBootStack(), KiTrap02Handler(), KiTrap07Handler(), KiTrap08Handler(), KiTrap0EHandler(), KiTrap10Handler(), KiTrap13Handler(), KiTryThreadLock(), KiUnlinkThread(), KiUnwaitThread(), KmtFinishThread(), LpcExitThread(), LpcpDeletePort(), LpcpDestroyPortQueue(), LpcpFreeToPortZone(), LpcpGetMessageFromThread(), LpcpGetPortFromThread(), LpcpPrepareToWakeClient(), LpcpSetPortToThread(), LpcRequestPort(), LpcRequestWaitReplyPort(), main(), MiConvertSharedWorkingSetLockToExclusive(), MiLockProcessWorkingSet(), MiLockProcessWorkingSetForFault(), MiLockProcessWorkingSetShared(), MiLockProcessWorkingSetUnsafe(), MiLockWorkingSet(), MiLockWorkingSetShared(), MiMapLockedPagesInUserSpace(), MiProtectVirtualMemory(), MiSetProtectionOnSection(), MiUnlockProcessWorkingSet(), MiUnlockProcessWorkingSetForFault(), MiUnlockProcessWorkingSetShared(), MiUnlockProcessWorkingSetUnsafe(), MiUnlockWorkingSet(), MiUnlockWorkingSetShared(), MiUnmapLockedPagesInUserSpace(), MM_ANY_WS_LOCK_HELD(), MM_ANY_WS_LOCK_HELD_EXCLUSIVE(), MmCleanProcessAddressSpace(), MmDeleteTeb(), MmGrowKernelStackEx(), MmIsRecursiveIoFault(), MmZeroPageThread(), NotifyUserProcessForShutdown(), NpCommonWrite(), NpCreateClientEnd(), NpGetClientSecurityContext(), NpInitializeSecurity(), NpWriteDataQueue(), NtAlertResumeThread(), NtAlertThread(), NtCancelIoFile(), NtCompleteConnectPort(), NtContinue(), NtGetContextThread(), NtImpersonateAnonymousToken(), NtImpersonateThread(), NtOpenProcess(), NtOpenThread(), NtOpenThreadTokenEx(), NtQueryInformationThread(), NtQueueApcThreadEx(), NtRaiseException(), NtRegisterThreadTerminatePort(), NtReplyPort(), NtReplyWaitReceivePortEx(), NtRequestPort(), NtRequestWaitReplyPort(), NtResumeThread(), NtSecureConnectPort(), NtSetContextThread(), NtSetInformationProcess(), NtSetInformationThread(), NtSetThreadExecutionState(), NtSetTimer(), NtSuspendThread(), NtTerminateProcess(), NtTerminateThread(), NtUserBuildHwndList(), NtUserQueryInformationThread(), NtUserSetInformationThread(), NtUserSetWinEventHook(), NtWaitForDebugEvent(), NtYieldExecution(), ObpReferenceProcessObjectByHandle(), PoRequestShutdownWait(), PsAssignImpersonationToken(), PsConvertToGuiThread(), PsDisableImpersonation(), PsGetContextThread(), PsGetNextProcessThread(), PsGetThreadFreezeCount(), PsGetThreadHardErrorsAreDisabled(), PsGetThreadId(), PsGetThreadProcess(), PsGetThreadProcessId(), PsGetThreadSessionId(), PsGetThreadTeb(), PsGetThreadWin32Thread(), PsImpersonateClient(), PsIsSystemThread(), PsIsThreadImpersonating(), PsIsThreadTerminating(), PsLookupProcessThreadByCid(), PsLookupThreadByThreadId(), PspCreateThread(), PspDeleteThread(), PspDeleteThreadSecurity(), PspExitNormalApc(), PspExitThread(), PspGetOrSetContextKernelRoutine(), PspLockThreadSecurityExclusive(), PspLockThreadSecurityShared(), PspQueryDescriptorThread(), PspReapRoutine(), PspRunLegoRoutine(), PspSystemThreadStartup(), PspTerminateProcess(), PspTerminateThreadByPointer(), PspUnlockThreadSecurityExclusive(), PspUnlockThreadSecurityShared(), PspUserThreadStartup(), PspWriteTebImpersonationInfo(), PsReferenceEffectiveToken(), PsReferenceImpersonationToken(), PsRestoreImpersonation(), PsResumeProcess(), PsResumeThread(), PsRevertThreadToSelf(), PsSetContextThread(), PsSetThreadHardErrorsAreDisabled(), PsSetThreadWin32Thread(), PsSuspendProcess(), PsSuspendThread(), PsTerminateSystemThread(), RtlEnterCriticalSection(), RtlLeaveCriticalSection(), RtlpCaptureStackLimits(), RtlWalkFrameChain(), SeCaptureSubjectContextEx(), SeCreateAccessStateEx(), SeCreateClientSecurity(), send_kd_state_change(), SepImpersonateAnonymousToken(), SepOpenThreadToken(), setsockopt(), socket(), SoundThreadMain(), SoundThreadTerminator(), START_TEST(), StartDefragThread(), TerminateSoundThread(), TestConnect(), TestEventConcurrent(), TestEventFunctional(), TestEventScheduling(), TestFastMutex(), TestGuardedMutexConcurrent(), TestMutex(), TestObjectTypes(), TestTdi(), TestTimerFunctional(), thread_to_reg(), UDFExceptionHandler(), UserEndShutdown(), UserInitiateShutdown(), VdmpStartExecution(), Win32kThreadCallback(), WPUQueryBlockingCallback(), WriteMinidump(), WSAAccept(), WSAAddressToStringA(), WSAAddressToStringW(), WSAAsyncGetHostByAddr(), WSAAsyncGetHostByName(), WSAAsyncGetProtoByName(), WSAAsyncGetProtoByNumber(), WSAAsyncGetServByName(), WSAAsyncGetServByPort(), WSACancelAsyncRequest(), WSACancelBlockingCall(), WSACleanup(), WSAIsBlocking(), WSAJoinLeaf(), WSALookupServiceBeginW(), WSALookupServiceEnd(), WSALookupServiceNextW(), WsApiProlog(), WSARecvDisconnect(), WSASendDisconnect(), WSASetBlockingHook(), WSASocketW(), WSAStringToAddressA(), WSAStringToAddressW(), WSAUnhookBlockingHook(), WSCGetProviderPath(), WsSlowProlog(), WsSlowPrologTid(), WsThreadAllocate(), WsThreadBlobToHostent(), WsThreadBlobToServent(), WsThreadBlockingCallback(), WsThreadCancelBlockingCall(), WsThreadCreate(), WsThreadDelete(), WsThreadDestroyCurrentThread(), WsThreadGetCurrentThread(), WsThreadGetProtoBuffer(), WsThreadGetThreadId(), WsThreadInitialize(), WsThreadSetBlockingHook(), and WsThreadUnhookBlockingHook().

◆ Timeout

◆ Transaction

_In_ PKTRANSACTION Transaction

Definition at line 2365 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 1686 of file fltkernel.h.

◆ Volume

_In_ PFLT_VOLUME Volume

Definition at line 1162 of file fltkernel.h.

Referenced by auxMessage(), BroadcastDriveLetterChange(), DismountMain(), Ext2CopyDoubleIndirectBlockPointers(), Ext2CopyIndirectBlockPointers(), Ext2CopyTripleIndirectBlockPointers(), Ext2GetInodeBlockNumber(), Ext2GetInodeGroupNumber(), Ext2GetInodeOffsetInBlock(), Ext2LookupFile(), Ext2Mount(), Ext2Open(), Ext2OpenFile(), Ext2OpenVolume(), Ext2ReadBlock(), Ext2ReadBlockPointerList(), Ext2ReadDirectory(), Ext2ReadFileBig(), Ext2ReadGroupDescriptor(), Ext2ReadGroupDescriptors(), Ext2ReadInode(), Ext2ReadPartialBlock(), Ext2ReadSuperBlock(), Ext2ReadVolumeSectors(), FatBufferDirectory(), FatCountClustersInChain(), FatGetFatEntry(), FatGetFatSector(), FatLookupFile(), FatMount(), FatOpenVolume(), FatReadAdjacentClusters(), FatReadClusterChain(), FatReadFile(), FatReadPartialCluster(), FatReadVolumeSectors(), FatSeek(), FilterInstanceSetup(), FltEnumerateVolumes(), FltGetDiskDeviceObject(), FltGetVolumeName(), FltGetVolumeProperties(), LockOrUnlockVolume(), MMixerGetChannelCountLegacy(), NtfsDiskRead(), NtfsFindAttribute(), NtfsFindAttributeHelper(), NtfsFindMftRecord(), NtfsFixupRecord(), NtfsInfoMain(), NtfsLookupFile(), NtfsMount(), NtfsOpen(), NtfsReadAttribute(), NtfsReadMftRecord(), OpenVolume(), PopFlushVolumes(), PopFlushVolumeWorker(), QueryMain(), RawMountVolume(), SetMain(), CAC97MiniportTopology::SetMultichannelVolume(), SmpCreatePagingFileOnAnyDrive(), SmpCreatePagingFileOnFixedDrive(), SmpCreateVolumeDescriptors(), SmpGetVolumeFreeSpace(), SmpSearchVolumeDescriptor(), and StatisticsMain().

◆ VolumeFileObject

Definition at line 2284 of file fltkernel.h.

◆ VolumeGuidName

Definition at line 1751 of file fltkernel.h.

◆ VolumeHandle

◆ VolumeListSize

Definition at line 1792 of file fltkernel.h.

Referenced by FltEnumerateVolumes().

◆ VolumeName

◆ VolumePropertiesLength

_In_ ULONG VolumePropertiesLength

Definition at line 1734 of file fltkernel.h.

Referenced by FltGetVolumeProperties().

◆ WaitCompletionRoutine

◆ WatchTree

◆ WorkerRoutine