ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

fastio.c
Go to the documentation of this file.
00001 /*
00002  * PROJECT:         ReactOS FAT file system driver
00003  * LICENSE:         GNU GPLv3 as published by the Free Software Foundation
00004  * FILE:            drivers/filesystems/fastfat/fastio.c
00005  * PURPOSE:         Fast IO routines
00006  * PROGRAMMERS:     Herve Poussineau (hpoussin@reactos.org)
00007  */
00008 
00009 /* INCLUDES *****************************************************************/
00010 
00011 #define NDEBUG
00012 #include "fastfat.h"
00013 
00014 /* FUNCTIONS ****************************************************************/
00015 
00016 BOOLEAN
00017 NTAPI
00018 FatFastIoCheckIfPossible(IN PFILE_OBJECT FileObject,
00019                           IN PLARGE_INTEGER FileOffset,
00020                           IN ULONG Lenght,
00021                           IN BOOLEAN Wait,
00022                           IN ULONG LockKey,
00023                           IN BOOLEAN CheckForReadOperation,
00024                           OUT PIO_STATUS_BLOCK IoStatus,
00025                           IN PDEVICE_OBJECT DeviceObject)
00026 {
00027     /* Prevent all Fast I/O requests */
00028     DPRINT("FatFastIoCheckIfPossible(): returning FALSE.\n");
00029     return FALSE;
00030 }
00031 
00032 BOOLEAN
00033 NTAPI
00034 FatFastIoRead(IN PFILE_OBJECT FileObject,
00035                IN PLARGE_INTEGER FileOffset,
00036                IN ULONG Length,
00037                IN BOOLEAN Wait,
00038                IN ULONG LockKey,
00039                OUT PVOID Buffer,
00040                OUT PIO_STATUS_BLOCK IoStatus,
00041                IN PDEVICE_OBJECT DeviceObject)
00042 {
00043     DPRINT("FatFastIoRead()\n");
00044     return FALSE;
00045 }
00046 
00047 BOOLEAN
00048 NTAPI
00049 FatFastIoWrite(IN PFILE_OBJECT FileObject,
00050                 IN PLARGE_INTEGER FileOffset,
00051                 IN ULONG Length,
00052                 IN BOOLEAN Wait,
00053                 IN ULONG LockKey,
00054                 OUT PVOID Buffer,
00055                 OUT PIO_STATUS_BLOCK IoStatus,
00056                 IN PDEVICE_OBJECT DeviceObject)
00057 {
00058     DPRINT("FatFastIoWrite()\n");
00059     return FALSE;
00060 }
00061 
00062 BOOLEAN
00063 NTAPI
00064 FatFastIoQueryBasicInfo(IN PFILE_OBJECT FileObject,
00065                          IN BOOLEAN Wait,
00066                          OUT PFILE_BASIC_INFORMATION Buffer,
00067                          OUT PIO_STATUS_BLOCK IoStatus,
00068                          IN PDEVICE_OBJECT DeviceObject)
00069 {
00070     DPRINT("FatFastIoQueryBasicInfo()\n");
00071     return FALSE;
00072 }
00073 
00074 BOOLEAN
00075 NTAPI
00076 FatFastIoQueryStandardInfo(IN PFILE_OBJECT FileObject,
00077                             IN BOOLEAN Wait,
00078                             OUT PFILE_STANDARD_INFORMATION Buffer,
00079                             OUT PIO_STATUS_BLOCK IoStatus,
00080                             IN PDEVICE_OBJECT DeviceObject)
00081 {
00082     DPRINT("FatFastIoQueryStandardInfo\n");
00083     return FALSE;
00084 }
00085 
00086 BOOLEAN
00087 NTAPI
00088 FatFastIoLock(IN PFILE_OBJECT FileObject,
00089                IN PLARGE_INTEGER FileOffset,
00090                IN PLARGE_INTEGER Length,
00091                PEPROCESS ProcessId,
00092                ULONG Key,
00093                BOOLEAN FailImmediately,
00094                BOOLEAN ExclusiveLock,
00095                OUT PIO_STATUS_BLOCK IoStatus,
00096                IN PDEVICE_OBJECT DeviceObject)
00097 {
00098     DPRINT("FatFastIoLock\n");
00099     return FALSE;
00100 }
00101 
00102 BOOLEAN
00103 NTAPI
00104 FatFastIoUnlockSingle(IN PFILE_OBJECT FileObject,
00105                        IN PLARGE_INTEGER FileOffset,
00106                        IN PLARGE_INTEGER Length,
00107                        PEPROCESS ProcessId,
00108                        ULONG Key,
00109                        OUT PIO_STATUS_BLOCK IoStatus,
00110                        IN PDEVICE_OBJECT DeviceObject)
00111 {
00112     DPRINT("FatFastIoUnlockSingle\n");
00113     return FALSE;
00114 }
00115 
00116 BOOLEAN
00117 NTAPI
00118 FatFastIoUnlockAll(IN PFILE_OBJECT FileObject,
00119                     PEPROCESS ProcessId,
00120                     OUT PIO_STATUS_BLOCK IoStatus,
00121                     IN PDEVICE_OBJECT DeviceObject)
00122 {
00123     DPRINT("FatFastIoUnlockAll\n");
00124     return FALSE;
00125 }
00126 
00127 BOOLEAN
00128 NTAPI
00129 FatFastIoUnlockAllByKey(IN PFILE_OBJECT FileObject,
00130                          PVOID ProcessId,
00131                          ULONG Key,
00132                          OUT PIO_STATUS_BLOCK IoStatus,
00133                          IN PDEVICE_OBJECT DeviceObject)
00134 {
00135     DPRINT("FatFastIoUnlockAllByKey\n");
00136     return FALSE;
00137 }
00138 
00139 BOOLEAN
00140 NTAPI
00141 FatFastIoQueryNetworkOpenInfo(IN PFILE_OBJECT FileObject,
00142                                IN BOOLEAN Wait,
00143                                OUT PFILE_NETWORK_OPEN_INFORMATION Buffer,
00144                                OUT PIO_STATUS_BLOCK IoStatus,
00145                                IN PDEVICE_OBJECT DeviceObject)
00146 {
00147     DPRINT("FatFastIoQueryNetworkOpenInfo\n");
00148     return FALSE;
00149 }
00150 
00151 BOOLEAN
00152 NTAPI
00153 FatMdlRead(IN PFILE_OBJECT FileObject,
00154             IN PLARGE_INTEGER FileOffset,
00155             IN ULONG Length,
00156             IN ULONG LockKey,
00157             OUT PMDL* MdlChain,
00158             OUT PIO_STATUS_BLOCK IoStatus,
00159             IN PDEVICE_OBJECT DeviceObject)
00160 {
00161     DPRINT("FatMdlRead\n");
00162     return FALSE;
00163 }
00164 
00165 BOOLEAN
00166 NTAPI
00167 FatMdlReadComplete(IN PFILE_OBJECT FileObject,
00168                     IN PMDL MdlChain,
00169                     IN PDEVICE_OBJECT DeviceObject)
00170 {
00171     DPRINT("FatMdlReadComplete\n");
00172     return FALSE;
00173 }
00174 
00175 BOOLEAN
00176 NTAPI
00177 FatPrepareMdlWrite(IN PFILE_OBJECT FileObject,
00178                     IN PLARGE_INTEGER FileOffset,
00179                     IN ULONG Length,
00180                     IN ULONG LockKey,
00181                     OUT PMDL* MdlChain,
00182                     OUT PIO_STATUS_BLOCK IoStatus,
00183                     IN PDEVICE_OBJECT DeviceObject)
00184 {
00185     DPRINT("FatPrepareMdlWrite\n");
00186     return FALSE;
00187 }
00188 
00189 BOOLEAN
00190 NTAPI
00191 FatMdlWriteComplete(IN PFILE_OBJECT FileObject,
00192                      IN PLARGE_INTEGER FileOffset,
00193                      IN PMDL MdlChain,
00194                      IN PDEVICE_OBJECT DeviceObject)
00195 {
00196     DPRINT("FatMdlWriteComplete\n");
00197     return FALSE;
00198 }
00199 
00200 NTSTATUS
00201 NTAPI
00202 FatAcquireForCcFlush(IN PFILE_OBJECT FileObject,
00203                       IN PDEVICE_OBJECT DeviceObject)
00204 {
00205     DPRINT("FatAcquireForCcFlush\n");
00206     return STATUS_SUCCESS;
00207 }
00208 
00209 NTSTATUS
00210 NTAPI
00211 FatReleaseForCcFlush(IN PFILE_OBJECT FileObject,
00212                       IN PDEVICE_OBJECT DeviceObject)
00213 {
00214     DPRINT("FatReleaseForCcFlush\n");
00215     return STATUS_SUCCESS;
00216 }
00217 
00218 BOOLEAN
00219 NTAPI
00220 FatAcquireForLazyWrite(IN PVOID Context,
00221                         IN BOOLEAN Wait)
00222 {
00223     DPRINT("FatAcquireForLazyWrite()\n");
00224     return FALSE;
00225 }
00226 
00227 VOID
00228 NTAPI
00229 FatReleaseFromLazyWrite(IN PVOID Context)
00230 {
00231     DPRINT("FatReleaseFromLazyWrite()\n");
00232 }
00233 
00234 BOOLEAN
00235 NTAPI
00236 FatAcquireForReadAhead(IN PVOID Context,
00237                         IN BOOLEAN Wait)
00238 {
00239     DPRINT("FatAcquireForReadAhead()\n");
00240     return FALSE;
00241 }
00242 
00243 VOID
00244 NTAPI
00245 FatReleaseFromReadAhead(IN PVOID Context)
00246 {
00247     DPRINT("FatReleaseFromReadAhead()\n");
00248 }
00249 
00250 BOOLEAN
00251 NTAPI
00252 FatNoopAcquire(IN PVOID Context,
00253                IN BOOLEAN Wait)
00254 {
00255     return TRUE;
00256 }
00257 
00258 VOID
00259 NTAPI
00260 FatNoopRelease(IN PVOID Context)
00261 {
00262 }
00263 
00264 
00265 VOID
00266 FatInitFastIoRoutines(PFAST_IO_DISPATCH FastIoDispatch)
00267 {
00268     /* Set Fast I/O dispatcher callbacks */
00269     FastIoDispatch->SizeOfFastIoDispatch = sizeof(FAST_IO_DISPATCH);
00270     FastIoDispatch->FastIoCheckIfPossible = FatFastIoCheckIfPossible;
00271     FastIoDispatch->FastIoRead = FatFastIoRead;
00272     FastIoDispatch->FastIoWrite = FatFastIoWrite;
00273     FastIoDispatch->FastIoQueryBasicInfo = FatFastIoQueryBasicInfo;
00274     FastIoDispatch->FastIoQueryStandardInfo = FatFastIoQueryStandardInfo;
00275     FastIoDispatch->FastIoLock = FatFastIoLock;
00276     FastIoDispatch->FastIoUnlockSingle = FatFastIoUnlockSingle;
00277     FastIoDispatch->FastIoUnlockAll = FatFastIoUnlockAll;
00278     FastIoDispatch->FastIoUnlockAllByKey = FatFastIoUnlockAllByKey;
00279     FastIoDispatch->FastIoQueryNetworkOpenInfo = FatFastIoQueryNetworkOpenInfo;
00280     FastIoDispatch->MdlRead = FatMdlRead;
00281     FastIoDispatch->MdlReadComplete = FatMdlReadComplete;
00282     FastIoDispatch->PrepareMdlWrite = FatPrepareMdlWrite;
00283     FastIoDispatch->MdlWriteComplete = FatMdlWriteComplete;
00284     FastIoDispatch->AcquireForCcFlush = FatAcquireForCcFlush;
00285     FastIoDispatch->ReleaseForCcFlush = FatReleaseForCcFlush;
00286 }
00287 
00288 /* EOF */

Generated on Fri May 25 2012 04:25:51 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.