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