[NTOS:CC]

- Raise an exception in case of failure in CcInitializeCacheMap
CORE-9848

svn path=/trunk/; revision=68227
This commit is contained in:
Thomas Faber 2015-06-21 09:20:01 +00:00
parent 38638f5766
commit f8ba038509
2 changed files with 9 additions and 5 deletions

View file

@ -92,6 +92,8 @@ CcInitializeCacheMap (
IN PCACHE_MANAGER_CALLBACKS CallBacks, IN PCACHE_MANAGER_CALLBACKS CallBacks,
IN PVOID LazyWriterContext) IN PVOID LazyWriterContext)
{ {
NTSTATUS Status;
ASSERT(FileObject); ASSERT(FileObject);
ASSERT(FileSizes); ASSERT(FileSizes);
@ -99,10 +101,12 @@ CcInitializeCacheMap (
FileObject, FileSizes, PinAccess, CallBacks, LazyWriterContext); FileObject, FileSizes, PinAccess, CallBacks, LazyWriterContext);
/* Call old ROS cache init function */ /* Call old ROS cache init function */
CcRosInitializeFileCache(FileObject, Status = CcRosInitializeFileCache(FileObject,
FileSizes, FileSizes,
CallBacks, CallBacks,
LazyWriterContext); LazyWriterContext);
if (!NT_SUCCESS(Status))
ExRaiseStatus(Status);
} }
/* /*

View file

@ -1176,7 +1176,7 @@ CcRosInitializeFileCache (
if (SharedCacheMap == NULL) if (SharedCacheMap == NULL)
{ {
KeReleaseGuardedMutex(&ViewLock); KeReleaseGuardedMutex(&ViewLock);
return STATUS_UNSUCCESSFUL; return STATUS_INSUFFICIENT_RESOURCES;
} }
RtlZeroMemory(SharedCacheMap, sizeof(*SharedCacheMap)); RtlZeroMemory(SharedCacheMap, sizeof(*SharedCacheMap));
ObReferenceObjectByPointer(FileObject, ObReferenceObjectByPointer(FileObject,