AlpcpFreeCompletionPacketLookaside

VOID __stdcall AlpcpFreeCompletionPacketLookaside(_ALPC_COMPLETION_PACKET_LOOKASIDE *Lookaside){
  int v2; 
  struct _KLOCK_QUEUE_HANDLE LockHandle; 
  memset(&LockHandle, 0, sizeof(LockHandle));
  KeAcquireInStackQueuedSpinLock(&Lookaside->Lock, &LockHandle);
  if( Lookaside->ActiveCount )
  {
    v2 = 0;
    Lookaside->PendingDelete = 1;
  }
  else
  {
    v2 = 1;
  }
  KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
  __writecr8(LockHandle.OldIrql);
  if( v2 )
    AlpcpDeferredFreeCompletionPacketLookaside(Lookaside);
}

Referenced by:

AlpcpAssociateIoCompletionPort
AlpcpDeletePort
AlpcpInitializeCompletionList