WDK Mini Filter Example
|
Go to the source code of this file.
Functions | |
NTSTATUS | DriverEntry (_In_ PDRIVER_OBJECT DriverObject, _In_ PUNICODE_STRING RegistryPath) |
NTSTATUS | NcInstanceSetup (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType) |
VOID | NcInstanceTeardownStart (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags) |
NTSTATUS | NcUnload (_In_ FLT_FILTER_UNLOAD_FLAGS Flags) |
NTSTATUS | NcInstanceQueryTeardown (_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | NcPreCreateCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_PREOP_CALLBACK_STATUS | NcPreCleanupCallback (_Unreferenced_parameter_ PFLT_CALLBACK_DATA Data, _Unreferenced_parameter_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostCleanupCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | NcPreFsctlCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostFsctlCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _When_(Data->Iopb->Parameters.FileSystemControl.Common.FsControlCode==FSCTL_FIND_FILES_BY_SID, _In_) _When_(Data->Iopb->Parameters.FileSystemControl.Common.FsControlCode!=FSCTL_FIND_FILES_BY_SID, _In_opt_) PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | NcPreQueryInformationCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostQueryInformationCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_opt_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | NcPreSetInformationCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_PREOP_CALLBACK_STATUS | NcPreDirectoryControlCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
FLT_POSTOP_CALLBACK_STATUS | NcPostDirectoryControlCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ PVOID CompletionContext, _In_ FLT_POST_OPERATION_FLAGS Flags) |
FLT_PREOP_CALLBACK_STATUS | NcPreNetworkQueryCallback (_Inout_ PFLT_CALLBACK_DATA Data, _In_ PCFLT_RELATED_OBJECTS FltObjects, _Flt_CompletionContext_Outptr_ PVOID *CompletionContext) |
NTSTATUS | NcGenerateFileNameCallback (_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_opt_ PFLT_CALLBACK_DATA Data, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Out_ PBOOLEAN CacheFileNameInformation, _Inout_ PFLT_NAME_CONTROL FileName) |
NTSTATUS | NcNormalizeNameComponentExCallback (_In_ PFLT_INSTANCE Instance, _In_opt_ PFILE_OBJECT FileObject, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT DeviceNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext) |
NTSTATUS | NcNormalizeNameComponentCallback (_In_ PFLT_INSTANCE Instance, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT DeviceNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext) |
Variables | |
DRIVER_INITIALIZE | DriverEntry |
CONST FLT_OPERATION_REGISTRATION | Callbacks [] |
const FLT_CONTEXT_REGISTRATION | contextRegistration [] |
CONST FLT_REGISTRATION | FilterRegistration |
NC_GLOBAL_DATA | NcGlobalData |
Function Documentation
◆ DriverEntry()
NTSTATUS DriverEntry | ( | _In_ PDRIVER_OBJECT | DriverObject, |
_In_ PUNICODE_STRING | RegistryPath | ||
) |
◆ NcGenerateFileNameCallback()
NTSTATUS NcGenerateFileNameCallback | ( | _In_ PFLT_INSTANCE | Instance, |
_In_ PFILE_OBJECT | FileObject, | ||
_In_opt_ PFLT_CALLBACK_DATA | Data, | ||
_In_ FLT_FILE_NAME_OPTIONS | NameOptions, | ||
_Out_ PBOOLEAN | CacheFileNameInformation, | ||
_Inout_ PFLT_NAME_CONTROL | FileName | ||
) |
◆ NcInstanceQueryTeardown()
NTSTATUS NcInstanceQueryTeardown | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS | Flags | ||
) |
◆ NcInstanceSetup()
NTSTATUS NcInstanceSetup | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_SETUP_FLAGS | Flags, | ||
_In_ DEVICE_TYPE | VolumeDeviceType, | ||
_In_ FLT_FILESYSTEM_TYPE | VolumeFilesystemType | ||
) |
◆ NcInstanceTeardownStart()
VOID NcInstanceTeardownStart | ( | _In_ PCFLT_RELATED_OBJECTS | FltObjects, |
_In_ FLT_INSTANCE_TEARDOWN_FLAGS | Flags | ||
) |
◆ NcNormalizeNameComponentCallback()
NTSTATUS NcNormalizeNameComponentCallback | ( | _In_ PFLT_INSTANCE | Instance, |
_In_ PCUNICODE_STRING | ParentDirectory, | ||
_In_ USHORT | DeviceNameLength, | ||
_In_ PCUNICODE_STRING | Component, | ||
_Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION | ExpandComponentName, | ||
_In_ ULONG | ExpandComponentNameLength, | ||
_In_ FLT_NORMALIZE_NAME_FLAGS | Flags, | ||
_Inout_ PVOID * | NormalizationContext | ||
) |
◆ NcNormalizeNameComponentExCallback()
NTSTATUS NcNormalizeNameComponentExCallback | ( | _In_ PFLT_INSTANCE | Instance, |
_In_opt_ PFILE_OBJECT | FileObject, | ||
_In_ PCUNICODE_STRING | ParentDirectory, | ||
_In_ USHORT | DeviceNameLength, | ||
_In_ PCUNICODE_STRING | Component, | ||
_Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION | ExpandComponentName, | ||
_In_ ULONG | ExpandComponentNameLength, | ||
_In_ FLT_NORMALIZE_NAME_FLAGS | Flags, | ||
_Inout_ PVOID * | NormalizationContext | ||
) |
◆ NcPostCleanupCallback()
FLT_POSTOP_CALLBACK_STATUS NcPostCleanupCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_opt_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
◆ NcPostDirectoryControlCallback()
FLT_POSTOP_CALLBACK_STATUS NcPostDirectoryControlCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
◆ NcPostFsctlCallback()
FLT_POSTOP_CALLBACK_STATUS NcPostFsctlCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_When_(Data->Iopb->Parameters.FileSystemControl.Common.FsControlCode==FSCTL_FIND_FILES_BY_SID, _In_) _When_(Data->Iopb->Parameters.FileSystemControl.Common.FsControlCode!=FSCTL_FIND_FILES_BY_SID, _In_opt_) PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
◆ NcPostQueryInformationCallback()
FLT_POSTOP_CALLBACK_STATUS NcPostQueryInformationCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_In_opt_ PVOID | CompletionContext, | ||
_In_ FLT_POST_OPERATION_FLAGS | Flags | ||
) |
◆ NcPreCleanupCallback()
FLT_PREOP_CALLBACK_STATUS NcPreCleanupCallback | ( | _Unreferenced_parameter_ PFLT_CALLBACK_DATA | Data, |
_Unreferenced_parameter_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreCreateCallback()
FLT_PREOP_CALLBACK_STATUS NcPreCreateCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreDirectoryControlCallback()
FLT_PREOP_CALLBACK_STATUS NcPreDirectoryControlCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreFsctlCallback()
FLT_PREOP_CALLBACK_STATUS NcPreFsctlCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreNetworkQueryCallback()
FLT_PREOP_CALLBACK_STATUS NcPreNetworkQueryCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreQueryInformationCallback()
FLT_PREOP_CALLBACK_STATUS NcPreQueryInformationCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcPreSetInformationCallback()
FLT_PREOP_CALLBACK_STATUS NcPreSetInformationCallback | ( | _Inout_ PFLT_CALLBACK_DATA | Data, |
_In_ PCFLT_RELATED_OBJECTS | FltObjects, | ||
_Flt_CompletionContext_Outptr_ PVOID * | CompletionContext | ||
) |
◆ NcUnload()
Variable Documentation
◆ Callbacks
◆ contextRegistration
const FLT_CONTEXT_REGISTRATION contextRegistration[] |
Initial value:
= {
{ FLT_INSTANCE_CONTEXT,
0,
sizeof(NC_INSTANCE_CONTEXT),
NULL,
NULL,
NULL },
{ FLT_STREAMHANDLE_CONTEXT,
0,
sizeof(NC_STREAM_HANDLE_CONTEXT),
NULL,
NULL,
NULL },
{ FLT_CONTEXT_END }
}
struct _NC_INSTANCE_CONTEXT NC_INSTANCE_CONTEXT
VOID NcStreamHandleContextClose(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: nccontext.c:65
struct _NC_STREAM_HANDLE_CONTEXT NC_STREAM_HANDLE_CONTEXT
VOID NcInstanceContextClose(_In_ PFLT_CONTEXT Context, _In_ FLT_CONTEXT_TYPE ContextType)
Definition: nccontext.c:31
◆ DriverEntry
◆ FilterRegistration
CONST FLT_REGISTRATION FilterRegistration |
Initial value:
= {
sizeof( FLT_REGISTRATION ),
FLT_REGISTRATION_VERSION,
0,
NULL,
NULL,
}
VOID NcInstanceTeardownStart(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_TEARDOWN_FLAGS Flags)
Definition: nc.c:907
NTSTATUS NcNormalizeNameComponentCallback(_In_ PFLT_INSTANCE Instance, _In_ PCUNICODE_STRING ParentDirectory, _In_ USHORT DeviceNameLength, _In_ PCUNICODE_STRING Component, _Out_writes_bytes_(ExpandComponentNameLength) PFILE_NAMES_INFORMATION ExpandComponentName, _In_ ULONG ExpandComponentNameLength, _In_ FLT_NORMALIZE_NAME_FLAGS Flags, _Inout_ PVOID *NormalizationContext)
Definition: nc.c:1958
NTSTATUS NcInstanceSetup(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_SETUP_FLAGS Flags, _In_ DEVICE_TYPE VolumeDeviceType, _In_ FLT_FILESYSTEM_TYPE VolumeFilesystemType)
Definition: nc.c:343
NTSTATUS NcGenerateFileNameCallback(_In_ PFLT_INSTANCE Instance, _In_ PFILE_OBJECT FileObject, _In_opt_ PFLT_CALLBACK_DATA Data, _In_ FLT_FILE_NAME_OPTIONS NameOptions, _Out_ PBOOLEAN CacheFileNameInformation, _Inout_ PFLT_NAME_CONTROL FileName)
Definition: nc.c:1836
NTSTATUS NcInstanceQueryTeardown(_In_ PCFLT_RELATED_OBJECTS FltObjects, _In_ FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags)
Definition: nc.c:868
◆ NcGlobalData
NC_GLOBAL_DATA NcGlobalData |
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