PfSnCleanupPrefetchSectionInfo
void __fastcall PfSnCleanupPrefetchSectionInfo(__int64 a1, __int64 a2, char a3){
int v5;
_ADAPTER_OBJECT *v6;
_ADAPTER_OBJECT *v7;
if( a3 )
{
v5 = *(_DWORD *)(a1 + 48);
if( (v5 & 1) != 0 )
{
HalPutDmaAdapter(*(PADAPTER_OBJECT *)(a1 + 32));
*(_QWORD *)(a1 + 32) = 0i64;
*(_DWORD *)(a1 + 48) &= ~1u;
v5 = *(_DWORD *)(a1 + 48);
}
if( (v5 & 2) != 0 )
{
HalPutDmaAdapter(*(PADAPTER_OBJECT *)(a1 + 40));
*(_QWORD *)(a1 + 40) = 0i64;
*(_DWORD *)(a1 + 48) &= ~2u;
v5 = *(_DWORD *)(a1 + 48);
}
if( (v5 & 4) != 0 )
{
PfpOpenHandleClose((_QWORD *)a1, *(_QWORD *)(a2 + 8));
*(_QWORD *)a1 = 0i64;
*(_QWORD *)(a1 + 8) = 0i64;
*(_QWORD *)(a1 + 16) = 0i64;
*(_QWORD *)(a1 + 24) = 0x200000000i64;
*(_DWORD *)(a1 + 48) &= ~4u;
}
}
else
{
v6 = *(_ADAPTER_OBJECT **)(a1 + 32);
if( v6 )
HalPutDmaAdapter(v6);
v7 = *(_ADAPTER_OBJECT **)(a1 + 40);
if( v7 )
HalPutDmaAdapter(v7);
if( (*(_QWORD *)(a1 + 24) & 0x400000000i64) != 0 )
PfpOpenHandleClose((_QWORD *)a1, *(_QWORD *)(a2 + 8));
}
}Referenced by:
PfSnPopulateReadList
PfSnSectionInfoCleanupWorkItem