WDK Mini Filter Example
CtxProc.h File Reference

Go to the source code of this file.

Functions

FLT_PREOP_CALLBACK_STATUS CtxPreCreate (_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
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)
 
FLT_PREOP_CALLBACK_STATUS CtxPreCleanup (_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
FLT_PREOP_CALLBACK_STATUS CtxPreClose (_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
FLT_PREOP_CALLBACK_STATUS CtxPreSetInfo (_Inout_ PFLT_CALLBACK_DATA Cbd, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext)
 
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)
 
NTSTATUS CtxFindOrCreateFileContext (_In_ PFLT_CALLBACK_DATA Cbd, _In_ BOOLEAN CreateIfNotFound, _When_(CreateIfNotFound !=FALSE, _In_) _When_(CreateIfNotFound==FALSE, _In_opt_) PUNICODE_STRING FileName, _Outptr_ PCTX_FILE_CONTEXT *StreamContext, _Out_opt_ PBOOLEAN ContextCreated)
 
NTSTATUS CtxCreateFileContext (_In_ PUNICODE_STRING FileName, _Outptr_ PCTX_FILE_CONTEXT *StreamContext)
 
NTSTATUS CtxFindOrCreateStreamContext (_In_ PFLT_CALLBACK_DATA Cbd, _In_ BOOLEAN CreateIfNotFound, _Outptr_ PCTX_STREAM_CONTEXT *StreamContext, _Out_opt_ PBOOLEAN ContextCreated)
 
NTSTATUS CtxCreateStreamContext (_Outptr_ PCTX_STREAM_CONTEXT *StreamContext)
 
NTSTATUS CtxUpdateNameInStreamContext (_In_ PUNICODE_STRING DirectoryName, _Inout_ PCTX_STREAM_CONTEXT StreamContext)
 
NTSTATUS CtxCreateOrReplaceStreamHandleContext (_In_ PFLT_CALLBACK_DATA Cbd, _In_ BOOLEAN ReplaceIfExists, _Outptr_ PCTX_STREAMHANDLE_CONTEXT *StreamHandleContext, _Out_opt_ PBOOLEAN ContextReplaced)
 
NTSTATUS CtxCreateStreamHandleContext (_Outptr_ PCTX_STREAMHANDLE_CONTEXT *StreamHandleContext)
 
NTSTATUS CtxUpdateNameInStreamHandleContext (_In_ PUNICODE_STRING DirectoryName, _Inout_ PCTX_STREAMHANDLE_CONTEXT StreamHandleContext)
 
 _At_ (String->Length, _Out_range_(==, 0)) _At_(String -> MaximumLength, _In_) _At_(String->Buffer, _Pre_maybenull_ _Post_notnull_ _Post_writable_byte_size_(String->MaximumLength)) NTSTATUS CtxAllocateUnicodeString(_Out_ PUNICODE_STRING String)
 
FORCEINLINE PERESOURCE CtxAllocateResource (VOID)
 
FORCEINLINE VOID CtxFreeResource (_In_ PERESOURCE Resource)
 
FORCEINLINE VOID _Acquires_lock_ (_Global_critical_region_) _IRQL_requires_max_(APC_LEVEL) CtxAcquireResourceExclusive(_Inout_ _Requires_lock_not_held_(*_Curr_) _Acquires_exclusive_lock_(*_Curr_) PERESOURCE Resource)
 
FORCEINLINE VOID _Releases_lock_ (_Global_critical_region_) _Requires_lock_held_(_Global_critical_region_) _IRQL_requires_max_(APC_LEVEL) CtxReleaseResource(_Inout_ _Requires_lock_held_(*_Curr_) _Releases_lock_(*_Curr_) PERESOURCE Resource)
 

Function Documentation

◆ _Acquires_lock_()

FORCEINLINE VOID _Acquires_lock_ ( _Global_critical_region_  )

Definition at line 182 of file CtxProc.h.

◆ _At_()

_At_ ( String->  Length,
_Out_range_(==, 0)   
) -> MaximumLength, _In_) _At_(String->Buffer, _Pre_maybenull_ _Post_notnull_ _Post_writable_byte_size_(String->MaximumLength)) NTSTATUS CtxAllocateUnicodeString ( _Out_ PUNICODE_STRING String )

Definition at line 84 of file ctx/support.c.

◆ _Releases_lock_()

FORCEINLINE VOID _Releases_lock_ ( _Global_critical_region_  )

Definition at line 214 of file CtxProc.h.

◆ CtxAllocateResource()

FORCEINLINE PERESOURCE CtxAllocateResource ( VOID  )

Definition at line 159 of file CtxProc.h.

◆ CtxCreateFileContext()

NTSTATUS CtxCreateFileContext ( _In_ PUNICODE_STRING  FileName,
_Outptr_ PCTX_FILE_CONTEXT StreamContext 
)

Definition at line 215 of file ctx/context.c.

◆ CtxCreateOrReplaceStreamHandleContext()

NTSTATUS CtxCreateOrReplaceStreamHandleContext ( _In_ PFLT_CALLBACK_DATA  Cbd,
_In_ BOOLEAN  ReplaceIfExists,
_Outptr_ PCTX_STREAMHANDLE_CONTEXT StreamHandleContext,
_Out_opt_ PBOOLEAN  ContextReplaced 
)

Definition at line 582 of file ctx/context.c.

◆ CtxCreateStreamContext()

NTSTATUS CtxCreateStreamContext ( _Outptr_ PCTX_STREAM_CONTEXT StreamContext)

Definition at line 458 of file ctx/context.c.

◆ CtxCreateStreamHandleContext()

NTSTATUS CtxCreateStreamHandleContext ( _Outptr_ PCTX_STREAMHANDLE_CONTEXT StreamHandleContext)

Definition at line 764 of file ctx/context.c.

◆ CtxFindOrCreateFileContext()

NTSTATUS CtxFindOrCreateFileContext ( _In_ PFLT_CALLBACK_DATA  Cbd,
_In_ BOOLEAN  CreateIfNotFound,
_When_(CreateIfNotFound !=FALSE, _In_) _When_(CreateIfNotFound==FALSE, _In_opt_) PUNICODE_STRING  FileName,
_Outptr_ PCTX_FILE_CONTEXT StreamContext,
_Out_opt_ PBOOLEAN  ContextCreated 
)

Definition at line 41 of file ctx/context.c.

◆ CtxFindOrCreateStreamContext()

NTSTATUS CtxFindOrCreateStreamContext ( _In_ PFLT_CALLBACK_DATA  Cbd,
_In_ BOOLEAN  CreateIfNotFound,
_Outptr_ PCTX_STREAM_CONTEXT StreamContext,
_Out_opt_ PBOOLEAN  ContextCreated 
)

Definition at line 284 of file ctx/context.c.

◆ CtxFreeResource()

FORCEINLINE VOID CtxFreeResource ( _In_ PERESOURCE  Resource)

Definition at line 171 of file CtxProc.h.

◆ CtxPostCreate()

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 
)

Definition at line 74 of file ctx/operations.c.

◆ CtxPostSetInfo()

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 
)

Definition at line 711 of file ctx/operations.c.

◆ CtxPreCleanup()

FLT_PREOP_CALLBACK_STATUS CtxPreCleanup ( _Inout_ PFLT_CALLBACK_DATA  Cbd,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 406 of file ctx/operations.c.

◆ CtxPreClose()

FLT_PREOP_CALLBACK_STATUS CtxPreClose ( _Inout_ PFLT_CALLBACK_DATA  Cbd,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 530 of file ctx/operations.c.

◆ CtxPreCreate()

FLT_PREOP_CALLBACK_STATUS CtxPreCreate ( _Inout_ PFLT_CALLBACK_DATA  Cbd,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 40 of file ctx/operations.c.

◆ CtxPreSetInfo()

FLT_PREOP_CALLBACK_STATUS CtxPreSetInfo ( _Inout_ PFLT_CALLBACK_DATA  Cbd,
_In_ PCFLT_RELATED_OBJECTS  FltObjects,
_Flt_CompletionContext_Outptr_ PVOID *  CompletionContext 
)

Definition at line 650 of file ctx/operations.c.

◆ CtxUpdateNameInStreamContext()

NTSTATUS CtxUpdateNameInStreamContext ( _In_ PUNICODE_STRING  DirectoryName,
_Inout_ PCTX_STREAM_CONTEXT  StreamContext 
)

Definition at line 524 of file ctx/context.c.

◆ CtxUpdateNameInStreamHandleContext()

NTSTATUS CtxUpdateNameInStreamHandleContext ( _In_ PUNICODE_STRING  DirectoryName,
_Inout_ PCTX_STREAMHANDLE_CONTEXT  StreamHandleContext 
)

Definition at line 832 of file ctx/context.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