From b4e21f0b6f78248963bd8dd17265b240af6ea2d6 Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Fri, 1 May 2015 17:45:16 +0000 Subject: [PATCH] [CDFS] No, FastIo is not possible! svn path=/trunk/; revision=67500 --- reactos/drivers/filesystems/cdfs/cdfs.c | 25 +++++++++++++++++++++++++ reactos/drivers/filesystems/cdfs/cdfs.h | 1 + 2 files changed, 26 insertions(+) diff --git a/reactos/drivers/filesystems/cdfs/cdfs.c b/reactos/drivers/filesystems/cdfs/cdfs.c index 77dc734f9e8..9aa1412981f 100644 --- a/reactos/drivers/filesystems/cdfs/cdfs.c +++ b/reactos/drivers/filesystems/cdfs/cdfs.c @@ -100,6 +100,7 @@ DriverEntry(PDRIVER_OBJECT DriverObject, CdfsDeviceControl; CdfsGlobalData->FastIoDispatch.SizeOfFastIoDispatch = sizeof(FAST_IO_DISPATCH); + CdfsGlobalData->FastIoDispatch.FastIoCheckIfPossible = CdfsFastIoCheckIfPossible; CdfsGlobalData->FastIoDispatch.FastIoRead = CdfsFastIoRead; CdfsGlobalData->FastIoDispatch.FastIoWrite = CdfsFastIoWrite; DriverObject->FastIoDispatch = &CdfsGlobalData->FastIoDispatch; @@ -147,6 +148,30 @@ CdfsReleaseFromLazyWrite(IN PVOID Context) ExReleaseResourceLite(&(Fcb->MainResource)); } +BOOLEAN +NTAPI +CdfsFastIoCheckIfPossible( + _In_ PFILE_OBJECT FileObject, + _In_ PLARGE_INTEGER FileOffset, + _In_ ULONG Length, + _In_ BOOLEAN Wait, + _In_ ULONG LockKey, + _In_ BOOLEAN CheckForReadOperation, + _Out_ PIO_STATUS_BLOCK IoStatus, + _In_ PDEVICE_OBJECT DeviceObject) +{ + /* Deny FastIo */ + UNREFERENCED_PARAMETER(FileObject); + UNREFERENCED_PARAMETER(FileOffset); + UNREFERENCED_PARAMETER(Length); + UNREFERENCED_PARAMETER(Wait); + UNREFERENCED_PARAMETER(LockKey); + UNREFERENCED_PARAMETER(CheckForReadOperation); + UNREFERENCED_PARAMETER(IoStatus); + UNREFERENCED_PARAMETER(DeviceObject); + return FALSE; +} + BOOLEAN NTAPI CdfsFastIoRead( diff --git a/reactos/drivers/filesystems/cdfs/cdfs.h b/reactos/drivers/filesystems/cdfs/cdfs.h index 67ce0f34369..5ece03ab90d 100644 --- a/reactos/drivers/filesystems/cdfs/cdfs.h +++ b/reactos/drivers/filesystems/cdfs/cdfs.h @@ -481,6 +481,7 @@ CdfsAcquireForLazyWrite(IN PVOID Context, VOID NTAPI CdfsReleaseFromLazyWrite(IN PVOID Context); +FAST_IO_CHECK_IF_POSSIBLE CdfsFastIoCheckIfPossible; FAST_IO_READ CdfsFastIoRead; FAST_IO_WRITE CdfsFastIoWrite;