From b3c01e9864b888d8b410eaf3ddc664ed22b231ae Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Fri, 13 Feb 2009 11:48:06 +0000 Subject: [PATCH] -use ExAllocatePoolWithTag/ExFreePoolWithTag -set FileObject to readonly -register the filesystem as low priority svn path=/trunk/; revision=39579 --- reactos/drivers/filesystems/cdfs/cdfs.c | 2 ++ reactos/drivers/filesystems/cdfs/close.c | 4 ++-- reactos/drivers/filesystems/cdfs/dirctl.c | 4 ++-- reactos/drivers/filesystems/cdfs/fcb.c | 3 +++ reactos/drivers/filesystems/cdfs/fsctl.c | 3 +++ 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/reactos/drivers/filesystems/cdfs/cdfs.c b/reactos/drivers/filesystems/cdfs/cdfs.c index b3e0b628ba2..9d325e948c7 100644 --- a/reactos/drivers/filesystems/cdfs/cdfs.c +++ b/reactos/drivers/filesystems/cdfs/cdfs.c @@ -104,6 +104,8 @@ DriverEntry(PDRIVER_OBJECT DriverObject, CdfsGlobalData->CacheMgrCallbacks.AcquireForReadAhead = CdfsAcquireForLazyWrite; CdfsGlobalData->CacheMgrCallbacks.ReleaseFromReadAhead = CdfsReleaseFromLazyWrite; + DeviceObject->Flags |= DO_LOW_PRIORITY_FILESYSTEM; + IoRegisterFileSystem(DeviceObject); DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING; diff --git a/reactos/drivers/filesystems/cdfs/close.c b/reactos/drivers/filesystems/cdfs/close.c index 7269f6e7753..c9de6923a2c 100644 --- a/reactos/drivers/filesystems/cdfs/close.c +++ b/reactos/drivers/filesystems/cdfs/close.c @@ -68,9 +68,9 @@ CdfsCloseFile(PDEVICE_EXTENSION DeviceExt, if (Ccb->DirectorySearchPattern.Buffer) { - ExFreePool(Ccb->DirectorySearchPattern.Buffer); + ExFreePoolWithTag(Ccb->DirectorySearchPattern.Buffer, TAG_CCB); } - ExFreePool(Ccb); + ExFreePoolWithTag(Ccb, TAG_CCB); return(STATUS_SUCCESS); } diff --git a/reactos/drivers/filesystems/cdfs/dirctl.c b/reactos/drivers/filesystems/cdfs/dirctl.c index a670fe80d01..03f36afc9f4 100644 --- a/reactos/drivers/filesystems/cdfs/dirctl.c +++ b/reactos/drivers/filesystems/cdfs/dirctl.c @@ -590,7 +590,7 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, { First = TRUE; Ccb->DirectorySearchPattern.Buffer = - ExAllocatePool(NonPagedPool, SearchPattern->Length + sizeof(WCHAR)); + ExAllocatePoolWithTag(NonPagedPool, SearchPattern->Length + sizeof(WCHAR), TAG_CCB); if (Ccb->DirectorySearchPattern.Buffer == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -608,7 +608,7 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, else if (Ccb->DirectorySearchPattern.Buffer == NULL) { First = TRUE; - Ccb->DirectorySearchPattern.Buffer = ExAllocatePool(NonPagedPool, 2 * sizeof(WCHAR)); + Ccb->DirectorySearchPattern.Buffer = ExAllocatePoolWithTag(NonPagedPool, 2 * sizeof(WCHAR), TAG_CCB); if (Ccb->DirectorySearchPattern.Buffer == NULL) { return STATUS_INSUFFICIENT_RESOURCES; diff --git a/reactos/drivers/filesystems/cdfs/fcb.c b/reactos/drivers/filesystems/cdfs/fcb.c index afc2beac4f4..7fa13ca8f32 100644 --- a/reactos/drivers/filesystems/cdfs/fcb.c +++ b/reactos/drivers/filesystems/cdfs/fcb.c @@ -246,6 +246,9 @@ CdfsFCBInitializeCache(PVCB Vcb, RtlZeroMemory(newCCB, sizeof(CCB)); + FileObject->ReadAccess = TRUE; + FileObject->WriteAccess = FALSE; + FileObject->DeleteAccess = FALSE; FileObject->SectionObjectPointer = &Fcb->SectionObjectPointers; FileObject->FsContext = Fcb; FileObject->FsContext2 = newCCB; diff --git a/reactos/drivers/filesystems/cdfs/fsctl.c b/reactos/drivers/filesystems/cdfs/fsctl.c index 01ecd9ca947..c7c6ac0c914 100644 --- a/reactos/drivers/filesystems/cdfs/fsctl.c +++ b/reactos/drivers/filesystems/cdfs/fsctl.c @@ -385,6 +385,9 @@ CdfsMountVolume(PDEVICE_OBJECT DeviceObject, RtlZeroMemory(Ccb, sizeof(CCB)); + DeviceExt->StreamFileObject->ReadAccess = TRUE; + DeviceExt->StreamFileObject->WriteAccess = FALSE; + DeviceExt->StreamFileObject->DeleteAccess = FALSE; DeviceExt->StreamFileObject->FsContext = Fcb; DeviceExt->StreamFileObject->FsContext2 = Ccb; DeviceExt->StreamFileObject->SectionObjectPointer = &Fcb->SectionObjectPointers;