PfSnCleanupPrefetchSectionInfo
VOID __fastcall PfSnCleanupPrefetchSectionInfo(INT64 a1, INT64 a2, CHAR a3){
int v5;
struct _DMA_ADAPTER *v6;
struct _DMA_ADAPTER *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 = *(struct _DMA_ADAPTER **)(a1 + 32);
if( v6 )
HalPutDmaAdapter(v6);
v7 = *(struct _DMA_ADAPTER **)(a1 + 40);
if( v7 )
HalPutDmaAdapter(v7);
if( (*(_QWORD *)(a1 + 24) & 0x400000000i64) != 0 )
PfpOpenHandleClose((_QWORD *)a1, *(_QWORD *)(a2 + 8));
}
}Referenced by:
PfSnPopulateReadList
PfSnSectionInfoCleanupWorkItem