mirror of
https://github.com/reactos/reactos.git
synced 2025-06-04 00:40:31 +00:00
[KMTESTS:MM] Truncate file cache on uninitialize to avoid leaking a reference.
ROSTESTS-266
This commit is contained in:
parent
4916c4cfd5
commit
d7abae76b8
1 changed files with 3 additions and 1 deletions
|
@ -416,10 +416,12 @@ TestIrpHandler(
|
||||||
if (IoStack->FileObject->SectionObjectPointer != NULL &&
|
if (IoStack->FileObject->SectionObjectPointer != NULL &&
|
||||||
IoStack->FileObject->SectionObjectPointer->SharedCacheMap != NULL)
|
IoStack->FileObject->SectionObjectPointer->SharedCacheMap != NULL)
|
||||||
{
|
{
|
||||||
|
LARGE_INTEGER Zero = RTL_CONSTANT_LARGE_INTEGER(0LL);
|
||||||
|
|
||||||
CcFlushCache(&Fcb->SectionObjectPointers, NULL, 0, NULL);
|
CcFlushCache(&Fcb->SectionObjectPointers, NULL, 0, NULL);
|
||||||
CcPurgeCacheSection(&Fcb->SectionObjectPointers, NULL, 0, FALSE);
|
CcPurgeCacheSection(&Fcb->SectionObjectPointers, NULL, 0, FALSE);
|
||||||
KeInitializeEvent(&CacheUninitEvent.Event, NotificationEvent, FALSE);
|
KeInitializeEvent(&CacheUninitEvent.Event, NotificationEvent, FALSE);
|
||||||
CcUninitializeCacheMap(IoStack->FileObject, NULL, &CacheUninitEvent);
|
CcUninitializeCacheMap(IoStack->FileObject, &Zero, &CacheUninitEvent);
|
||||||
KeWaitForSingleObject(&CacheUninitEvent.Event, Executive, KernelMode, FALSE, NULL);
|
KeWaitForSingleObject(&CacheUninitEvent.Event, Executive, KernelMode, FALSE, NULL);
|
||||||
}
|
}
|
||||||
ExFreePoolWithTag(Fcb, 'FwrI');
|
ExFreePoolWithTag(Fcb, 'FwrI');
|
||||||
|
|
Loading…
Reference in a new issue