IommuDevicePowerChange
INT64 __fastcall IommuDevicePowerChange(INT64 a1, INT64 a2, CHAR a3){
char v3;
unsigned __int8 CurrentIrql;
EX_RUNDOWN_REF *v5;
v3 = 0;
CurrentIrql = 0;
if( KeGetCurrentIrql() < 2u )
{
v3 = 1;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
}
v5 = (EX_RUNDOWN_REF *)(a2 + 48);
if( a3 )
{
(*(void(__fastcall **)(_QWORD, _QWORD, _QWORD))(*(_QWORD *)(a2 + 24) + 240i64))(
*(_QWORD *)(*(_QWORD *)(a2 + 24) + 16i64),
*(_QWORD *)(a2 + 40),
*(unsigned int *)(a2 + 56));
_InterlockedExchange64((volatile __int64 *)v5, 0i64);
}
else
{
ExWaitForRundownProtectionRelease((EX_RUNDOWN_REF *)(a2 + 48));
ExRundownCompleted(v5);
}
if( v3 )
__writecr8(CurrentIrql);
return 0i64;
}Referenced by:
No references.