reactos/drivers/filesystems/fastfat_new/fastio.c
Amine Khaldi 527f2f9057 [SHELL/EXPERIMENTS]
* Create a branch for some evul shell experiments.

svn path=/branches/shell-experiments/; revision=61927
2014-02-02 19:37:27 +00:00

288 lines
7.6 KiB
C

/*
* PROJECT: ReactOS FAT file system driver
* LICENSE: GNU GPLv3 as published by the Free Software Foundation
* FILE: drivers/filesystems/fastfat/fastio.c
* PURPOSE: Fast IO routines
* PROGRAMMERS: Herve Poussineau (hpoussin@reactos.org)
*/
/* INCLUDES *****************************************************************/
#define NDEBUG
#include "fastfat.h"
/* FUNCTIONS ****************************************************************/
BOOLEAN
NTAPI
FatFastIoCheckIfPossible(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)
{
/* Prevent all Fast I/O requests */
DPRINT("FatFastIoCheckIfPossible(): returning FALSE.\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoRead(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)
{
DPRINT("FatFastIoRead()\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoWrite(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)
{
DPRINT("FatFastIoWrite()\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoQueryBasicInfo(IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_BASIC_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoQueryBasicInfo()\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoQueryStandardInfo(IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_STANDARD_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoQueryStandardInfo\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoLock(IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
PEPROCESS ProcessId,
ULONG Key,
BOOLEAN FailImmediately,
BOOLEAN ExclusiveLock,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoLock\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoUnlockSingle(IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PLARGE_INTEGER Length,
PEPROCESS ProcessId,
ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoUnlockSingle\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoUnlockAll(IN PFILE_OBJECT FileObject,
PEPROCESS ProcessId,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoUnlockAll\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoUnlockAllByKey(IN PFILE_OBJECT FileObject,
PVOID ProcessId,
ULONG Key,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoUnlockAllByKey\n");
return FALSE;
}
BOOLEAN
NTAPI
FatFastIoQueryNetworkOpenInfo(IN PFILE_OBJECT FileObject,
IN BOOLEAN Wait,
OUT PFILE_NETWORK_OPEN_INFORMATION Buffer,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatFastIoQueryNetworkOpenInfo\n");
return FALSE;
}
BOOLEAN
NTAPI
FatMdlRead(IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL* MdlChain,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatMdlRead\n");
return FALSE;
}
BOOLEAN
NTAPI
FatMdlReadComplete(IN PFILE_OBJECT FileObject,
IN PMDL MdlChain,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatMdlReadComplete\n");
return FALSE;
}
BOOLEAN
NTAPI
FatPrepareMdlWrite(IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN ULONG LockKey,
OUT PMDL* MdlChain,
OUT PIO_STATUS_BLOCK IoStatus,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatPrepareMdlWrite\n");
return FALSE;
}
BOOLEAN
NTAPI
FatMdlWriteComplete(IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatMdlWriteComplete\n");
return FALSE;
}
NTSTATUS
NTAPI
FatAcquireForCcFlush(IN PFILE_OBJECT FileObject,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatAcquireForCcFlush\n");
return STATUS_SUCCESS;
}
NTSTATUS
NTAPI
FatReleaseForCcFlush(IN PFILE_OBJECT FileObject,
IN PDEVICE_OBJECT DeviceObject)
{
DPRINT("FatReleaseForCcFlush\n");
return STATUS_SUCCESS;
}
BOOLEAN
NTAPI
FatAcquireForLazyWrite(IN PVOID Context,
IN BOOLEAN Wait)
{
DPRINT("FatAcquireForLazyWrite()\n");
return FALSE;
}
VOID
NTAPI
FatReleaseFromLazyWrite(IN PVOID Context)
{
DPRINT("FatReleaseFromLazyWrite()\n");
}
BOOLEAN
NTAPI
FatAcquireForReadAhead(IN PVOID Context,
IN BOOLEAN Wait)
{
DPRINT("FatAcquireForReadAhead()\n");
return FALSE;
}
VOID
NTAPI
FatReleaseFromReadAhead(IN PVOID Context)
{
DPRINT("FatReleaseFromReadAhead()\n");
}
BOOLEAN
NTAPI
FatNoopAcquire(IN PVOID Context,
IN BOOLEAN Wait)
{
return TRUE;
}
VOID
NTAPI
FatNoopRelease(IN PVOID Context)
{
}
VOID
FatInitFastIoRoutines(PFAST_IO_DISPATCH FastIoDispatch)
{
/* Set Fast I/O dispatcher callbacks */
FastIoDispatch->SizeOfFastIoDispatch = sizeof(FAST_IO_DISPATCH);
FastIoDispatch->FastIoCheckIfPossible = FatFastIoCheckIfPossible;
FastIoDispatch->FastIoRead = FatFastIoRead;
FastIoDispatch->FastIoWrite = FatFastIoWrite;
FastIoDispatch->FastIoQueryBasicInfo = FatFastIoQueryBasicInfo;
FastIoDispatch->FastIoQueryStandardInfo = FatFastIoQueryStandardInfo;
FastIoDispatch->FastIoLock = FatFastIoLock;
FastIoDispatch->FastIoUnlockSingle = FatFastIoUnlockSingle;
FastIoDispatch->FastIoUnlockAll = FatFastIoUnlockAll;
FastIoDispatch->FastIoUnlockAllByKey = FatFastIoUnlockAllByKey;
FastIoDispatch->FastIoQueryNetworkOpenInfo = FatFastIoQueryNetworkOpenInfo;
FastIoDispatch->MdlRead = FatMdlRead;
FastIoDispatch->MdlReadComplete = FatMdlReadComplete;
FastIoDispatch->PrepareMdlWrite = FatPrepareMdlWrite;
FastIoDispatch->MdlWriteComplete = FatMdlWriteComplete;
FastIoDispatch->AcquireForCcFlush = FatAcquireForCcFlush;
FastIoDispatch->ReleaseForCcFlush = FatReleaseForCcFlush;
}
/* EOF */