WDK Mini Filter Example
|
#include "nc.h"
Go to the source code of this file.
Data Structures | |
struct | _NC_NOTIFY_REQUEST_CONTEXT |
Macros | |
#define | NcRemoveTrailingSlashIfPresent(US) |
Typedefs | |
typedef enum _NC_NOTIFY_REQUEST_TYPE | NC_NOTIFY_REQUEST_TYPE |
typedef struct _NC_NOTIFY_REQUEST_CONTEXT | NC_NOTIFY_REQUEST_CONTEXT |
typedef struct _NC_NOTIFY_REQUEST_CONTEXT * | PNC_NOTIFY_REQUEST_CONTEXT |
Enumerations | |
enum | _NC_NOTIFY_REQUEST_TYPE { NotifyUserRequest = 0, NotifyShadowRequest, NotifyMappingRequest } |
Functions | |
NTSTATUS | NcAllocateNotifyRequestContext (_In_ PNC_STREAM_HANDLE_CONTEXT HandleContext, _In_ PFILE_OBJECT FileObject, _In_ NC_NOTIFY_REQUEST_TYPE RequestType, _In_ PFLT_CALLBACK_DATA Request, _Out_ PNC_NOTIFY_REQUEST_CONTEXT *NotifyRequestContext) |
VOID | NcFreeNotifyRequestContext (_In_ PNC_NOTIFY_REQUEST_CONTEXT NotifyRequestContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostNotifyDirectorySafe (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
VOID | NcPostNotifyDirectoryReal (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PVOID CompletionContext) |
NTSTATUS | NcDirNotifyTranslateBuffers (_In_ PNC_INSTANCE_CONTEXT InstanceContext, _In_ BOOLEAN IgnoreCase, _In_ PUNICODE_STRING UserRequestName, _In_ PUNICODE_STRING OpenedName, _In_reads_bytes_(InputBufferLength) PFILE_NOTIFY_INFORMATION InputSystemBuffer, _Out_writes_bytes_to_(OutputBufferLength, *OutputBufferWritten) PFILE_NOTIFY_INFORMATION OutputUserBuffer, _In_ ULONG InputBufferLength, _In_ ULONG OutputBufferLength, _Out_ PULONG InputBufferConsumed, _Out_ PULONG OutputBufferWritten, _In_ BOOLEAN ReturnRealMappingPaths, _In_ BOOLEAN ReturnInMappingOnly) |
NTSTATUS | NcBuildSubNotifyRequest (_In_ PFLT_CALLBACK_DATA PrimaryRequest, _In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_ PNC_STREAM_HANDLE_CONTEXT HandleContext, _In_ NC_NOTIFY_REQUEST_TYPE RequestType, _Out_ PFLT_CALLBACK_DATA *SubRequest, _Out_ PNC_NOTIFY_REQUEST_CONTEXT *NotifyRequestContext) |
VOID | NcCleanupSubNotifyRequest (_In_ PFLT_CALLBACK_DATA SubRequest) |
NTSTATUS | NcGetDestinationNotifyBuffer (_Inout_ PFLT_CALLBACK_DATA Data, _Outptr_result_bytebuffer_maybenull_(*BufferSize) PVOID *DestBuffer, _Out_ PULONG BufferSize) |
_Pre_satisfies_ LockHeld | _Requires_lock_held_ (_Global_critical_region_) |
FLT_PREOP_CALLBACK_STATUS | NcPreNotifyDirectory (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostNotifyDirectory (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
VOID | NcReissueNotifyRequestWorkerRoutine (_In_ PFLT_GENERIC_WORKITEM WorkItem, _In_ PFLT_FILTER Filter, _In_ PVOID RequestPtr) |
VOID | NcCloseHandleWorkerRoutine (_In_ PFLT_GENERIC_WORKITEM WorkItem, _In_ PFLT_FILTER Filter, _In_ PVOID HandlePtr) |
VOID | NcNotifyCancelCallback (_In_ PFLT_CALLBACK_DATA Data) |
NTSTATUS | NcStreamHandleContextNotCreate (_Out_ PNC_DIR_NOT_CONTEXT Context) |
VOID | NcStreamHandleContextNotCleanup (_In_ PNC_STREAM_HANDLE_CONTEXT HandleContext) |
VOID | NcStreamHandleContextNotClose (_In_ PNC_DIR_NOT_CONTEXT Context) |
Macro Definition Documentation
◆ NcRemoveTrailingSlashIfPresent
#define NcRemoveTrailingSlashIfPresent | ( | US | ) |
Typedef Documentation
◆ NC_NOTIFY_REQUEST_CONTEXT
typedef struct _NC_NOTIFY_REQUEST_CONTEXT NC_NOTIFY_REQUEST_CONTEXT |
◆ NC_NOTIFY_REQUEST_TYPE
typedef enum _NC_NOTIFY_REQUEST_TYPE NC_NOTIFY_REQUEST_TYPE |
◆ PNC_NOTIFY_REQUEST_CONTEXT
typedef struct _NC_NOTIFY_REQUEST_CONTEXT * PNC_NOTIFY_REQUEST_CONTEXT |
Enumeration Type Documentation
◆ _NC_NOTIFY_REQUEST_TYPE
Enumerator | |
---|---|
NotifyUserRequest | |
NotifyShadowRequest | |
NotifyMappingRequest |
Definition at line 31 of file ncdirnotify.c.
Function Documentation
◆ _Requires_lock_held_()
_Pre_satisfies_ LockHeld _Requires_lock_held_ | ( | _Global_critical_region_ | ) |
Definition at line 114 of file ncdirnotify.c.
◆ NcAllocateNotifyRequestContext()
NTSTATUS NcAllocateNotifyRequestContext | ( | _In_ PNC_STREAM_HANDLE_CONTEXT | HandleContext, |
_In_ PFILE_OBJECT | FileObject, | ||
_In_ NC_NOTIFY_REQUEST_TYPE | RequestType, | ||
_In_ PFLT_CALLBACK_DATA | Request, | ||
_Out_ PNC_NOTIFY_REQUEST_CONTEXT * | NotifyRequestContext | ||
) |
Definition at line 639 of file ncdirnotify.c.
◆ NcBuildSubNotifyRequest()
NTSTATUS NcBuildSubNotifyRequest | ( | _In_ PFLT_CALLBACK_DATA | PrimaryRequest, |
_In_ PFLT_INSTANCE | Instance, | ||
_In_ PFILE_OBJECT | FileObject, | ||
_In_ PNC_STREAM_HANDLE_CONTEXT | HandleContext, | ||
_In_ NC_NOTIFY_REQUEST_TYPE | RequestType, | ||
_Out_ PFLT_CALLBACK_DATA * | SubRequest, | ||
_Out_ PNC_NOTIFY_REQUEST_CONTEXT * | NotifyRequestContext | ||
) |
Definition at line 744 of file ncdirnotify.c.
◆ NcCleanupSubNotifyRequest()
VOID NcCleanupSubNotifyRequest | ( | _In_ PFLT_CALLBACK_DATA | SubRequest | ) |
Definition at line 892 of file ncdirnotify.c.
◆ NcCloseHandleWorkerRoutine()
VOID NcCloseHandleWorkerRoutine | ( | _In_ PFLT_GENERIC_WORKITEM | WorkItem, |
_In_ PFLT_FILTER | Filter, | ||
_In_ PVOID | HandlePtr | ||
) |
Definition at line 2970 of file ncdirnotify.c.
◆ NcDirNotifyTranslateBuffers()
NTSTATUS NcDirNotifyTranslateBuffers | ( | _In_ PNC_INSTANCE_CONTEXT | InstanceContext, |
_In_ BOOLEAN | IgnoreCase, | ||
_In_ PUNICODE_STRING | UserRequestName, | ||
_In_ PUNICODE_STRING | OpenedName, | ||
_In_reads_bytes_(InputBufferLength) PFILE_NOTIFY_INFORMATION | InputSystemBuffer, | ||
_Out_writes_bytes_to_(OutputBufferLength, *OutputBufferWritten) PFILE_NOTIFY_INFORMATION | OutputUserBuffer, | ||
_In_ ULONG | InputBufferLength, | ||
_In_ ULONG | OutputBufferLength, | ||
_Out_ PULONG | InputBufferConsumed, | ||
_Out_ PULONG | OutputBufferWritten, | ||
_In_ BOOLEAN | ReturnRealMappingPaths, | ||
_In_ BOOLEAN | ReturnInMappingOnly | ||
) |
◆ NcFreeNotifyRequestContext()
VOID NcFreeNotifyRequestContext | ( | _In_ PNC_NOTIFY_REQUEST_CONTEXT | NotifyRequestContext | ) |
Definition at line 707 of file ncdirnotify.c.
◆ NcGetDestinationNotifyBuffer()
NTSTATUS NcGetDestinationNotifyBuffer | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_Outptr_result_bytebuffer_maybenull_ *BufferSize PVOID * | DestBuffer, | ||
_Out_ PULONG | BufferSize | ||
) |
Definition at line 923 of file ncdirnotify.c.
◆ NcNotifyCancelCallback()
VOID NcNotifyCancelCallback | ( | _In_ PFLT_CALLBACK_DATA | Data | ) |
Definition at line 3169 of file ncdirnotify.c.
◆ NcPostNotifyDirectory()
FLT_POSTOP_CALLBACK_STATUS NcPostNotifyDirectory | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
Definition at line 2824 of file ncdirnotify.c.
◆ NcPostNotifyDirectoryReal()
VOID NcPostNotifyDirectoryReal | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PVOID | CompletionContext | ||
) |
Definition at line 2179 of file ncdirnotify.c.
◆ NcPostNotifyDirectorySafe()
FLT_POSTOP_CALLBACK_STATUS NcPostNotifyDirectorySafe | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
Definition at line 2777 of file ncdirnotify.c.
◆ NcPreNotifyDirectory()
FLT_PREOP_CALLBACK_STATUS NcPreNotifyDirectory | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
Definition at line 1067 of file ncdirnotify.c.
◆ NcReissueNotifyRequestWorkerRoutine()
VOID NcReissueNotifyRequestWorkerRoutine | ( | _In_ PFLT_GENERIC_WORKITEM | WorkItem, |
_In_ PFLT_FILTER | Filter, | ||
_In_ PVOID | RequestPtr | ||
) |
Definition at line 2909 of file ncdirnotify.c.
◆ NcStreamHandleContextNotCleanup()
VOID NcStreamHandleContextNotCleanup | ( | _In_ PNC_STREAM_HANDLE_CONTEXT | HandleContext | ) |
Definition at line 3325 of file ncdirnotify.c.
◆ NcStreamHandleContextNotClose()
VOID NcStreamHandleContextNotClose | ( | _In_ PNC_DIR_NOT_CONTEXT | Context | ) |
Definition at line 3423 of file ncdirnotify.c.
◆ NcStreamHandleContextNotCreate()
NTSTATUS NcStreamHandleContextNotCreate | ( | _Out_ PNC_DIR_NOT_CONTEXT | Context | ) |
Definition at line 3276 of file ncdirnotify.c.
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