WdipSemSqmLogInflightLimitExceededDataPoints
NTSTATUS __stdcall WdipSemSqmLogInflightLimitExceededDataPoints(){
_ETHREAD *CurrentThread;
int v1;
UINT64 v2;
__int64 v3;
unsigned int i;
const _GUID **v6;
const _GUID *v7;
__int64 v8;
UINT64 Key;
int v10[4];
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
LODWORD(Key) = 0;
v1 = 0;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx(&stru_140C1C7E8, 0i64);
v3 = (unsigned int)dword_140C1C7E0;
if( dword_140C1C7E0 )
{
v1 = WdipSemSqmIncrementDword(v2);
if( v1 < 0 )
v1 = 0;
if( (_DWORD)v3 )
{
v6 = (const _GUID **)WdipSemFrequentScenarioTable;
do
{
v7 = *v6;
if( WdipSemGetGuidKey(*v6, &Key) >= 0 )
{
v10[0] = Key;
v10[1] = LOWORD(v7[1].Data1);
v10[2] = *(_DWORD *)&v7[1].Data2;
v1 = WdipSemSqmAddToStream((const in6_addr *)0x426, 3u, (__int64)v10);
if( v1 < 0 )
v1 = 0;
}
else
{
v1 = 0;
}
++v6;
--v3;
}
while( v3 );
}
}
for( i = 0; i < dword_140C1C7E0; WdipSemFrequentScenarioTable[v8] = 0i64 )
{
v8 = i;
WdipSemFastFree(5i64, (_SLIST_ENTRY *)WdipSemFrequentScenarioTable[i++]);
}
dword_140C1C7E0 = 0;
ExReleasePushLockEx((ULONG_PTR)&stru_140C1C7E8, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v1;
}Referenced by:
WdipTimeoutCheckRoutine