WDK Mini Filter Example
CtxInit.c File Reference
#include "pch.h"

Go to the source code of this file.

Functions

NTSTATUS DriverEntry (_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath)
 
NTSTATUS CtxUnload (_In_ FLT_FILTER_UNLOAD_FLAGS Flags)
 
VOID CtxContextCleanup (_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
 
NTSTATUS CtxInstanceSetup (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
 
NTSTATUS CtxInstanceQueryTeardown (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
 
VOID CtxInstanceTeardownStart (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
 
VOID CtxInstanceTeardownComplete (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
 

Variables

CTX_GLOBAL_DATA Globals
 
DRIVER_INITIALIZE DriverEntry
 
FLT_OPERATION_REGISTRATION Callbacks []
 
const FLT_CONTEXT_REGISTRATION ContextRegistration []
 
FLT_REGISTRATION FilterRegistration
 

Function Documentation

◆ CtxContextCleanup()

VOID CtxContextCleanup ( _In_ PFLT_CONTEXT  Context,
_In_ FLT_CONTEXT_TYPE  ContextType 
)

Definition at line 392 of file CtxInit.c.

◆ CtxInstanceQueryTeardown()

NTSTATUS CtxInstanceQueryTeardown ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS  Flags 
)

Definition at line 743 of file CtxInit.c.

◆ CtxInstanceSetup()

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

Definition at line 532 of file CtxInit.c.

◆ CtxInstanceTeardownComplete()

VOID CtxInstanceTeardownComplete ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_TEARDOWN_FLAGS  Flags 
)

Definition at line 826 of file CtxInit.c.

◆ CtxInstanceTeardownStart()

VOID CtxInstanceTeardownStart ( _In_ PCFLT_RELATED_OBJECTS  FltObjects,
_In_ FLT_INSTANCE_TEARDOWN_FLAGS  Flags 
)

Definition at line 786 of file CtxInit.c.

◆ CtxUnload()

NTSTATUS CtxUnload ( _In_ FLT_FILTER_UNLOAD_FLAGS  Flags)

Definition at line 355 of file CtxInit.c.

◆ DriverEntry()

NTSTATUS DriverEntry ( _In_ PDRIVER_OBJECT  DriverObject,
_In_ PUNICODE_STRING  RegistryPath 
)

Definition at line 190 of file CtxInit.c.

Variable Documentation

◆ Callbacks

FLT_OPERATION_REGISTRATION Callbacks[]
Initial value:
= {
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO,
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO,
NULL },
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO,
NULL },
FLTFL_OPERATION_REGISTRATION_SKIP_PAGING_IO,
{ IRP_MJ_OPERATION_END }
}
#define IRP_MJ_CLEANUP
Definition: mspyLog.h:302
FLT_POSTOP_CALLBACK_STATUS CtxPostCreate(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Inout_opt_ PVOID CbdContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
#define IRP_MJ_SET_INFORMATION
Definition: mspyLog.h:290
NcLoadRegistryStringRetry NULL
Definition: ncinit.c:53
FLT_PREOP_CALLBACK_STATUS CtxPreClose(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
#define IRP_MJ_CLOSE
Definition: mspyLog.h:286
FLT_POSTOP_CALLBACK_STATUS CtxPostSetInfo(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Inout_opt_ PVOID CbdContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
FLT_PREOP_CALLBACK_STATUS CtxPreSetInfo(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
FLT_PREOP_CALLBACK_STATUS CtxPreCreate(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
FLT_PREOP_CALLBACK_STATUS CtxPreCleanup(_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
#define IRP_MJ_CREATE
Definition: mspyLog.h:284

Definition at line 112 of file CtxInit.c.

◆ ContextRegistration

const FLT_CONTEXT_REGISTRATION ContextRegistration[]
Initial value:
= {
{ FLT_INSTANCE_CONTEXT,
0,
{ FLT_FILE_CONTEXT,
0,
{ FLT_STREAM_CONTEXT,
0,
{ FLT_STREAMHANDLE_CONTEXT,
0,
{ FLT_CONTEXT_END }
}
#define CTX_STREAMHANDLE_CONTEXT_SIZE
Definition: CtxStruc.h:178
#define CTX_FILE_CONTEXT_TAG
Definition: CtxStruc.h:29
VOID CtxContextCleanup(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: CtxInit.c:392
#define CTX_INSTANCE_CONTEXT_SIZE
Definition: CtxStruc.h:88
#define CTX_STREAM_CONTEXT_TAG
Definition: CtxStruc.h:30
#define CTX_STREAMHANDLE_CONTEXT_TAG
Definition: CtxStruc.h:31
#define CTX_INSTANCE_CONTEXT_TAG
Definition: CtxStruc.h:28
#define CTX_STREAM_CONTEXT_SIZE
Definition: CtxStruc.h:154
#define CTX_FILE_CONTEXT_SIZE
Definition: CtxStruc.h:112

Definition at line 137 of file CtxInit.c.

◆ DriverEntry

DRIVER_INITIALIZE DriverEntry

Definition at line 35 of file CtxInit.c.

◆ FilterRegistration

FLT_REGISTRATION FilterRegistration
Initial value:
= {
sizeof( FLT_REGISTRATION ),
FLT_REGISTRATION_VERSION,
0,
}
NTSTATUS CtxInstanceSetup(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
Definition: CtxInit.c:532
VOID CtxInstanceTeardownStart(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: CtxInit.c:786
NTSTATUS CtxUnload(_In_ FLT_FILTER_UNLOAD_FLAGS Flags)
Definition: CtxInit.c:355
FLT_OPERATION_REGISTRATION Callbacks[]
Definition: CtxInit.c:112
NcLoadRegistryStringRetry NULL
Definition: ncinit.c:53
const FLT_CONTEXT_REGISTRATION ContextRegistration[]
Definition: CtxInit.c:137
VOID CtxInstanceTeardownComplete(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: CtxInit.c:826
NTSTATUS CtxInstanceQueryTeardown(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: CtxInit.c:743

Definition at line 170 of file CtxInit.c.

◆ Globals

CTX_GLOBAL_DATA Globals

Definition at line 28 of file CtxInit.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