ntoskrnl.exe: Implement ExDeletePagedLookasideList.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2019-06-24 16:25:21 +02:00 committed by Alexandre Julliard
parent fac633495d
commit 7e14df06f1
1 changed files with 26 additions and 23 deletions

View File

@ -2019,29 +2019,6 @@ NTSTATUS WINAPI ExCreateCallback(PCALLBACK_OBJECT *obj, POBJECT_ATTRIBUTES attr,
}
/***********************************************************************
* ExDeleteNPagedLookasideList (NTOSKRNL.EXE.@)
*/
void WINAPI ExDeleteNPagedLookasideList( PNPAGED_LOOKASIDE_LIST lookaside )
{
void *entry;
TRACE("(%p)\n", lookaside);
while ((entry = RtlInterlockedPopEntrySList(&lookaside->L.u.ListHead)))
lookaside->L.u5.FreeEx(entry, (LOOKASIDE_LIST_EX*)lookaside);
}
/***********************************************************************
* ExDeletePagedLookasideList (NTOSKRNL.EXE.@)
*/
void WINAPI ExDeletePagedLookasideList( PPAGED_LOOKASIDE_LIST lookaside )
{
FIXME("(%p) stub\n", lookaside);
}
/***********************************************************************
* ExFreePool (NTOSKRNL.EXE.@)
*/
@ -2112,6 +2089,32 @@ void WINAPI ExInitializePagedLookasideList(PPAGED_LOOKASIDE_LIST lookaside,
initialize_lookaside_list( &lookaside->L, allocate, free, PagedPool | flags, size, tag );
}
static void delete_lookaside_list( GENERAL_LOOKASIDE *lookaside )
{
void *entry;
while ((entry = RtlInterlockedPopEntrySList(&lookaside->u.ListHead)))
lookaside->u5.FreeEx(entry, (LOOKASIDE_LIST_EX*)lookaside);
}
/***********************************************************************
* ExDeleteNPagedLookasideList (NTOSKRNL.EXE.@)
*/
void WINAPI ExDeleteNPagedLookasideList( PNPAGED_LOOKASIDE_LIST lookaside )
{
TRACE( "%p\n", lookaside );
delete_lookaside_list( &lookaside->L );
}
/***********************************************************************
* ExDeletePagedLookasideList (NTOSKRNL.EXE.@)
*/
void WINAPI ExDeletePagedLookasideList( PPAGED_LOOKASIDE_LIST lookaside )
{
TRACE( "%p\n", lookaside );
delete_lookaside_list( &lookaside->L );
}
/***********************************************************************
* ExInitializeZone (NTOSKRNL.EXE.@)
*/