MmLockAddressSpace(AddressSpace);
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, Address);
MmUnlockAddressSpace(AddressSpace);
- if (!MemoryArea || MemoryArea->Type != MEMORY_AREA_SECTION_VIEW)
+ if (!MemoryArea || MemoryArea->Type != MEMORY_AREA_SECTION_VIEW || MemoryArea->DeleteInProgress)
{
return STATUS_NOT_MAPPED_DATA;
}
MmLockAddressSpace(AddressSpace);
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, BaseAddress);
- if (!MemoryArea || MemoryArea->Type != MEMORY_AREA_CACHE)
+ if (!MemoryArea || MemoryArea->Type != MEMORY_AREA_CACHE || MemoryArea->DeleteInProgress)
{
MmUnlockAddressSpace(AddressSpace);
DPRINT("STATUS_NOT_MAPPED_DATA\n");
PMM_SECTION_SEGMENT Segment;
MemoryArea = MmLocateMemoryAreaByAddress(AddressSpace, BaseAddress);
- if (MemoryArea == NULL)
+ if (MemoryArea == NULL || MemoryArea->DeleteInProgress)
{
ASSERT(MemoryArea);
return(STATUS_UNSUCCESSFUL);