[NTOSKRNL] Implement CcSetAdditionalCacheAttributes()

This commit is contained in:
Pierre Schweitzer 2018-02-08 11:49:22 +01:00
parent f8c3f0c9c4
commit df5839db5b
No known key found for this signature in database
GPG key ID: 7545556C3D585B0B
2 changed files with 32 additions and 3 deletions

View file

@ -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

View file

@ -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. */