Silhouette/Filter.h (49 lines of code) (raw):

#pragma once #include "Silhouette.h" extern PFLT_FILTER gpFilter; extern FILE_ID_INFORMATION gProtectedFiles[1]; NTSTATUS RegisterFilter(_In_ PDRIVER_OBJECT pDriverObject); VOID UnregisterFilter(); NTSTATUS FilterUnload( _In_ FLT_FILTER_UNLOAD_FLAGS Flags ); NTSTATUS InstanceSetupCallback( PCFLT_RELATED_OBJECTS FltObjects, FLT_INSTANCE_SETUP_FLAGS Flags, DEVICE_TYPE VolumeDeviceType, FLT_FILESYSTEM_TYPE VolumeFilesystemType ); NTSTATUS QueryTeardown( _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags ); FLT_PREOP_CALLBACK_STATUS PreCreateCallback( _Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID* CompletionContext ); FLT_POSTOP_CALLBACK_STATUS PostCreateCallback( _Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags ); FLT_PREOP_CALLBACK_STATUS PreReadCallback( _Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID* CompletionContext ); FLT_POSTOP_CALLBACK_STATUS PostReadCallback( _Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags );