No, FastIo is not possible!

svn path=/trunk/; revision=67500
This commit is contained in:
Pierre Schweitzer 2015-05-01 17:45:16 +00:00
parent e295fdb99b
commit b4e21f0b6f
2 changed files with 26 additions and 0 deletions

View file

@ -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(

View file

@ -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;