https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4d603e689ee269efecc82…
commit 4d603e689ee269efecc82e4675290dc6aac247a8
Author: Ged Murphy <gedmurphy(a)reactos.org>
AuthorDate: Mon Oct 29 11:17:21 2018 +0000
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Mon Oct 29 23:56:39 2018 +0100
[FLTMGR] Delete unused file
---
drivers/filters/fltmgr/Registration.c | 252 ----------------------------------
1 file changed, 252 deletions(-)
diff --git a/drivers/filters/fltmgr/Registration.c
b/drivers/filters/fltmgr/Registration.c
deleted file mode 100644
index 851140dc7a..0000000000
--- a/drivers/filters/fltmgr/Registration.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
-* PROJECT: Filesystem Filter Manager
-* LICENSE: GPL - See COPYING in the top level directory
-* FILE: drivers/fs_minifilter/fltmgr/Registration.c
-* PURPOSE: Handles registration of mini filters
-* PROGRAMMERS: Ged Murphy (gedmurphy(a)reactos.org)
-*/
-
-/* INCLUDES ******************************************************************/
-
-#include "fltmgr.h"
-
-#define NDEBUG
-#include <debug.h>
-
-
-/* DATA *********************************************************************/
-
-
-NTSTATUS
-FltpStartingToDrainObject(
- _Inout_ PFLT_OBJECT Object
-);
-
-
-/* EXPORTED FUNCTIONS ******************************************************/
-
-NTSTATUS
-NTAPI
-FltRegisterFilter(_In_ PDRIVER_OBJECT DriverObject,
- _In_ const FLT_REGISTRATION *Registration,
- _Out_ PFLT_FILTER *RetFilter)
-{
- PFLT_OPERATION_REGISTRATION Callbacks;
- PFLT_FILTER Filter;
- ULONG CallbackBufferSize;
- ULONG FilterBufferSize;
- ULONG Count = 0;
- PCHAR Ptr;
- NTSTATUS Status;
-
- Status = 0; //remove me
-
- /* Make sure we're targeting the correct major revision */
- if ((Registration->Version & 0xFF00) != FLT_MAJOR_VERSION)
- {
- return STATUS_INVALID_PARAMETER;
- }
-
- /* Make sure our namespace callbacks are valid */
- if ((!Registration->GenerateFileNameCallback &&
Registration->NormalizeNameComponentCallback) ||
- (!Registration->NormalizeNameComponentCallback &&
Registration->NormalizeContextCleanupCallback))
- {
- return STATUS_INVALID_PARAMETER;
- }
-
- /* Count the number of operations that were requested */
- Callbacks = (PFLT_OPERATION_REGISTRATION)Registration->OperationRegistration;
- while (Callbacks)
- {
- Count++;
-
- /* Bail when we find the last one */
- if (Callbacks->MajorFunction == IRP_MJ_OPERATION_END)
- break;
-
- /* Move to the next item */
- Callbacks++;
- }
-
- /* Calculate the buffer sizes */
- CallbackBufferSize = Count * sizeof(FLT_OPERATION_REGISTRATION);
- FilterBufferSize = sizeof(FLT_FILTER) + CallbackBufferSize +
- DriverObject->DriverExtension->ServiceKeyName.Length;
-
- /* Allocate a buffer to hold our filter data */
- Filter = ExAllocatePoolWithTag(NonPagedPool,
- FilterBufferSize,
- FM_TAG_FILTER);
- if (Filter == NULL) return STATUS_INSUFFICIENT_RESOURCES;
- RtlZeroMemory(Filter, FilterBufferSize);
-
- /* Find the end of the fixed struct */
- Ptr = (PCHAR)(Filter + 1);
-
- /* Store a copy of the driver object of this filter */
- Filter->DriverObject = DriverObject;
-
- /* Initialize the base object data */
- Filter->Base.Flags = FLT_OBFL_TYPE_FILTER;
- Filter->Base.PointerCount = 1;
- FltpExInitializeRundownProtection(&Filter->Base.RundownRef);
- FltObjectReference(&Filter->Base);
-
- /* Set the callback addresses */
- Filter->FilterUnload = Registration->FilterUnloadCallback;
- Filter->InstanceSetup = Registration->InstanceSetupCallback;
- Filter->InstanceQueryTeardown = Registration->InstanceQueryTeardownCallback;
- Filter->InstanceTeardownStart = Registration->InstanceTeardownStartCallback;
- Filter->InstanceTeardownComplete =
Registration->InstanceTeardownCompleteCallback;
- Filter->GenerateFileName = Registration->GenerateFileNameCallback;
- Filter->NormalizeNameComponent = Registration->NormalizeNameComponentCallback;
- Filter->NormalizeContextCleanup =
Registration->NormalizeContextCleanupCallback;
-
- /* Initialize the instance list */
- ExInitializeResourceLite(&Filter->InstanceList.rLock);
- InitializeListHead(&Filter->InstanceList.rList);
- Filter->InstanceList.rCount = 0;
-
- ExInitializeFastMutex(&Filter->ActiveOpens.mLock);
- InitializeListHead(&Filter->ActiveOpens.mList);
- Filter->ActiveOpens.mCount = 0;
-
- /* Initialize the usermode port list */
- ExInitializeFastMutex(&Filter->PortList.mLock);
- InitializeListHead(&Filter->PortList.mList);
- Filter->PortList.mCount = 0;
-
- /* Check if the caller requested any context data */
- if (Registration->ContextRegistration)
- {
- // register the context information
- }
-
- if (Registration->OperationRegistration)
- {
- /* The callback data comes after the fixed struct */
- Filter->Operations = (PFLT_OPERATION_REGISTRATION)Ptr;
- Ptr += (Count * sizeof(FLT_OPERATION_REGISTRATION));
-
- /* Tag the operation data onto the end of the filter data */
- RtlCopyMemory(Filter->Operations, Registration->OperationRegistration,
CallbackBufferSize);
-
- /* walk through the requested callbacks */
- for (Callbacks = Filter->Operations;
- Callbacks->MajorFunction != IRP_MJ_OPERATION_END;
- Callbacks++)
- {
- //
http://fsfilters.blogspot.co.uk/2011/03/how-file-system-filters-attach-to_1…
- /* Check if this is an attach to a volume */
- if (Callbacks->MajorFunction == IRP_MJ_VOLUME_MOUNT)
- {
- Filter->PreVolumeMount = Callbacks->PreOperation;
- Filter->PostVolumeMount = Callbacks->PostOperation;
- }
- else if (Callbacks->MajorFunction == IRP_MJ_SHUTDOWN)
- {
- Callbacks->PostOperation = NULL;
- }
- }
- }
-
- /* Add the filter name buffer onto the end of the data and fill in the string */
- Filter->Name.Length = 0;
- Filter->Name.MaximumLength =
DriverObject->DriverExtension->ServiceKeyName.Length;
- Filter->Name.Buffer = (PWCH)Ptr;
- RtlCopyUnicodeString(&Filter->Name,
&DriverObject->DriverExtension->ServiceKeyName);
-
- //
- // - Get the altitude string
- // - Slot the filter into the correct altitude location
- // - More stuff??
- //
-
-//Quit:
- if (!NT_SUCCESS(Status))
- {
- // Add cleanup for context resources
-
- ExDeleteResourceLite(&Filter->InstanceList.rLock);
- ExFreePoolWithTag(Filter, FM_TAG_FILTER);
- }
-
- return Status;
-}
-
-VOID
-FLTAPI
-FltUnregisterFilter(_In_ PFLT_FILTER Filter)
-{
- PFLT_INSTANCE Instance;
- PLIST_ENTRY CurrentEntry;
- NTSTATUS Status;
-
- /* Set the draining flag */
- Status = FltpStartingToDrainObject(&Filter->Base);
- if (!NT_SUCCESS(Status))
- {
- /* Someone already unregistered us, just remove our ref and bail */
- FltObjectDereference(&Filter->Base);
- return;
- }
-
- /* Lock the instance list */
- KeEnterCriticalRegion();
- ExAcquireResourceSharedLite(&Filter->InstanceList.rLock, TRUE);
-
- /* Set the first entry in the list */
- CurrentEntry = Filter->InstanceList.rList.Flink;
-
- /* Free all instances referenced by the filter */
- while (CurrentEntry != &Filter->InstanceList.rList)
- {
- /* Get the record pointer */
- Instance = CONTAINING_RECORD(CurrentEntry, FLT_INSTANCE, FilterLink);
-
- // FIXME: implement
- (void)Instance;
-
- /* Reset the pointer and move to next entry */
- Instance = NULL;
- CurrentEntry = CurrentEntry->Flink;
- }
-
- /* We're done with instances now */
- ExReleaseResourceLite(&Filter->InstanceList.rLock);
- KeLeaveCriticalRegion();
-
- /* Remove the reference from the base object */
- FltObjectDereference(&Filter->Base);
-
- /* Wait until we're sure nothing is using the filter */
- FltpObjectRundownWait(&Filter->Base.RundownRef);
-
- /* Delete the instance list lock */
- ExDeleteResourceLite(&Filter->InstanceList.rLock);
-
- /* We're finished cleaning up now */
- FltpExRundownCompleted(&Filter->Base.RundownRef);
-
- /* Hand the memory back */
- ExFreePoolWithTag(Filter, FM_TAG_FILTER);
-}
-
-
-/* INTERNAL FUNCTIONS ******************************************************/
-
-NTSTATUS
-FltpStartingToDrainObject(_Inout_ PFLT_OBJECT Object)
-{
- /*
- * Set the draining flag for the filter. This let's us force
- * a post op callback for minifilters currently awaiting one.
- */
- if (InterlockedOr((PLONG)&Object->Flags, FLT_OBFL_DRAINING) & 1)
- {
- /* We've been called once, we're already being deleted */
- return STATUS_FLT_DELETING_OBJECT;
- }
-
- return STATUS_SUCCESS;
-}