1#ifndef _FLTMGR_INTERNAL_H
2#define _FLTMGR_INTERNAL_H
5#define MAX_CONTEXT_TYPES 6
static USHORT USHORT * NewLength
NTSTATUS(FLTAPI * PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
VOID(FLTAPI * PFLT_INSTANCE_TEARDOWN_CALLBACK)(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Reason)
VOID(FLTAPI * PFLT_DISCONNECT_NOTIFY)(_In_opt_ PVOID ConnectionCookie)
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)
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)
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)
VOID(FLTAPI * PFLT_NORMALIZE_CONTEXT_CLEANUP)(_In_opt_ PVOID *NormalizationContext)
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)
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)
VOID(FLTAPI * PFLT_CONTEXT_CLEANUP_CALLBACK)(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
NTSTATUS(FLTAPI * PFLT_FILTER_UNLOAD_CALLBACK)(FLT_FILTER_UNLOAD_FLAGS Flags)
struct _FLT_OBJECT FLT_OBJECT
struct _FLT_MUTEX_LIST_HEAD FLT_MUTEX_LIST_HEAD
struct _FLT_TYPE FLT_TYPE
VOID FltpObjectPointerDereference(_In_ PFLT_OBJECT Object)
struct _CONTEXT_LIST_CTRL * PCONTEXT_LIST_CTRL
struct _FLT_MESSAGE_WAITER_QUEUE * PFLT_MESSAGE_WAITER_QUEUE
struct _FLT_TYPE * PFLT_TYPE
struct _NAME_CACHE_VOLUME_CTRL NAME_CACHE_VOLUME_CTRL
struct _FLT_SERVER_PORT_OBJECT * PFLT_SERVER_PORT_OBJECT
BOOLEAN FltpExAcquireRundownProtection(_Inout_ PEX_RUNDOWN_REF RundownRef)
struct _FLT_FILTER * PFLT_FILTER
enum _FLT_INSTANCE_FLAGS FLT_INSTANCE_FLAGS
struct _TREE_ROOT * PTREE_ROOT
struct _ALLOCATE_CONTEXT_HEADER * PALLOCATE_CONTEXT_HEADER
enum _CALLBACK_NODE_FLAGS CALLBACK_NODE_FLAGS
BOOLEAN FltpExRundownCompleted(_Inout_ PEX_RUNDOWN_REF RundownRef)
NTSTATUS FltpGetObjectName(_In_ PVOID Object, _Inout_ PUNICODE_STRING ObjectName)
NTSTATUS FltpSetupCommunicationObjects(_In_ PDRIVER_OBJECT DriverObject)
struct _FILTER_CCB FILTER_CCB
struct _STREAM_LIST_CTRL * PSTREAM_LIST_CTRL
#define MAX_CONTEXT_TYPES
NTSTATUS FltpReallocateUnicodeString(_In_ PUNICODE_STRING String, _In_ SIZE_T NewLength, _In_ BOOLEAN CopyExisting)
struct _FLTP_FRAME * PFLTP_FRAME
ULONG FltpObjectPointerReference(_In_ PFLT_OBJECT Object)
struct _NAME_CACHE_VOLUME_CTRL_STATS NAME_CACHE_VOLUME_CTRL_STATS
struct _NAME_CACHE_VOLUME_CTRL_STATS * PNAME_CACHE_VOLUME_CTRL_STATS
struct _CALLBACK_CTRL CALLBACK_CTRL
struct _ALLOCATE_CONTEXT_HEADER ALLOCATE_CONTEXT_HEADER
struct _INSTANCE_CCB * PINSTANCE_CCB
enum _FLT_OBJECT_FLAGS * PFLT_OBJECT_FLAGS
enum _CALLBACK_NODE_FLAGS * PCALLBACK_NODE_FLAGS
@ FLTFL_FILTERING_INITIATED
@ FLTFL_MANDATORY_UNLOAD_IN_PROGRESS
struct _FLT_FILTER FLT_FILTER
struct _FLT_RESOURCE_LIST_HEAD FLT_RESOURCE_LIST_HEAD
struct _FLT_SERVER_PORT_OBJECT FLT_SERVER_PORT_OBJECT
enum _FLT_FILTER_FLAGS FLT_FILTER_FLAGS
@ CBNFL_USE_NAME_CALLBACK_EX
NTSTATUS FltpMsgCreate(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
struct _FILTER_CCB * PFILTER_CCB
struct _FLT_MESSAGE_WAITER_QUEUE FLT_MESSAGE_WAITER_QUEUE
struct _INSTANCE_CCB INSTANCE_CCB
enum _FLT_VOLUME_FLAGS FLT_VOLUME_FLAGS
enum _FLT_VOLUME_FLAGS * PFLT_VOLUME_FLAGS
struct _PORT_CCB * PPORT_CCB
@ VOLFL_ENABLE_NAME_CACHING
@ VOLFL_NETWORK_FILESYSTEM
@ VOLFL_STANDARD_LINK_NOT_SUPPORTED
@ VOLFL_PENDING_MOUNT_SETUP_NOTIFIES
@ VOLFL_SENT_SHUTDOWN_IRP
@ VOLFL_MOUNT_SETUP_NOTIFIES_CALLED
@ VOLFL_FILTER_EVER_ATTACHED
BOOLEAN FltpExReleaseRundownProtection(_Inout_ PEX_RUNDOWN_REF RundownRef)
struct _FLT_OBJECT * PFLT_OBJECT
struct _FLT_VOLUME FLT_VOLUME
struct _NAME_CACHE_VOLUME_CTRL * PNAME_CACHE_VOLUME_CTRL
struct _FLT_PORT_OBJECT * PFLT_PORT_OBJECT
struct _PORT_CCB PORT_CCB
union _CCB_TYPE * PCCB_TYPE
struct _FLT_PORT_OBJECT FLT_PORT_OBJECT
NTSTATUS FltpDispatchHandler(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
struct _CALLBACK_CTRL * PCALLBACK_CTRL
struct _NAME_CACHE_LIST_CTRL_STATS NAME_CACHE_LIST_CTRL_STATS
VOID FltpExInitializeRundownProtection(_Out_ PEX_RUNDOWN_REF RundownRef)
NTSTATUS NTAPI FltpObjectRundownWait(_Inout_ PEX_RUNDOWN_REF RundownRef)
NTSTATUS FltpMsgDispatch(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
struct _NAME_CACHE_LIST_CTRL_STATS * PNAME_CACHE_LIST_CTRL_STATS
enum _FLT_OBJECT_FLAGS FLT_OBJECT_FLAGS
struct _VOLUME_CCB * PVOLUME_CCB
struct _CONTEXT_LIST_CTRL CONTEXT_LIST_CTRL
enum _FLT_FILTER_FLAGS * PFLT_FILTER_FLAGS
struct _FLT_RESOURCE_LIST_HEAD * PFLT_RESOURCE_LIST_HEAD
VOID FltpFreeUnicodeString(_In_ PUNICODE_STRING String)
struct _STREAM_LIST_CTRL STREAM_LIST_CTRL
struct _FLTP_FRAME FLTP_FRAME
NTSTATUS FltpGetBaseDeviceObjectName(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PUNICODE_STRING ObjectName)
struct _TREE_ROOT TREE_ROOT
struct _FLT_INSTANCE FLT_INSTANCE
NTSTATUS FltpDeviceControlHandler(_In_ PDEVICE_OBJECT DeviceObject, _Inout_ PIRP Irp)
struct _FLT_MUTEX_LIST_HEAD * PFLT_MUTEX_LIST_HEAD
struct _MANAGER_CCB MANAGER_CCB
struct _MANAGER_CCB * PMANAGER_CCB
struct _VOLUME_CCB VOLUME_CCB
struct _FLT_VOLUME * PFLT_VOLUME
struct _FLT_CCB * PFLT_CCB
struct _FLT_INSTANCE * PFLT_INSTANCE
enum _FLT_INSTANCE_FLAGS * PFLT_INSTANCE_FLAGS
CALLBACK_NODE_FLAGS OperationFlags[50]
LIST_ENTRY OperationLists[50]
NPAGED_LOOKASIDE_LIST LargeIrpCtrlLookasideList
FLT_MUTEX_LIST_HEAD AttachedFileSystems
ERESOURCE FilterUnloadLock
char SmallIrpCtrlStackSize
FLT_MUTEX_LIST_HEAD ZombiedFltObjectContexts
FLT_RESOURCE_LIST_HEAD RegisteredFilters
FAST_MUTEX DeviceObjectAttachLock
FLT_RESOURCE_LIST_HEAD AttachedVolumes
void * LookasidePoolToFree
UNICODE_STRING AltitudeIntervalHigh
NPAGED_LOOKASIDE_LIST SmallIrpCtrlLookasideList
char LargeIrpCtrlStackSize
LIST_ENTRY MountingVolumes
UNICODE_STRING AltitudeIntervalLow
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardown
FLT_MUTEX_LIST_HEAD PortList
FLT_RESOURCE_LIST_HEAD InstanceList
PFLT_GENERATE_FILE_NAME GenerateFileName
FLT_MUTEX_LIST_HEAD ConnectionList
PFLT_FILTER_UNLOAD_CALLBACK OldDriverUnload
PFLT_FILTER_UNLOAD_CALLBACK FilterUnload
PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanup
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetup
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownComplete
PDRIVER_OBJECT DriverObject
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStart
PFLT_OPERATION_REGISTRATION Operations
PALLOCATE_CONTEXT_HEADER SupportedContexts[MAX_CONTEXT_TYPES]
PALLOCATE_CONTEXT_HEADER SupportedContextsListHead
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponent
FLT_MUTEX_LIST_HEAD ActiveOpens
UNICODE_STRING DefaultAltitude
PVOID TrackCompletionNodes
ULONG OperationRundownRef
ULONG MinimumWaiterLength
FLT_MUTEX_LIST_HEAD WaiterQ
EX_RUNDOWN_REF RundownRef
volatile FLT_OBJECT_FLAGS Flags
EX_RUNDOWN_REF MsgNotifRundownRef
PFLT_SERVER_PORT_OBJECT ServerPort
FLT_MESSAGE_WAITER_QUEUE MsgQ
PFLT_DISCONNECT_NOTIFY DisconnectNotify
PFLT_MESSAGE_NOTIFY MessageNotify
PFLT_CONNECT_NOTIFY ConnectNotify
PDEVICE_OBJECT DeviceObject
FLT_RESOURCE_LIST_HEAD FileListCtrls
EX_PUSH_LOCK TxVolContextListLock
PFLT_VOLUME VolumeInNextFrame
CONTEXT_LIST_CTRL VolumeContexts
ULONG TargetedOpenActiveCount
FLT_FILESYSTEM_TYPE FileSystemType
UNICODE_STRING DeviceName
UNICODE_STRING CDODriverName
FLT_RESOURCE_LIST_HEAD StreamListCtrls
FLT_RESOURCE_LIST_HEAD InstanceList
UNICODE_STRING CDODeviceName
NAME_CACHE_VOLUME_CTRL NameCacheCtrl
ERESOURCE MountNotifyLock
PFLT_VOLUME FrameZeroVolume
PDEVICE_OBJECT DiskDeviceObject
NAME_CACHE_LIST_CTRL_STATS NormalizedNames
NAME_CACHE_LIST_CTRL_STATS ShortNames
NAME_CACHE_LIST_CTRL_STATS OpenedNames
ULONG AllContextsTemporary
LARGE_INTEGER LastRenameCompleted
NAME_CACHE_VOLUME_CTRL_STATS Stats
ULONG AllContextsTemporary
FLT_MUTEX_LIST_HEAD ReplyWaiterList
ULONG NormalizedNameCache
int AllNameContextsTemporary
LARGE_INTEGER LastRenameCompleted
FSRTL_PER_STREAM_CONTEXT ContextCtrl
CONTEXT_LIST_CTRL StreamHandleContexts
CONTEXT_LIST_CTRL StreamContexts
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ PDEVICE_OBJECT DeviceObject
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST NPAGED_LOOKASIDE_LIST