WdipSemUpdateFrequentScenarioTable
__int64 __fastcall WdipSemUpdateFrequentScenarioTable(__int64 a1){
_ETHREAD *CurrentThread;
unsigned int v2;
_QWORD *v4;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v2 = 0;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx(&stru_140C1C7E8, 0i64);
if( a1 )
{
if( (unsigned int)dword_140C1C7E0 < 0x80 )
{
v4 = WdipSemFastAllocate(WDI_SEM_ALLOC_INFLIGHT_INFO, 0x18ui64);
if( v4 )
{
*(_OWORD *)v4 = *(_OWORD *)a1;
v4[2] = *(_QWORD *)(a1 + 16);
WdipSemFrequentScenarioTable[dword_140C1C7E0++] = v4;
}
else
{
v2 = -1073741670;
}
}
else
{
v2 = -1073741823;
}
}
else
{
v2 = -1073741811;
}
ExReleasePushLockEx((ULONG_PTR)&stru_140C1C7E8, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v2;
}Referenced by:
WdipSemLogInflightLimitExceededInformation