HalpDmaControllerReadDmaCounter
__int64 __fastcall HalpDmaControllerReadDmaCounter(__int64 a1, unsigned int a2){
__int64 v2;
unsigned __int8 CurrentIrql;
char v5;
UINT64 *v6;
unsigned int v7;
v2 = a2;
CurrentIrql = KeGetCurrentIrql();
v5 = 0;
if( CurrentIrql == 15 )
{
v6 = (UINT64 *)(a1 + 168);
}
else
{
CurrentIrql = KeGetCurrentIrql();
__writecr8(*(unsigned __int8 *)(a1 + 176));
v6 = (UINT64 *)(a1 + 168);
KxAcquireSpinLock((UINT64 *)(a1 + 168));
v5 = 1;
}
v7 = (*(__int64(__fastcall **)(_QWORD, _QWORD))(a1 + 136))(*(_QWORD *)(a1 + 64), (unsigned int)v2);
if( !v7 )
*(_BYTE *)(160 * v2 + *(_QWORD *)(a1 + 56) + 6) = 1;
if( v5 )
{
KxReleaseSpinLock(v6);
__writecr8(CurrentIrql);
}
return v7;
}Referenced by:
HalReadDmaCounterV3