WDK Mini Filter Example
passThrough.c File Reference
#include <fltKernel.h>
#include <dontuse.h>
#include <suppress.h>

Go to the source code of this file.

Macros

#define PTDBG_TRACE_ROUTINES   0x00000001
 
#define PTDBG_TRACE_OPERATION_STATUS   0x00000002
 
#define PT_DBG_PRINT(_dbgLevel, _string)
 

Functions

NTSTATUS DriverEntry (_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
 
NTSTATUS PtInstanceSetup (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
 
VOID PtInstanceTeardownStart (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
 
VOID PtInstanceTeardownComplete (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
 
NTSTATUS PtUnload (_In_ FLT_FILTER_UNLOAD_FLAGS Flags)
 
NTSTATUS PtInstanceQueryTeardown (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
 
FLT_PREOP_CALLBACK_STATUS PtPreOperationPassThrough (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
VOID PtOperationStatusCallback (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_IO_PARAMETER_BLOCK ParameterSnapshot, _In_ NTSTATUS OperationStatus, _In_ PVOID RequesterContext)
 
FLT_POSTOP_CALLBACK_STATUS PtPostOperationPassThrough (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
 
FLT_PREOP_CALLBACK_STATUS PtPreOperationNoPostOperationPassThrough (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
BOOLEAN PtDoRequestOperationStatus (_In_ PFLT_CALLBACK_DATA Data)
 

Variables

PFLT_FILTER gFilterHandle
 
ULONG_PTR OperationStatusCtx = 1
 
ULONG gTraceFlags = 0
 
DRIVER_INITIALIZE DriverEntry
 
CONST FLT_OPERATION_REGISTRATION Callbacks []
 
CONST FLT_REGISTRATION FilterRegistration
 

Macro Definition Documentation

◆ PT_DBG_PRINT

#define PT_DBG_PRINT (   _dbgLevel,
  _string 
)
Value:
(FlagOn(gTraceFlags,(_dbgLevel)) ? \
DbgPrint _string : \
((int)0))
#define FlagOn(_F, _SF)
Definition: minispy.h:247
ULONG gTraceFlags
Definition: passThrough.c:34

Definition at line 37 of file passThrough.c.

◆ PTDBG_TRACE_OPERATION_STATUS

#define PTDBG_TRACE_OPERATION_STATUS   0x00000002

Definition at line 32 of file passThrough.c.

◆ PTDBG_TRACE_ROUTINES

#define PTDBG_TRACE_ROUTINES   0x00000001

Definition at line 31 of file passThrough.c.

Function Documentation

◆ DriverEntry()

NTSTATUS DriverEntry ( _In_ PDRIVER_OBJECT  DriverObject,
_In_ PUNICODE_STRING  RegistryPath 
)

Definition at line 523 of file passThrough.c.

◆ PtDoRequestOperationStatus()

BOOLEAN PtDoRequestOperationStatus ( _In_ PFLT_CALLBACK_DATA  Data)

Definition at line 839 of file passThrough.c.

◆ PtInstanceQueryTeardown()

NTSTATUS PtInstanceQueryTeardown ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS  Flags 
)

Definition at line 409 of file passThrough.c.

◆ PtInstanceSetup()

NTSTATUS PtInstanceSetup ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_SETUP_FLAGS  Flags,
_In_ DEVICE_TYPE  VolumeDeviceType,
_In_ FLT_FILESYSTEM_TYPE  VolumeFilesystemType 
)

Definition at line 364 of file passThrough.c.

◆ PtInstanceTeardownComplete()

VOID PtInstanceTeardownComplete ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_TEARDOWN_FLAGS  Flags 
)

Definition at line 485 of file passThrough.c.

◆ PtInstanceTeardownStart()

VOID PtInstanceTeardownStart ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_TEARDOWN_FLAGS  Flags 
)

Definition at line 451 of file passThrough.c.

◆ PtOperationStatusCallback()

VOID PtOperationStatusCallback ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ PFLT_IO_PARAMETER_BLOCK  ParameterSnapshot,
_In_ NTSTATUS  OperationStatus,
_In_ PVOID  RequesterContext 
)

Definition at line 692 of file passThrough.c.

◆ PtPostOperationPassThrough()

FLT_POSTOP_CALLBACK_STATUS PtPostOperationPassThrough ( _Inout_ PFLT_CALLBACK_DATA  Data,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_opt_ PVOID  CompletionContext,
_In_ FLT_POST_OPERATION_FLAGS  Flags 
)

Definition at line 747 of file passThrough.c.

◆ PtPreOperationNoPostOperationPassThrough()

FLT_PREOP_CALLBACK_STATUS PtPreOperationNoPostOperationPassThrough ( _Inout_ PFLT_CALLBACK_DATA  Data,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 793 of file passThrough.c.

◆ PtPreOperationPassThrough()

FLT_PREOP_CALLBACK_STATUS PtPreOperationPassThrough ( _Inout_ PFLT_CALLBACK_DATA  Data,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 622 of file passThrough.c.

◆ PtUnload()

NTSTATUS PtUnload ( _In_ FLT_FILTER_UNLOAD_FLAGS  Flags)

Definition at line 583 of file passThrough.c.

Variable Documentation

◆ Callbacks

CONST FLT_OPERATION_REGISTRATION Callbacks[]

Definition at line 136 of file passThrough.c.

◆ DriverEntry

DRIVER_INITIALIZE DriverEntry

Definition at line 46 of file passThrough.c.

◆ FilterRegistration

CONST FLT_REGISTRATION FilterRegistration
Initial value:
= {
sizeof( FLT_REGISTRATION ),
FLT_REGISTRATION_VERSION,
0,
NULL,
NULL,
NULL,
}
NTSTATUS PtInstanceQueryTeardown(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: passThrough.c:409
CONST FLT_OPERATION_REGISTRATION Callbacks[]
Definition: passThrough.c:136
VOID PtInstanceTeardownStart(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: passThrough.c:451
NTSTATUS PtUnload(_In_ FLT_FILTER_UNLOAD_FLAGS Flags)
Definition: passThrough.c:583
NTSTATUS PtInstanceSetup(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
Definition: passThrough.c:364
VOID PtInstanceTeardownComplete(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: passThrough.c:485
NcLoadRegistryStringRetry NULL
Definition: ncinit.c:53

Definition at line 339 of file passThrough.c.

◆ gFilterHandle

PFLT_FILTER gFilterHandle

Definition at line 28 of file passThrough.c.

◆ gTraceFlags

ULONG gTraceFlags = 0

Definition at line 34 of file passThrough.c.

◆ OperationStatusCtx

ULONG_PTR OperationStatusCtx = 1

Definition at line 29 of file passThrough.c.

Social Network


Services Overview

Architect, implement and test file system filter drivers for a wide range of functionality. We can offer several levels of assistance to meet your specific.

Contact Us

You are welcome to contact us for salse or partnership.

Sales: sales@easefilter.com
Support: support@easefilter.com
Info: info@easefilter.com