Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 222 of file cmdelay.c.
Referenced by CmpInitDelayDerefKCBEngine().
{ PCM_DELAY_DEREF_KCB_ITEM Entry; PAGED_CODE(); /* Sanity check */ ASSERT(CmpDelayDerefKCBWorkItemActive); /* Lock the registry and and list lock */ CmpLockRegistry(); KeAcquireGuardedMutex(&CmpDelayDerefKCBLock); /* Check if the list is empty */ while (!IsListEmpty(&CmpDelayDerefKCBListHead)) { /* Grab an entry */ Entry = (PVOID)RemoveHeadList(&CmpDelayDerefKCBListHead); /* We can release the lock now */ KeReleaseGuardedMutex(&CmpDelayDerefKCBLock); /* Now grab the actual entry */ Entry = CONTAINING_RECORD(Entry, CM_DELAY_DEREF_KCB_ITEM, ListEntry); Entry->ListEntry.Flink = Entry->ListEntry.Blink = NULL; /* Dereference and free */ CmpDereferenceKeyControlBlock(Entry->Kcb); CmpFreeDelayItem(Entry); /* Lock the list again */ KeAcquireGuardedMutex(&CmpDelayDerefKCBLock); } /* We're done */ CmpDelayDerefKCBWorkItemActive = FALSE; KeReleaseGuardedMutex(&CmpDelayDerefKCBLock); CmpUnlockRegistry(); }