HalpAcquireSecondaryIcEntryExclusive
NTSTATUS __stdcall HalpAcquireSecondaryIcEntryExclusive(INT32 *a1, _BYTE *a2){
unsigned __int64 v4;
NTSTATUS result;
_InterlockedIncrement(a1 + 29);
while( 1 )
{
KeWaitForSingleObject((UINT64)(a1 + 30), 0, 0, 0, 0i64);
v4 = (unsigned __int8)HalpAcquireHighLevelLock((UINT64 *)&CmpDummyThreadEvent + 994);
result = _InterlockedCompareExchange(a1 + 28, 2, 1);
if( result == 1 )
break;
KxReleaseSpinLock((UINT64 *)&CmpDummyThreadEvent + 994);
__writecr8(v4);
}
_InterlockedDecrement(a1 + 29);
*a2 = v4;
return result;
}Referenced by:
HalpDeleteSecondaryIcEntry