mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 13:56:05 +00:00
Additions to ntifs.h (just for reference)
svn path=/trunk/; revision=119
This commit is contained in:
parent
570be7966c
commit
f5d7376e5a
1 changed files with 209 additions and 0 deletions
|
@ -1,6 +1,215 @@
|
||||||
#ifndef __INCLUDE_DDK_NTIFS_H
|
#ifndef __INCLUDE_DDK_NTIFS_H
|
||||||
#define __INCLUDE_DDK_NTIFS_H
|
#define __INCLUDE_DDK_NTIFS_H
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cache manager interfaces (unused)
|
||||||
|
*/
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
typedef struct _CC_FILE_SIZES
|
||||||
|
{
|
||||||
|
LARGE_INTEGER AllocationSize;
|
||||||
|
LARGE_INTEGER FileSize;
|
||||||
|
LARGE_INTEGER ValidDataLength;
|
||||||
|
} CC_FILE_SIZES, *PCC_FILE_SIZES;
|
||||||
|
|
||||||
|
typedef struct _CACHE_MANAGER_CALLBACKS
|
||||||
|
{
|
||||||
|
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite;
|
||||||
|
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite;
|
||||||
|
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead;
|
||||||
|
PRELEASE_FROM_READ_AHREAD ReleaseFromReadAhead;
|
||||||
|
} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
|
||||||
|
|
||||||
|
VOID CcInitializeCacheMap(PFILE_OBJECT FileObject,
|
||||||
|
PCC_FILE_SIZES FIleSizes,
|
||||||
|
BOOLEAN PinAccess,
|
||||||
|
PCACHE_MANAGER_CALLBACKS CallBacks,
|
||||||
|
PVOID LazyWriterContext);
|
||||||
|
|
||||||
|
BOOLEAN CcCopyRead(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID Buffer,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
VOID CcFastCopyRead(PFILE_OBJECT FileObject,
|
||||||
|
ULONG FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
ULONG PageCount,
|
||||||
|
PVOID Buffer,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
BOOLEAN CcCopyWrite(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID Buffer);
|
||||||
|
|
||||||
|
VOID CcFastCopyWrite(PFILE_OBJECT FileObject,
|
||||||
|
ULONG FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
PVOID Buffer);
|
||||||
|
|
||||||
|
BOOLEAN CcCanIWrite(PFILE_OBJECT FileObject,
|
||||||
|
ULONG BytesToWrite,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
BOOLEAN Retrying);
|
||||||
|
|
||||||
|
typedef VOID (*PCC_DEFERRED_WRITE)(PVOID Context1,
|
||||||
|
PVOID Context2);
|
||||||
|
|
||||||
|
VOID CcDeferWrite(PFILE_OBJECT FileObject,
|
||||||
|
PCC_POST_DEFERRED_WRITE PostRoutine,
|
||||||
|
PVOID Context1,
|
||||||
|
PVOID Context2,
|
||||||
|
ULONG BytesToWrite,
|
||||||
|
BOOLEAN Retrying);
|
||||||
|
|
||||||
|
VOID CcSetReadAheadGranularity(PFILE_OBJECT FileObject,
|
||||||
|
ULONG Granularity);
|
||||||
|
|
||||||
|
VOID CcScheduleReadAhead(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileObject,
|
||||||
|
ULONG Length);
|
||||||
|
|
||||||
|
#define CcReadAhead(FO,FOFF,LEN) { \
|
||||||
|
if ((LEN) >= 256) { \
|
||||||
|
CcScheduleReadAhead((FO),(FOFF),(LEN)); \
|
||||||
|
} \
|
||||||
|
} \
|
||||||
|
|
||||||
|
BOOLEAN CcMapData(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID* Bcb,
|
||||||
|
PVOID* Buffer);
|
||||||
|
|
||||||
|
BOOLEAN CcPinMappedData(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID* Bcb);
|
||||||
|
|
||||||
|
BOOLEAN CcPinRead(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FIleOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID* Bcb,
|
||||||
|
PVOID* Buffer);
|
||||||
|
|
||||||
|
VOID CcSetDirtyPinnedData(PVOID Bcb,
|
||||||
|
PLARGE_INTEGER Lsn);
|
||||||
|
|
||||||
|
BOOLEAN CcPreparePinWrite(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN Zero,
|
||||||
|
BOOLEAN Wait,
|
||||||
|
PVOID* Bcb,
|
||||||
|
PVOID* Buffer);
|
||||||
|
|
||||||
|
VOID CcUnpinData(PVOID Bcb);
|
||||||
|
|
||||||
|
VOID CcUnpinDataForThread(PVOID Bcb,
|
||||||
|
ERESOURCE_THREAD ResourceThreadId);
|
||||||
|
|
||||||
|
VOID CcRepinBcb(PVOID Bcb);
|
||||||
|
|
||||||
|
VOID CcUnpinRepinnedBcb(PVOID Bcb,
|
||||||
|
BOOLEAN WriteThrough,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
PFILE_OBJECT CcGetFileObjectFromBcb(PVOID Bcb);
|
||||||
|
|
||||||
|
VOID CcMdlRead(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
PMDL* MdlChain,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
VOID CcMdlReadComplete(PFILE_OBJECT FileObject,
|
||||||
|
PMDL MdlChain);
|
||||||
|
|
||||||
|
VOID CcPrepareMdlWrite(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
PMDL* MdlChain,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
VOID CcMdlWriteComplete(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
PMDL MdlChain);
|
||||||
|
|
||||||
|
VOID CcFlushCache(PSECTION_OBJECT_POINTERS SectionObjectPointer,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
PIO_STATUS_BLOCK IoStatus);
|
||||||
|
|
||||||
|
typedef struct _CACHE_UNINITIALIZE_EVENT
|
||||||
|
{
|
||||||
|
struct _CACHE_UNINITIALIZE_EVENT* Next;
|
||||||
|
KEVENT Event;
|
||||||
|
} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
|
||||||
|
|
||||||
|
BOOLEAN CcUninitializeCacheMap(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER TruncateSize,
|
||||||
|
PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent);
|
||||||
|
|
||||||
|
VOID CcSetFileSizes(PFILE_OBJECT FileObject,
|
||||||
|
PCC_FILE_SIZES FileSizes);
|
||||||
|
|
||||||
|
BOOLEAN CcPurgeCacheSection(PSECTION_OBJECT_POINTERS SectionObjectPointer,
|
||||||
|
PLARGE_INTEGER FileObject,
|
||||||
|
ULONG Length,
|
||||||
|
BOOLEAN UninitializeCacheMaps);
|
||||||
|
|
||||||
|
VOID CcSetDirtyPageThreshold(PFILE_OBJECT FileObject,
|
||||||
|
ULONG DirtyPageThreshold);
|
||||||
|
|
||||||
|
BOOLEAN CcZeroData(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER StartOffset,
|
||||||
|
PLARGE_INTEGER EndOffset,
|
||||||
|
BOOLEAN Wait);
|
||||||
|
|
||||||
|
PFILE_OBJECT CcGetFileObjectFromSectionPtrs(
|
||||||
|
PSECTION_OBJECT_POINTERS SectionObjectPointer);
|
||||||
|
|
||||||
|
typedef VOID (*PFLUSH_TO_LSN)(PVOID LogHandle, LARGE_INTEGER Lsn);
|
||||||
|
|
||||||
|
VOID CcSetLogHandle(PFILE_OBJECT FIleObject,
|
||||||
|
PVOID LogHandle,
|
||||||
|
PFLUSH_TO_LSN FlushToLsnRoutine);
|
||||||
|
|
||||||
|
VOID CcSetAdditionalCacheAttributes(PFILE_OBJECT FileObject,
|
||||||
|
BOOLEAN DisableReadAhread,
|
||||||
|
BOOLEAN DisableWriteBehind);
|
||||||
|
|
||||||
|
typedef VOID (*PDIRTY_PAGE_ROUTINE)(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER FileOffset,
|
||||||
|
ULONG Length,
|
||||||
|
PLARGE_INTEGER OldestLsn,
|
||||||
|
PLARGE_INTEGER NewestLsn,
|
||||||
|
PVOID Context1,
|
||||||
|
PVOID Context2);
|
||||||
|
|
||||||
|
LARGE_INTEGER CcGetDirtyPages(PVOID LogHandle,
|
||||||
|
PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
|
||||||
|
PVOID Context1,
|
||||||
|
PVOID Context2);
|
||||||
|
|
||||||
|
BOOLEAN CcIsThereDirtyData(PVPB Vpb);
|
||||||
|
|
||||||
|
LARGE_INTEGER CcGetLsnForFileObject(PFILE_OBJECT FileObject,
|
||||||
|
PLARGE_INTEGER OldestLsn);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue