Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenccfuncs.h
Go to the documentation of this file.
00001 $if (_NTIFS_) 00002 /* Common Cache Functions */ 00003 00004 #define CcIsFileCached(FO) ( \ 00005 ((FO)->SectionObjectPointer != NULL) && \ 00006 (((PSECTION_OBJECT_POINTERS)(FO)->SectionObjectPointer)->SharedCacheMap != NULL) \ 00007 ) 00008 00009 extern ULONG CcFastMdlReadWait; 00010 00011 #if (NTDDI_VERSION >= NTDDI_WIN2K) 00012 00013 NTKERNELAPI 00014 VOID 00015 NTAPI 00016 CcInitializeCacheMap( 00017 _In_ PFILE_OBJECT FileObject, 00018 _In_ PCC_FILE_SIZES FileSizes, 00019 _In_ BOOLEAN PinAccess, 00020 _In_ PCACHE_MANAGER_CALLBACKS Callbacks, 00021 _In_ PVOID LazyWriteContext); 00022 00023 NTKERNELAPI 00024 BOOLEAN 00025 NTAPI 00026 CcUninitializeCacheMap( 00027 _In_ PFILE_OBJECT FileObject, 00028 _In_opt_ PLARGE_INTEGER TruncateSize, 00029 _In_opt_ PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent); 00030 00031 NTKERNELAPI 00032 VOID 00033 NTAPI 00034 CcSetFileSizes( 00035 IN PFILE_OBJECT FileObject, 00036 IN PCC_FILE_SIZES FileSizes); 00037 00038 NTKERNELAPI 00039 VOID 00040 NTAPI 00041 CcSetDirtyPageThreshold( 00042 _In_ PFILE_OBJECT FileObject, 00043 _In_ ULONG DirtyPageThreshold); 00044 00045 NTKERNELAPI 00046 VOID 00047 NTAPI 00048 CcFlushCache( 00049 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer, 00050 _In_opt_ PLARGE_INTEGER FileOffset, 00051 _In_ ULONG Length, 00052 _Out_opt_ PIO_STATUS_BLOCK IoStatus); 00053 00054 NTKERNELAPI 00055 LARGE_INTEGER 00056 NTAPI 00057 CcGetFlushedValidData( 00058 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer, 00059 _In_ BOOLEAN BcbListHeld); 00060 00061 NTKERNELAPI 00062 BOOLEAN 00063 NTAPI 00064 CcZeroData( 00065 _In_ PFILE_OBJECT FileObject, 00066 _In_ PLARGE_INTEGER StartOffset, 00067 _In_ PLARGE_INTEGER EndOffset, 00068 _In_ BOOLEAN Wait); 00069 00070 NTKERNELAPI 00071 PVOID 00072 NTAPI 00073 CcRemapBcb( 00074 _In_ PVOID Bcb); 00075 00076 NTKERNELAPI 00077 VOID 00078 NTAPI 00079 CcRepinBcb( 00080 _In_ PVOID Bcb); 00081 00082 NTKERNELAPI 00083 VOID 00084 NTAPI 00085 CcUnpinRepinnedBcb( 00086 _In_ PVOID Bcb, 00087 _In_ BOOLEAN WriteThrough, 00088 _Out_ PIO_STATUS_BLOCK IoStatus); 00089 00090 NTKERNELAPI 00091 PFILE_OBJECT 00092 NTAPI 00093 CcGetFileObjectFromSectionPtrs( 00094 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer); 00095 00096 NTKERNELAPI 00097 PFILE_OBJECT 00098 NTAPI 00099 CcGetFileObjectFromBcb( 00100 _In_ PVOID Bcb); 00101 00102 NTKERNELAPI 00103 BOOLEAN 00104 NTAPI 00105 CcCanIWrite( 00106 _In_opt_ PFILE_OBJECT FileObject, 00107 _In_ ULONG BytesToWrite, 00108 _In_ BOOLEAN Wait, 00109 _In_ BOOLEAN Retrying); 00110 00111 NTKERNELAPI 00112 VOID 00113 NTAPI 00114 CcDeferWrite( 00115 _In_ PFILE_OBJECT FileObject, 00116 _In_ PCC_POST_DEFERRED_WRITE PostRoutine, 00117 _In_ PVOID Context1, 00118 _In_ PVOID Context2, 00119 _In_ ULONG BytesToWrite, 00120 _In_ BOOLEAN Retrying); 00121 00122 NTKERNELAPI 00123 BOOLEAN 00124 NTAPI 00125 CcCopyRead( 00126 _In_ PFILE_OBJECT FileObject, 00127 _In_ PLARGE_INTEGER FileOffset, 00128 _In_ ULONG Length, 00129 _In_ BOOLEAN Wait, 00130 _Out_writes_bytes_(Length) PVOID Buffer, 00131 _Out_ PIO_STATUS_BLOCK IoStatus); 00132 00133 NTKERNELAPI 00134 VOID 00135 NTAPI 00136 CcFastCopyRead( 00137 _In_ PFILE_OBJECT FileObject, 00138 _In_ ULONG FileOffset, 00139 _In_ ULONG Length, 00140 _In_ ULONG PageCount, 00141 _Out_writes_bytes_(Length) PVOID Buffer, 00142 _Out_ PIO_STATUS_BLOCK IoStatus); 00143 00144 NTKERNELAPI 00145 BOOLEAN 00146 NTAPI 00147 CcCopyWrite( 00148 _In_ PFILE_OBJECT FileObject, 00149 _In_ PLARGE_INTEGER FileOffset, 00150 _In_ ULONG Length, 00151 _In_ BOOLEAN Wait, 00152 _In_reads_bytes_(Length) PVOID Buffer); 00153 00154 NTKERNELAPI 00155 VOID 00156 NTAPI 00157 CcFastCopyWrite( 00158 _In_ PFILE_OBJECT FileObject, 00159 _In_ ULONG FileOffset, 00160 _In_ ULONG Length, 00161 _In_reads_bytes_(Length) PVOID Buffer); 00162 00163 NTKERNELAPI 00164 VOID 00165 NTAPI 00166 CcMdlRead( 00167 _In_ PFILE_OBJECT FileObject, 00168 _In_ PLARGE_INTEGER FileOffset, 00169 _In_ ULONG Length, 00170 _Out_ PMDL *MdlChain, 00171 _Out_ PIO_STATUS_BLOCK IoStatus); 00172 00173 NTKERNELAPI 00174 VOID 00175 NTAPI 00176 CcMdlReadComplete( 00177 _In_ PFILE_OBJECT FileObject, 00178 _In_ PMDL MdlChain); 00179 00180 NTKERNELAPI 00181 VOID 00182 NTAPI 00183 CcPrepareMdlWrite( 00184 _In_ PFILE_OBJECT FileObject, 00185 _In_ PLARGE_INTEGER FileOffset, 00186 _In_ ULONG Length, 00187 _Out_ PMDL *MdlChain, 00188 _Out_ PIO_STATUS_BLOCK IoStatus); 00189 00190 NTKERNELAPI 00191 VOID 00192 NTAPI 00193 CcMdlWriteComplete( 00194 _In_ PFILE_OBJECT FileObject, 00195 _In_ PLARGE_INTEGER FileOffset, 00196 _In_ PMDL MdlChain); 00197 00198 NTKERNELAPI 00199 VOID 00200 NTAPI 00201 CcScheduleReadAhead( 00202 _In_ PFILE_OBJECT FileObject, 00203 _In_ PLARGE_INTEGER FileOffset, 00204 _In_ ULONG Length); 00205 00206 NTKERNELAPI 00207 NTSTATUS 00208 NTAPI 00209 CcWaitForCurrentLazyWriterActivity(VOID); 00210 00211 NTKERNELAPI 00212 VOID 00213 NTAPI 00214 CcSetReadAheadGranularity( 00215 _In_ PFILE_OBJECT FileObject, 00216 _In_ ULONG Granularity); 00217 00218 NTKERNELAPI 00219 BOOLEAN 00220 NTAPI 00221 CcPinRead( 00222 _In_ PFILE_OBJECT FileObject, 00223 _In_ PLARGE_INTEGER FileOffset, 00224 _In_ ULONG Length, 00225 _In_ ULONG Flags, 00226 _Outptr_ PVOID *Bcb, 00227 _Outptr_result_bytebuffer_(Length) PVOID *Buffer); 00228 00229 NTKERNELAPI 00230 BOOLEAN 00231 NTAPI 00232 CcPinMappedData( 00233 _In_ PFILE_OBJECT FileObject, 00234 _In_ PLARGE_INTEGER FileOffset, 00235 _In_ ULONG Length, 00236 _In_ ULONG Flags, 00237 _Inout_ PVOID *Bcb); 00238 00239 NTKERNELAPI 00240 BOOLEAN 00241 NTAPI 00242 CcPreparePinWrite( 00243 _In_ PFILE_OBJECT FileObject, 00244 _In_ PLARGE_INTEGER FileOffset, 00245 _In_ ULONG Length, 00246 _In_ BOOLEAN Zero, 00247 _In_ ULONG Flags, 00248 _Outptr_ PVOID *Bcb, 00249 _Outptr_result_bytebuffer_(Length) PVOID *Buffer); 00250 00251 NTKERNELAPI 00252 VOID 00253 NTAPI 00254 CcSetDirtyPinnedData( 00255 _In_ PVOID BcbVoid, 00256 _In_opt_ PLARGE_INTEGER Lsn); 00257 00258 NTKERNELAPI 00259 VOID 00260 NTAPI 00261 CcUnpinData( 00262 _In_ PVOID Bcb); 00263 00264 NTKERNELAPI 00265 VOID 00266 NTAPI 00267 CcSetBcbOwnerPointer( 00268 _In_ PVOID Bcb, 00269 _In_ PVOID OwnerPointer); 00270 00271 NTKERNELAPI 00272 VOID 00273 NTAPI 00274 CcUnpinDataForThread( 00275 _In_ PVOID Bcb, 00276 _In_ ERESOURCE_THREAD ResourceThreadId); 00277 00278 NTKERNELAPI 00279 VOID 00280 NTAPI 00281 CcSetAdditionalCacheAttributes( 00282 _In_ PFILE_OBJECT FileObject, 00283 _In_ BOOLEAN DisableReadAhead, 00284 _In_ BOOLEAN DisableWriteBehind); 00285 00286 NTKERNELAPI 00287 BOOLEAN 00288 NTAPI 00289 CcIsThereDirtyData( 00290 _In_ PVPB Vpb); 00291 00292 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */ 00293 00294 #if (NTDDI_VERSION >= NTDDI_WINXP) 00295 00296 NTKERNELAPI 00297 VOID 00298 NTAPI 00299 CcMdlWriteAbort( 00300 _In_ PFILE_OBJECT FileObject, 00301 _In_ PMDL MdlChain); 00302 00303 NTKERNELAPI 00304 VOID 00305 NTAPI 00306 CcSetLogHandleForFile( 00307 _In_ PFILE_OBJECT FileObject, 00308 _In_ PVOID LogHandle, 00309 _In_ PFLUSH_TO_LSN FlushToLsnRoutine); 00310 00311 NTKERNELAPI 00312 LARGE_INTEGER 00313 NTAPI 00314 CcGetDirtyPages( 00315 _In_ PVOID LogHandle, 00316 _In_ PDIRTY_PAGE_ROUTINE DirtyPageRoutine, 00317 _In_ PVOID Context1, 00318 _In_ PVOID Context2); 00319 00320 #endif 00321 00322 #if (NTDDI_VERSION >= NTDDI_WINXP) 00323 NTKERNELAPI 00324 BOOLEAN 00325 NTAPI 00326 CcMapData( 00327 _In_ PFILE_OBJECT FileObject, 00328 _In_ PLARGE_INTEGER FileOffset, 00329 _In_ ULONG Length, 00330 _In_ ULONG Flags, 00331 _Outptr_ PVOID *Bcb, 00332 _Outptr_result_bytebuffer_(Length) PVOID *Buffer); 00333 #elif (NTDDI_VERSION >= NTDDI_WIN2K) 00334 NTKERNELAPI 00335 BOOLEAN 00336 NTAPI 00337 CcMapData( 00338 _In_ PFILE_OBJECT FileObject, 00339 _In_ PLARGE_INTEGER FileOffset, 00340 _In_ ULONG Length, 00341 _In_ BOOLEAN Wait, 00342 _Outptr_ PVOID *Bcb, 00343 _Outptr_result_bytebuffer_(Length) PVOID *Buffer); 00344 #endif 00345 00346 #if (NTDDI_VERSION >= NTDDI_VISTA) 00347 00348 NTKERNELAPI 00349 NTSTATUS 00350 NTAPI 00351 CcSetFileSizesEx( 00352 _In_ PFILE_OBJECT FileObject, 00353 _In_ PCC_FILE_SIZES FileSizes); 00354 00355 NTKERNELAPI 00356 PFILE_OBJECT 00357 NTAPI 00358 CcGetFileObjectFromSectionPtrsRef( 00359 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer); 00360 00361 NTKERNELAPI 00362 VOID 00363 NTAPI 00364 CcSetParallelFlushFile( 00365 _In_ PFILE_OBJECT FileObject, 00366 _In_ BOOLEAN EnableParallelFlush); 00367 00368 NTKERNELAPI 00369 BOOLEAN 00370 CcIsThereDirtyDataEx( 00371 _In_ PVPB Vpb, 00372 _In_opt_ PULONG NumberOfDirtyPages); 00373 00374 #endif 00375 00376 #if (NTDDI_VERSION >= NTDDI_WIN7) 00377 NTKERNELAPI 00378 VOID 00379 NTAPI 00380 CcCoherencyFlushAndPurgeCache( 00381 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer, 00382 _In_opt_ PLARGE_INTEGER FileOffset, 00383 _In_ ULONG Length, 00384 _Out_ PIO_STATUS_BLOCK IoStatus, 00385 _In_opt_ ULONG Flags); 00386 #endif 00387 00388 #define CcGetFileSizePointer(FO) ( \ 00389 ((PLARGE_INTEGER)((FO)->SectionObjectPointer->SharedCacheMap) + 1) \ 00390 ) 00391 00392 #if (NTDDI_VERSION >= NTDDI_VISTA) 00393 NTKERNELAPI 00394 BOOLEAN 00395 NTAPI 00396 CcPurgeCacheSection( 00397 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer, 00398 _In_opt_ PLARGE_INTEGER FileOffset, 00399 _In_ ULONG Length, 00400 _In_ ULONG Flags); 00401 #elif (NTDDI_VERSION >= NTDDI_WIN2K) 00402 NTKERNELAPI 00403 BOOLEAN 00404 NTAPI 00405 CcPurgeCacheSection( 00406 _In_ PSECTION_OBJECT_POINTERS SectionObjectPointer, 00407 _In_opt_ PLARGE_INTEGER FileOffset, 00408 _In_ ULONG Length, 00409 _In_ BOOLEAN UninitializeCacheMaps); 00410 #endif 00411 00412 #if (NTDDI_VERSION >= NTDDI_WIN7) 00413 NTKERNELAPI 00414 BOOLEAN 00415 NTAPI 00416 CcCopyWriteWontFlush( 00417 _In_ PFILE_OBJECT FileObject, 00418 _In_ PLARGE_INTEGER FileOffset, 00419 _In_ ULONG Length); 00420 #else 00421 #define CcCopyWriteWontFlush(FO, FOFF, LEN) ((LEN) <= 0x10000) 00422 #endif 00423 00424 #define CcReadAhead(FO, FOFF, LEN) ( \ 00425 if ((LEN) >= 256) { \ 00426 CcScheduleReadAhead((FO), (FOFF), (LEN)); \ 00427 } \ 00428 ) 00429 $endif (_NTIFS_) Generated on Sat May 26 2012 04:32:14 for ReactOS by
1.7.6.1
|