[BLUE][CDFS]
[reactos.git] / reactos / drivers / filesystems / cdfs / cdfs.c
index 5df4ed5..9faa5a1 100644 (file)
@@ -54,6 +54,8 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
     NTSTATUS Status;
     UNICODE_STRING DeviceName = RTL_CONSTANT_STRING(L"\\Cdfs");
 
+    UNREFERENCED_PARAMETER(RegistryPath);
+
     DPRINT("CDFS 0.0.3\n");
 
     Status = IoCreateDevice(DriverObject,
@@ -97,6 +99,10 @@ DriverEntry(PDRIVER_OBJECT DriverObject,
     DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] =
         CdfsDeviceControl;
 
+    CdfsGlobalData->FastIoDispatch.FastIoRead = CdfsFastIoRead;
+    CdfsGlobalData->FastIoDispatch.FastIoWrite = CdfsFastIoWrite;
+    DriverObject->FastIoDispatch = &CdfsGlobalData->FastIoDispatch;
+
     DriverObject->DriverUnload = NULL;
 
     /* Cache manager */
@@ -139,3 +145,49 @@ CdfsReleaseFromLazyWrite(IN PVOID Context)
 
     ExReleaseResourceLite(&(Fcb->MainResource));
 }
+
+BOOLEAN
+NTAPI
+CdfsFastIoRead(
+    _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;
+}
+
+BOOLEAN
+NTAPI
+CdfsFastIoWrite(
+    _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;
+}