mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 19:33:16 +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
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
|
@ -174,10 +174,35 @@ CcSetAdditionalCacheAttributes (
|
||||||
IN BOOLEAN DisableWriteBehind
|
IN BOOLEAN DisableWriteBehind
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
KIRQL OldIrql;
|
||||||
|
PROS_SHARED_CACHE_MAP SharedCacheMap;
|
||||||
|
|
||||||
CCTRACE(CC_API_DEBUG, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n",
|
CCTRACE(CC_API_DEBUG, "FileObject=%p DisableReadAhead=%d DisableWriteBehind=%d\n",
|
||||||
FileObject, DisableReadAhead, DisableWriteBehind);
|
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
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
|
|
|
@ -163,6 +163,7 @@ typedef struct _ROS_SHARED_CACHE_MAP
|
||||||
PFILE_OBJECT FileObject;
|
PFILE_OBJECT FileObject;
|
||||||
ULONG DirtyPages;
|
ULONG DirtyPages;
|
||||||
LIST_ENTRY SharedCacheMapLinks;
|
LIST_ENTRY SharedCacheMapLinks;
|
||||||
|
ULONG Flags;
|
||||||
PCACHE_MANAGER_CALLBACKS Callbacks;
|
PCACHE_MANAGER_CALLBACKS Callbacks;
|
||||||
PVOID LazyWriteContext;
|
PVOID LazyWriteContext;
|
||||||
LIST_ENTRY PrivateList;
|
LIST_ENTRY PrivateList;
|
||||||
|
@ -178,6 +179,9 @@ typedef struct _ROS_SHARED_CACHE_MAP
|
||||||
#endif
|
#endif
|
||||||
} ROS_SHARED_CACHE_MAP, *PROS_SHARED_CACHE_MAP;
|
} ROS_SHARED_CACHE_MAP, *PROS_SHARED_CACHE_MAP;
|
||||||
|
|
||||||
|
#define READAHEAD_DISABLED 0x1
|
||||||
|
#define WRITEBEHIND_DISABLED 0x2
|
||||||
|
|
||||||
typedef struct _ROS_VACB
|
typedef struct _ROS_VACB
|
||||||
{
|
{
|
||||||
/* Base address of the region where the view's data is mapped. */
|
/* Base address of the region where the view's data is mapped. */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue