Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenfastio.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
1.7.6.1
|