ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

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();
}

Generated on Sun May 27 2012 06:06:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.