Author: tfaber Date: Fri May 1 13:46:08 2015 New Revision: 67495
URL: http://svn.reactos.org/svn/reactos?rev=67495&view=rev Log: [BLUE] - FastIoDispatch is not optional for file system drivers!
Modified: trunk/reactos/drivers/setup/blue/blue.c
Modified: trunk/reactos/drivers/setup/blue/blue.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/setup/blue/blue.c?r... ============================================================================== --- trunk/reactos/drivers/setup/blue/blue.c [iso-8859-1] (original) +++ trunk/reactos/drivers/setup/blue/blue.c [iso-8859-1] Fri May 1 13:46:08 2015 @@ -88,6 +88,8 @@ 0xFF, 0xFF, 0xFF };
+static FAST_IO_DISPATCH ScrFastIoDispatch; + /* FUNCTIONS **************************************************************/
static VOID FASTCALL @@ -818,6 +820,55 @@ return (Status); }
+static FAST_IO_READ ScrFastIoRead; +static +BOOLEAN +NTAPI +ScrFastIoRead( + _In_ PFILE_OBJECT FileObject, + _In_ PLARGE_INTEGER FileOffset, + _In_ ULONG Length, + _In_ BOOLEAN Wait, + _In_ ULONG LockKey, + _Out_ PVOID Buffer, + _Out_ PIO_STATUS_BLOCK IoStatus, + _In_ PDEVICE_OBJECT DeviceObject) +{ + DBG_UNREFERENCED_PARAMETER(FileObject); + DBG_UNREFERENCED_PARAMETER(FileOffset); + DBG_UNREFERENCED_PARAMETER(Length); + DBG_UNREFERENCED_PARAMETER(Wait); + DBG_UNREFERENCED_PARAMETER(LockKey); + DBG_UNREFERENCED_PARAMETER(Buffer); + DBG_UNREFERENCED_PARAMETER(IoStatus); + DBG_UNREFERENCED_PARAMETER(DeviceObject); + return FALSE; +} + +static FAST_IO_WRITE ScrFastIoWrite; +static +BOOLEAN +NTAPI +ScrFastIoWrite( + _In_ PFILE_OBJECT FileObject, + _In_ PLARGE_INTEGER FileOffset, + _In_ ULONG Length, + _In_ BOOLEAN Wait, + _In_ ULONG LockKey, + _In_ PVOID Buffer, + _Out_ PIO_STATUS_BLOCK IoStatus, + _In_ PDEVICE_OBJECT DeviceObject) +{ + DBG_UNREFERENCED_PARAMETER(FileObject); + DBG_UNREFERENCED_PARAMETER(FileOffset); + DBG_UNREFERENCED_PARAMETER(Length); + DBG_UNREFERENCED_PARAMETER(Wait); + DBG_UNREFERENCED_PARAMETER(LockKey); + DBG_UNREFERENCED_PARAMETER(Buffer); + DBG_UNREFERENCED_PARAMETER(IoStatus); + DBG_UNREFERENCED_PARAMETER(DeviceObject); + return FALSE; +}
/* * Module entry point @@ -837,6 +888,10 @@ DriverObject->MajorFunction[IRP_MJ_READ] = ScrDispatch; DriverObject->MajorFunction[IRP_MJ_WRITE] = ScrWrite; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL ] = ScrIoControl; + + ScrFastIoDispatch.FastIoRead = ScrFastIoRead; + ScrFastIoDispatch.FastIoWrite = ScrFastIoWrite; + DriverObject->FastIoDispatch = &ScrFastIoDispatch;
Status = IoCreateDevice (DriverObject, sizeof(DEVICE_EXTENSION),