PiDqQueryCompletePendedIrp
VOID __fastcall PiDqQueryCompletePendedIrp(INT64 a1){
__int64 v2;
__int64 v3;
unsigned int v4;
int v5;
__int128 *v6;
__int128 v7;
v2 = *(_QWORD *)(a1 + 176);
v7 = 0i64;
if( v2 )
{
v3 = *(_QWORD *)(v2 + 184);
if( _InterlockedExchange64((volatile __int64 *)(v2 + 104), 0i64) )
{
v4 = 0;
if( (*(_DWORD *)(a1 + 216) & 1) != 0 )
{
v6 = 0i64;
v5 = -1073741670;
}
else
{
PiDqQueryGetNextIoctlInfo(a1, *(unsigned int *)(v3 + 8), 0i64, &v7);
v5 = 0;
v6 = &v7;
v4 = 16;
}
PiDqIrpComplete(*(_QWORD *)(a1 + 176), v5, v4, v6);
*(_DWORD *)(a1 + 216) &= ~0x10u;
*(_QWORD *)(a1 + 176) = 0i64;
}
}
}Referenced by:
PiDqObjectManagerServiceActionQueue