mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 19:32:59 +00:00
Added request routine for IRP_MJ_CLEANUP
svn path=/trunk/; revision=1672
This commit is contained in:
parent
3073e95ed9
commit
05428a2fea
5 changed files with 96 additions and 44 deletions
58
reactos/drivers/fs/vfat/cleanup.c
Normal file
58
reactos/drivers/fs/vfat/cleanup.c
Normal file
|
@ -0,0 +1,58 @@
|
|||
/* $Id: cleanup.c,v 1.1 2001/03/07 13:44:40 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/fs/vfat/cleanup.c
|
||||
* PURPOSE: VFAT Filesystem
|
||||
* PROGRAMMER: Jason Filby (jasonfilby@yahoo.com)
|
||||
*/
|
||||
|
||||
/* INCLUDES *****************************************************************/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
#include "vfat.h"
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
static NTSTATUS
|
||||
VfatCleanupFile(PDEVICE_EXTENSION DeviceExt,
|
||||
PFILE_OBJECT FileObject)
|
||||
/*
|
||||
* FUNCTION: Cleans up after a file has been closed.
|
||||
*/
|
||||
{
|
||||
DPRINT("VfatCleanupFile(DeviceExt %x, FileObject %x)\n",
|
||||
DeviceExt, FileObject);
|
||||
|
||||
/* FIXME: handle file/directory deletion here */
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS STDCALL
|
||||
VfatCleanup (PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
||||
/*
|
||||
* FUNCTION: Cleans up after a file has been closed.
|
||||
*/
|
||||
{
|
||||
PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation (Irp);
|
||||
PFILE_OBJECT FileObject = Stack->FileObject;
|
||||
PDEVICE_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
|
||||
NTSTATUS Status;
|
||||
|
||||
DPRINT1("VfatCleanup(DeviceObject %x, Irp %x)\n", DeviceObject, Irp);
|
||||
|
||||
Status = VfatCleanupFile(DeviceExtension, FileObject);
|
||||
|
||||
Irp->IoStatus.Status = Status;
|
||||
Irp->IoStatus.Information = 0;
|
||||
|
||||
IoCompleteRequest (Irp, IO_NO_INCREMENT);
|
||||
return (Status);
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: finfo.c,v 1.6 2001/03/06 23:36:35 cnettel Exp $
|
||||
/* $Id: finfo.c,v 1.7 2001/03/07 13:44:40 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -20,8 +20,9 @@
|
|||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
NTSTATUS
|
||||
VfatGetStandardInformation (PVFATFCB FCB, PDEVICE_OBJECT DeviceObject,
|
||||
static NTSTATUS
|
||||
VfatGetStandardInformation(PVFATFCB FCB,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_STANDARD_INFORMATION StandardInfo)
|
||||
/*
|
||||
* FUNCTION: Retrieve the standard file information
|
||||
|
@ -61,8 +62,8 @@ VfatGetStandardInformation (PVFATFCB FCB, PDEVICE_OBJECT DeviceObject,
|
|||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
VfatSetPositionInformation (PFILE_OBJECT FileObject,
|
||||
static NTSTATUS
|
||||
VfatSetPositionInformation(PFILE_OBJECT FileObject,
|
||||
PVFATFCB FCB,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_POSITION_INFORMATION PositionInfo)
|
||||
|
@ -77,8 +78,8 @@ VfatSetPositionInformation (PFILE_OBJECT FileObject,
|
|||
return (STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
VfatGetPositionInformation (PFILE_OBJECT FileObject,
|
||||
static NTSTATUS
|
||||
VfatGetPositionInformation(PFILE_OBJECT FileObject,
|
||||
PVFATFCB FCB,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_POSITION_INFORMATION PositionInfo)
|
||||
|
@ -91,8 +92,8 @@ VfatGetPositionInformation (PFILE_OBJECT FileObject,
|
|||
return (STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
NTSTATUS
|
||||
VfatGetBasicInformation (PFILE_OBJECT FileObject,
|
||||
static NTSTATUS
|
||||
VfatGetBasicInformation(PFILE_OBJECT FileObject,
|
||||
PVFATFCB FCB,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_BASIC_INFORMATION BasicInfo)
|
||||
|
@ -116,8 +117,8 @@ VfatGetBasicInformation (PFILE_OBJECT FileObject,
|
|||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
VfatSetDispositionInformation (PFILE_OBJECT FileObject,
|
||||
static NTSTATUS
|
||||
VfatSetDispositionInformation(PFILE_OBJECT FileObject,
|
||||
PVFATFCB FCB,
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_DISPOSITION_INFORMATION DispositionInfo)
|
||||
|
@ -257,6 +258,11 @@ VfatSetInformation (PDEVICE_OBJECT DeviceObject, PIRP Irp)
|
|||
RC = VfatSetDispositionInformation (FileObject,
|
||||
FCB, DeviceObject, SystemBuffer);
|
||||
break;
|
||||
// case FileBasicInformation:
|
||||
// case FileAllocationInformation:
|
||||
// case FileEndOfFileInformation:
|
||||
// case FileRenameInformation:
|
||||
// case FileLinkInformation:
|
||||
default:
|
||||
RC = STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: iface.c,v 1.50 2001/03/06 08:19:58 ekohl Exp $
|
||||
/* $Id: iface.c,v 1.51 2001/03/07 13:44:40 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -330,6 +330,7 @@ DriverEntry (PDRIVER_OBJECT _DriverObject, PUNICODE_STRING RegistryPath)
|
|||
VfatDriverObject->MajorFunction[IRP_MJ_QUERY_VOLUME_INFORMATION] =
|
||||
VfatQueryVolumeInformation;
|
||||
VfatDriverObject->MajorFunction[IRP_MJ_SHUTDOWN] = VfatShutdown;
|
||||
VfatDriverObject->MajorFunction[IRP_MJ_CLEANUP] = VfatCleanup;
|
||||
|
||||
VfatDriverObject->DriverUnload = NULL;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.27 2001/01/14 15:05:53 dwelch Exp $
|
||||
# $Id: makefile,v 1.28 2001/03/07 13:44:41 ekohl Exp $
|
||||
#
|
||||
#
|
||||
PATH_TO_TOP = ../../..
|
||||
|
@ -6,7 +6,7 @@ PATH_TO_TOP = ../../..
|
|||
TARGET=vfatfs
|
||||
|
||||
OBJECTS = blockdev.o close.o create.o dir.o dirwr.o iface.o string.o fat.o \
|
||||
rw.o finfo.o volume.o shutdown.o $(TARGET).coff
|
||||
rw.o finfo.o volume.o shutdown.o cleanup.o $(TARGET).coff
|
||||
LIBS = ../../../ntoskrnl/ntoskrnl.a
|
||||
|
||||
CFLAGS = -g -Wall -Werror
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: vfat.h,v 1.26 2001/03/02 15:59:16 cnettel Exp $ */
|
||||
/* $Id: vfat.h,v 1.27 2001/03/07 13:44:41 ekohl Exp $ */
|
||||
|
||||
#include <ddk/ntifs.h>
|
||||
|
||||
|
@ -138,22 +138,30 @@ typedef struct __DOSDATE
|
|||
} DOSDATE, *PDOSDATE;
|
||||
|
||||
/* functions called by i/o manager : */
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
DriverEntry(PDRIVER_OBJECT _DriverObject,PUNICODE_STRING RegistryPath);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatDirectoryControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatRead(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatWrite(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatCreate(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatClose(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatFileSystemControl(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
NTSTATUS STDCALL
|
||||
VfatQueryInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
VfatSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
VfatCleanup (PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
VfatShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
NTSTATUS STDCALL
|
||||
VfatQueryVolumeInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
|
||||
|
||||
NTSTATUS
|
||||
|
@ -186,9 +194,6 @@ FindFile(PDEVICE_EXTENSION DeviceExt, PVFATFCB Fcb,
|
|||
NTSTATUS
|
||||
VfatCloseFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject);
|
||||
NTSTATUS
|
||||
VfatGetStandardInformation(PVFATFCB FCB, PDEVICE_OBJECT DeviceObject,
|
||||
PFILE_STANDARD_INFORMATION StandardInfo);
|
||||
NTSTATUS
|
||||
VfatOpenFile(PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject,
|
||||
PWSTR FileName);
|
||||
NTSTATUS
|
||||
|
@ -270,18 +275,6 @@ NTSTATUS
|
|||
WriteCluster (PDEVICE_EXTENSION DeviceExt, ULONG ClusterToWrite,
|
||||
ULONG NewValue);
|
||||
|
||||
/*
|
||||
* functions from volume.c
|
||||
*/
|
||||
NTSTATUS STDCALL
|
||||
VfatQueryVolumeInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
|
||||
/*
|
||||
* functions from finfo.c
|
||||
*/
|
||||
NTSTATUS STDCALL
|
||||
VfatSetInformation(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
|
||||
/*
|
||||
* From create.c
|
||||
*/
|
||||
|
@ -290,9 +283,3 @@ ReadVolumeLabel(PDEVICE_EXTENSION DeviceExt, PVPB Vpb);
|
|||
NTSTATUS
|
||||
VfatOpenFile (PDEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject,
|
||||
PWSTR FileName);
|
||||
|
||||
/*
|
||||
* functions from shutdown.c
|
||||
*/
|
||||
NTSTATUS STDCALL VfatShutdown(PDEVICE_OBJECT DeviceObject, PIRP Irp);
|
||||
|
||||
|
|
Loading…
Reference in a new issue