mirror of
https://github.com/reactos/reactos.git
synced 2025-05-02 20:30:33 +00:00
[NTOSKRNL] Implement CcSetAdditionalCacheAttributes()
This commit is contained in:
parent
f8c3f0c9c4
commit
df5839db5b
2 changed files with 32 additions and 3 deletions
|
@ -164,7 +164,7 @@ CcScheduleReadAhead (
|
|||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
|
@ -174,10 +174,35 @@ CcSetAdditionalCacheAttributes (
|
|||
IN BOOLEAN DisableWriteBehind
|
||||
)
|
||||
{
|
||||
KIRQL OldIrql;
|
||||
PROS_SHARED_CACHE_MAP SharedCacheMap;
|
||||
|
||||
CCTRACE(CC_API_DEBUG, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n",
|
||||
FileObject, DisableReadAhead, DisableWriteBehind);
|
||||
|
||||
UNIMPLEMENTED;
|
||||
SharedCacheMap = FileObject->SectionObjectPointer->SharedCacheMap;
|
||||
|
||||
OldIrql = KeAcquireQueuedSpinLock(LockQueueMasterLock);
|
||||
|
||||
if (DisableReadAhead)
|
||||
{
|
||||
SetFlag(SharedCacheMap->Flags, READAHEAD_DISABLED);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClearFlag(SharedCacheMap->Flags, READAHEAD_DISABLED);
|
||||
}
|
||||
|
||||
if (DisableWriteBehind)
|
||||
{
|
||||
/* FIXME: also set flag 0x200 */
|
||||
SetFlag(SharedCacheMap->Flags, WRITEBEHIND_DISABLED);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClearFlag(SharedCacheMap->Flags, WRITEBEHIND_DISABLED);
|
||||
}
|
||||
KeReleaseQueuedSpinLock(LockQueueMasterLock, OldIrql);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -234,7 +259,7 @@ CcSetDirtyPageThreshold (
|
|||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
* @implemented
|
||||
*/
|
||||
VOID
|
||||
NTAPI
|
||||
|
|
|
@ -163,6 +163,7 @@ typedef struct _ROS_SHARED_CACHE_MAP
|
|||
PFILE_OBJECT FileObject;
|
||||
ULONG DirtyPages;
|
||||
LIST_ENTRY SharedCacheMapLinks;
|
||||
ULONG Flags;
|
||||
PCACHE_MANAGER_CALLBACKS Callbacks;
|
||||
PVOID LazyWriteContext;
|
||||
LIST_ENTRY PrivateList;
|
||||
|
@ -178,6 +179,9 @@ typedef struct _ROS_SHARED_CACHE_MAP
|
|||
#endif
|
||||
} ROS_SHARED_CACHE_MAP, *PROS_SHARED_CACHE_MAP;
|
||||
|
||||
#define READAHEAD_DISABLED 0x1
|
||||
#define WRITEBEHIND_DISABLED 0x2
|
||||
|
||||
typedef struct _ROS_VACB
|
||||
{
|
||||
/* Base address of the region where the view's data is mapped. */
|
||||
|
|
Loading…
Reference in a new issue