Author: gedmurphy
Date: Tue Sep 6 17:03:27 2016
New Revision: 72596
URL:
http://svn.reactos.org/svn/reactos?rev=72596&view=rev
Log:
[FLTMGR]
- Set correct major and minor versions
- Update the cmakelist file
- Export FltRegisterFilter and FltUnregisterFilter
- Minor cleanup
Added:
trunk/reactos/drivers/filters/fltmgr/fltmgr.spec (with props)
Modified:
trunk/reactos/drivers/filters/fltmgr/CMakeLists.txt
trunk/reactos/drivers/filters/fltmgr/Lib.c
trunk/reactos/drivers/filters/fltmgr/Object.c
trunk/reactos/drivers/filters/fltmgr/fltmgr.h
Modified: trunk/reactos/drivers/filters/fltmgr/CMakeLists.txt
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filters/fltmgr/CMa…
==============================================================================
--- trunk/reactos/drivers/filters/fltmgr/CMakeLists.txt [iso-8859-1] (original)
+++ trunk/reactos/drivers/filters/fltmgr/CMakeLists.txt [iso-8859-1] Tue Sep 6 17:03:27
2016
@@ -1,14 +1,26 @@
list(APPEND SOURCE
+ Context.c
+ Dispatch.c
+ Filter.c
Interface.c
- Registration.c
+ Lib.c
Object.c
- Lib.c
+ ${CMAKE_CURRENT_BINARY_DIR}/fltmgr.def
fltmgr.h)
-add_library(rosfltmgr SHARED ${SOURCE} fltmgr.rc)
-set_module_type(rosfltmgr kernelmodedriver)
-target_link_libraries(rosfltmgr ${PSEH_LIB})
-add_importlibs(rosfltmgr ntoskrnl hal)
-add_pch(rosfltmgr fltmgr.h SOURCE)
-add_cd_file(TARGET rosfltmgr DESTINATION reactos/system32/drivers NO_CAB FOR all)
+include_directories(
+ ${REACTOS_SOURCE_DIR}/sdk/include/reactos/drivers/fltmgr
+ includes)
+
+spec2def(fltmgr.sys fltmgr.spec ADD_IMPORTLIB)
+
+add_library(fltmgr SHARED
+ ${SOURCE}
+ fltmgr.rc)
+
+set_module_type(fltmgr kernelmodedriver)
+target_link_libraries(fltmgr ${PSEH_LIB})
+add_importlibs(fltmgr ntoskrnl hal)
+add_pch(fltmgr fltmgr.h SOURCE)
+add_cd_file(TARGET fltmgr DESTINATION reactos/system32/drivers NO_CAB FOR all)
Modified: trunk/reactos/drivers/filters/fltmgr/Lib.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filters/fltmgr/Lib…
==============================================================================
--- trunk/reactos/drivers/filters/fltmgr/Lib.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filters/fltmgr/Lib.c [iso-8859-1] Tue Sep 6 17:03:27 2016
@@ -1,7 +1,7 @@
/*
* PROJECT: Filesystem Filter Manager
* LICENSE: GPL - See COPYING in the top level directory
-* FILE: drivers/fs_minifilter/fltmgr/Lib.c
+* FILE: drivers/filters/fltmgr/Lib.c
* PURPOSE: Miscellaneous library functions
* PROGRAMMERS: Ged Murphy (gedmurphy(a)reactos.org)
*/
Modified: trunk/reactos/drivers/filters/fltmgr/Object.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filters/fltmgr/Obj…
==============================================================================
--- trunk/reactos/drivers/filters/fltmgr/Object.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/filters/fltmgr/Object.c [iso-8859-1] Tue Sep 6 17:03:27 2016
@@ -1,7 +1,7 @@
/*
* PROJECT: Filesystem Filter Manager
* LICENSE: GPL - See COPYING in the top level directory
-* FILE: drivers/fs_minifilter/fltmgr/Object.c
+* FILE: drivers/filters/fltmgr/Object.c
* PURPOSE: Miscellaneous library functions
* PROGRAMMERS: Ged Murphy (gedmurphy(a)reactos.org)
*/
@@ -12,6 +12,7 @@
/* INCLUDES ******************************************************************/
#include "fltmgr.h"
+#include "fltmgrint.h"
#define NDEBUG
#include <debug.h>
Modified: trunk/reactos/drivers/filters/fltmgr/fltmgr.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filters/fltmgr/flt…
==============================================================================
--- trunk/reactos/drivers/filters/fltmgr/fltmgr.h [iso-8859-1] (original)
+++ trunk/reactos/drivers/filters/fltmgr/fltmgr.h [iso-8859-1] Tue Sep 6 17:03:27 2016
@@ -9,16 +9,19 @@
#include <fltkernel.h>
#include <pseh/pseh2.h>
-#define DRIVER_NAME L"RosFltMgr"
-
-#define FLT_MAJOR_VERSION 0x02
-#define FLT_MINOR_VERSION 0x00 //win2k3
+#define DRIVER_NAME L"FltMgr"
+
+#define FLT_MAJOR_VERSION 0x0200
+#define FLT_MINOR_VERSION 0x0000 //win2k3
#define FM_TAG_DISPATCH_TABLE 'ifMF'
#define FM_TAG_REGISTRY_DATA 'rtMF'
#define FM_TAG_DEV_OBJ_PTRS 'ldMF'
#define FM_TAG_UNICODE_STRING 'suMF'
#define FM_TAG_FILTER 'lfMF'
+#define FM_TAG_CONTEXT_REGISTA 'rcMF'
+
+#define MAX_DEVNAME_LENGTH 64
typedef struct _DRIVER_DATA
@@ -27,113 +30,35 @@
PDEVICE_OBJECT DeviceObject;
UNICODE_STRING ServiceKey;
+ PDEVICE_OBJECT CommsDeviceObject;
+
PFAST_IO_DISPATCH FastIoDispatch;
FAST_MUTEX FilterAttachLock;
} DRIVER_DATA, *PDRIVER_DATA;
-
-typedef enum _FLT_OBJECT_FLAGS
+typedef struct _FLTMGR_DEVICE_EXTENSION
{
- FLT_OBFL_DRAINING = 1,
- FLT_OBFL_ZOMBIED = 2,
- FLT_OBFL_TYPE_INSTANCE = 0x1000000,
- FLT_OBFL_TYPE_FILTER = 0x2000000,
- FLT_OBFL_TYPE_VOLUME = 0x4000000
-
-} FLT_OBJECT_FLAGS, *PFLT_OBJECT_FLAGS;
-
-typedef enum _FLT_FILTER_FLAGS
-{
- FLTFL_MANDATORY_UNLOAD_IN_PROGRESS = 1,
- FLTFL_FILTERING_INITIATED = 2
-
-} FLT_FILTER_FLAGS, *PFLT_FILTER_FLAGS;
-
-typedef struct _FLT_OBJECT // size = 0x14
-{
- volatile FLT_OBJECT_FLAGS Flags;
- ULONG PointerCount;
- EX_RUNDOWN_REF RundownRef;
- LIST_ENTRY PrimaryLink;
-
-} FLT_OBJECT, *PFLT_OBJECT;
-
-typedef struct _FLT_RESOURCE_LIST_HEAD
-{
- ERESOURCE rLock;
- LIST_ENTRY rList;
- ULONG rCount;
-
-} FLT_RESOURCE_LIST_HEAD, *PFLT_RESOURCE_LIST_HEAD;
-
-typedef struct _FLT_MUTEX_LIST_HEAD
-{
- FAST_MUTEX mLock;
- LIST_ENTRY mList;
- ULONG mCount;
-
-} FLT_MUTEX_LIST_HEAD, *PFLT_MUTEX_LIST_HEAD;
-
-typedef struct _FLT_FILTER // size = 0x120
-{
- FLT_OBJECT Base;
- PVOID Frame; //FLTP_FRAME
- UNICODE_STRING Name;
- UNICODE_STRING DefaultAltitude;
- FLT_FILTER_FLAGS Flags;
- PDRIVER_OBJECT DriverObject;
- FLT_RESOURCE_LIST_HEAD InstanceList;
- PVOID VerifierExtension;
- PFLT_FILTER_UNLOAD_CALLBACK FilterUnload;
- PFLT_INSTANCE_SETUP_CALLBACK InstanceSetup;
- PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardown;
- PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStart;
- PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownComplete;
- PVOID SupportedContextsListHead; //PALLOCATE_CONTEXT_HEADER
- PVOID SupportedContexts; //PALLOCATE_CONTEXT_HEADER
- PVOID PreVolumeMount;
- PVOID PostVolumeMount;
- PFLT_GENERATE_FILE_NAME GenerateFileName;
- PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponent;
- PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanup;
- PFLT_OPERATION_REGISTRATION Operations;
- PFLT_FILTER_UNLOAD_CALLBACK OldDriverUnload;
- FLT_MUTEX_LIST_HEAD ActiveOpens;
- FLT_MUTEX_LIST_HEAD PortList;
- EX_PUSH_LOCK PortLock;
-
-} FLT_FILTER, *PFLT_FILTER;
-
-typedef enum _FLT_INSTANCE_FLAGS
-{
- INSFL_CAN_BE_DETACHED = 0x01,
- INSFL_DELETING = 0x02,
- INSFL_INITING = 0x04
-
-} FLT_INSTANCE_FLAGS, *PFLT_INSTANCE_FLAGS;
-
-typedef struct _FLT_INSTANCE // size = 0x144
-{
- FLT_OBJECT Base;
- ULONG OperationRundownRef;
- PVOID Volume; //PFLT_VOLUME
- PFLT_FILTER Filter;
- FLT_INSTANCE_FLAGS Flags;
- UNICODE_STRING Altitude;
- UNICODE_STRING Name;
- LIST_ENTRY FilterLink;
- ERESOURCE ContextLock;
- PVOID Context;
- PVOID TrackCompletionNodes;
- PVOID CallbackNodes;
-
-} FLT_INSTANCE, *PFLT_INSTANCE;
-
-
-
-
+ /* The file system we're attached to */
+ PDEVICE_OBJECT AttachedToDeviceObject;
+
+ /* The storage stack(disk) accociated with the file system device object we're
attached to */
+ PDEVICE_OBJECT StorageStackDeviceObject;
+
+ /* Either physical drive for volume device objects otherwise
+ * it's the name of the control device we're attached to */
+ UNICODE_STRING DeviceName;
+ WCHAR DeviceNameBuffer[MAX_DEVNAME_LENGTH];
+
+} FLTMGR_DEVICE_EXTENSION, *PFLTMGR_DEVICE_EXTENSION;
+
+
+NTSTATUS
+FltpRegisterContexts(
+ _In_ PFLT_FILTER Filter,
+ _In_ const FLT_CONTEXT_REGISTRATION *Context
+);
VOID
FltpExInitializeRundownProtection(
Added: trunk/reactos/drivers/filters/fltmgr/fltmgr.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filters/fltmgr/flt…
==============================================================================
--- trunk/reactos/drivers/filters/fltmgr/fltmgr.spec (added)
+++ trunk/reactos/drivers/filters/fltmgr/fltmgr.spec [iso-8859-1] Tue Sep 6 17:03:27
2016
@@ -0,0 +1,4 @@
+
+ @ stdcall FltRegisterFilter(ptr ptr ptr)
+ @ stdcall FltUnregisterFilter(ptr)
+
Propchange: trunk/reactos/drivers/filters/fltmgr/fltmgr.spec
------------------------------------------------------------------------------
svn:eol-style = native