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

ccfuncs.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 doxygen 1.7.6.1

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