[NTOS:CC]

- Gracefully handle failure to obtain virtual memory when creating a VACB. We now no longer crash when running out of virtual memory during (large) file operations (but will still crash when running out of physical memory).
CORE-11533

svn path=/trunk/; revision=72164
This commit is contained in:
Thomas Faber 2016-08-09 07:59:07 +00:00
parent 0c43b4ec9c
commit 7849fac958

View file

@ -594,7 +594,8 @@ CcRosMapVacb(
MmUnlockAddressSpace(MmGetKernelAddressSpace());
if (!NT_SUCCESS(Status))
{
KeBugCheck(CACHE_MANAGER);
DPRINT1("MmCreateMemoryArea failed with %lx for VACB %p\n", Status, Vacb);
return Status;
}
ASSERT(((ULONG_PTR)Vacb->BaseAddress % PAGE_SIZE) == 0);
@ -746,6 +747,13 @@ CcRosCreateVacb (
#endif
Status = CcRosMapVacb(current);
if (!NT_SUCCESS(Status))
{
RemoveEntryList(&current->CacheMapVacbListEntry);
RemoveEntryList(&current->VacbLruListEntry);
CcRosReleaseVacbLock(current);
ExFreeToNPagedLookasideList(&VacbLookasideList, current);
}
return Status;
}