diff --git a/trunk/KProcessHacker/i386/kprocesshacker.sys b/trunk/KProcessHacker/i386/kprocesshacker.sys index 98628f405..43ee682d8 100644 Binary files a/trunk/KProcessHacker/i386/kprocesshacker.sys and b/trunk/KProcessHacker/i386/kprocesshacker.sys differ diff --git a/trunk/KProcessHacker/protect.c b/trunk/KProcessHacker/protect.c index 4110e0f4f..feec4ea3b 100644 --- a/trunk/KProcessHacker/protect.c +++ b/trunk/KProcessHacker/protect.c @@ -112,27 +112,7 @@ NTSTATUS KphProtectDeinit() waitLi.QuadPart = KPH_REL_TIMEOUT_IN_SEC(1); KeDelayExecutionThread(KernelMode, FALSE, &waitLi); - KeAcquireSpinLock(&ProtectedProcessListLock, &oldIrql); - - /* Free and remove all process entries from the list. */ - while (!IsListEmpty(&ProtectedProcessListHead)) - { - PKPH_PROCESS_ENTRY entry = - CONTAINING_RECORD( - RemoveHeadList(&ProtectedProcessListHead), - KPH_PROCESS_ENTRY, - ListEntry - ); - - dprintf("KphProtectDeinit: removing entry 0x%08x\n", entry); - - ExFreeToNPagedLookasideList( - &ProtectedProcessLookasideList, - entry - ); - } - - KeReleaseSpinLock(&ProtectedProcessListLock, oldIrql); + /* Free all process protection entries. */ ExDeleteNPagedLookasideList(&ProtectedProcessLookasideList); return STATUS_SUCCESS;