ViAvlReleaseTableLockFromDpcLevel
VOID __stdcall ViAvlReleaseTableLockFromDpcLevel(_VF_AVL_TABLE *Table, _VF_AVL_LOCK_CONTEXT *Context){
INT64 *p_Lock;
p_Lock = (INT64 *)&Table->Lock;
if( (*((_BYTE *)Context + 9) & 4) != 0 )
ExReleaseSpinLockExclusiveFromDpcLevel(p_Lock);
else
ExReleaseSpinLockSharedFromDpcLevel((PEX_SPIN_LOCK)p_Lock);
*((_BYTE *)Context + 9) &= ~2u;
*(_QWORD *)Context = 0i64;
}Referenced by:
VfAvlCleanupLockContext
VfAvlDeleteTreeNode
VfAvlEnumerateNodes
VfAvlInsertReservedTreeNode
VfAvlLookupTreeNode
ViAvlAcquireTableLockAtDpcLevelSafe