WDK Mini Filter Example
|
#include "change.h"
Go to the source code of this file.
Functions | |
NTSTATUS | DriverEntry (_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath) |
NTSTATUS | CgInstanceSetup (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType) |
VOID | CgInstanceTeardownStart (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags) |
VOID | CgInstanceTeardownComplete (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags) |
NTSTATUS | CgUnload (_In_ FLT_FILTER_UNLOAD_FLAGS Flags) |
NTSTATUS | CgInstanceQueryTeardown (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | CgPreOperationCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_PREOP_CALLBACK_STATUS | CgPreCreate (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | CgPostCreate (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | CgPreClose (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_PREOP_CALLBACK_STATUS | CgPreFsControl (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
NTSTATUS | CgKtmNotificationCallback (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG TransactionNotification) |
BOOLEAN | CgOperationsNeedDirty (_In_ PFLT_CALLBACK_DATA Data) |
NTSTATUS | CgQueryTransactionOutcome (_In_ PKTRANSACTION Transaction, _Out_ PULONG TxOutcome) |
NTSTATUS | CgProcessPreviousTransaction (_In_ PCFLT_RELATED_OBJECTS FltObjects, _Inout_ PCG_FILE_CONTEXT FileContext) |
NTSTATUS | CgProcessTransactionOutcome (_Inout_ PCG_TRANSACTION_CONTEXT TransactionContext, _In_ ULONG TransactionOutcome) |
FORCEINLINE VOID | CgPropagateDirty (_Inout_ PCG_FILE_CONTEXT FileContext, _In_ ULONG TransactionOutcome) |
Variables | |
DRIVER_INITIALIZE | DriverEntry |
CONST FLT_OPERATION_REGISTRATION | Callbacks [] |
const FLT_CONTEXT_REGISTRATION | ContextRegistration [] |
CONST FLT_REGISTRATION | FilterRegistration |
Function Documentation
◆ CgInstanceQueryTeardown()
NTSTATUS CgInstanceQueryTeardown | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS | Flags | ||
) |
◆ CgInstanceSetup()
NTSTATUS CgInstanceSetup | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_SETUP_FLAGS | Flags, | ||
_In_ DEVICE_TYPE | VolumeDeviceType, | ||
_In_ FLT_FILESYSTEM_TYPE | VolumeFilesystemType | ||
) |
◆ CgInstanceTeardownComplete()
VOID CgInstanceTeardownComplete | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_TEARDOWN_FLAGS | Flags | ||
) |
◆ CgInstanceTeardownStart()
VOID CgInstanceTeardownStart | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_TEARDOWN_FLAGS | Flags | ||
) |
◆ CgKtmNotificationCallback()
NTSTATUS CgKtmNotificationCallback | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ PFLT_CONTEXT | TransactionContext, | ||
_In_ ULONG | TransactionNotification | ||
) |
◆ CgOperationsNeedDirty()
BOOLEAN CgOperationsNeedDirty | ( | _In_ PFLT_CALLBACK_DATA | Data | ) |
◆ CgPostCreate()
FLT_POSTOP_CALLBACK_STATUS CgPostCreate | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_opt_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
◆ CgPreClose()
FLT_PREOP_CALLBACK_STATUS CgPreClose | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ CgPreCreate()
FLT_PREOP_CALLBACK_STATUS CgPreCreate | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ CgPreFsControl()
FLT_PREOP_CALLBACK_STATUS CgPreFsControl | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ CgPreOperationCallback()
FLT_PREOP_CALLBACK_STATUS CgPreOperationCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ CgProcessPreviousTransaction()
NTSTATUS CgProcessPreviousTransaction | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_Inout_ PCG_FILE_CONTEXT | FileContext | ||
) |
◆ CgProcessTransactionOutcome()
NTSTATUS CgProcessTransactionOutcome | ( | _Inout_ PCG_TRANSACTION_CONTEXT | TransactionContext, |
_In_ ULONG | TransactionOutcome | ||
) |
◆ CgPropagateDirty()
FORCEINLINE VOID CgPropagateDirty | ( | _Inout_ PCG_FILE_CONTEXT | FileContext, |
_In_ ULONG | TransactionOutcome | ||
) |
◆ CgQueryTransactionOutcome()
NTSTATUS CgQueryTransactionOutcome | ( | _In_ PKTRANSACTION | Transaction, |
_Out_ PULONG | TxOutcome | ||
) |
◆ CgUnload()
◆ DriverEntry()
NTSTATUS DriverEntry | ( | _In_ PDRIVER_OBJECT | DriverObject, |
_In_ PUNICODE_STRING | RegistryPath | ||
) |
Variable Documentation
◆ Callbacks
CONST FLT_OPERATION_REGISTRATION Callbacks[] |
Initial value:
= {
0,
CgPostCreate },
{ IRP_MJ_CLOSE,
0,
NULL },
{ IRP_MJ_WRITE,
0,
NULL },
0,
NULL },
0,
NULL },
{ IRP_MJ_OPERATION_END }
}
FLT_PREOP_CALLBACK_STATUS CgPreOperationCallback(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
Definition: change.c:956
FLT_PREOP_CALLBACK_STATUS CgPreClose(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
Definition: change.c:1265
FLT_POSTOP_CALLBACK_STATUS CgPostCreate(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags)
Definition: change.c:1157
FLT_PREOP_CALLBACK_STATUS CgPreCreate(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
Definition: change.c:1105
FLT_PREOP_CALLBACK_STATUS CgPreFsControl(_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
Definition: change.c:1059
◆ ContextRegistration
const FLT_CONTEXT_REGISTRATION ContextRegistration[] |
Definition at line 68 of file avscan/filter/context.c.
◆ DriverEntry
◆ FilterRegistration
CONST FLT_REGISTRATION FilterRegistration |
Initial value:
= {
sizeof( FLT_REGISTRATION ),
FLT_REGISTRATION_VERSION,
0,
NULL,
NULL,
NULL,
}
NTSTATUS CgKtmNotificationCallback(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PFLT_CONTEXT TransactionContext, _In_ ULONG TransactionNotification)
Definition: change.c:1337
NTSTATUS CgInstanceQueryTeardown(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: change.c:299
VOID CgInstanceTeardownStart(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: change.c:341
NTSTATUS CgInstanceSetup(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
Definition: change.c:254
const FLT_CONTEXT_REGISTRATION ContextRegistration[]
Definition: avscan/filter/context.c:68
VOID CgInstanceTeardownComplete(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: change.c:375
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