SMKM_STORE_MGR::SmpPageEvict

__int64 __fastcall SMKM_STORE_MGR::SmpPageEvict(__int64 a1, unsigned int *a2, unsigned int a3, __int64 a4){
  struct _MDL *v5; 
  unsigned int v6; 
  unsigned int v7; 
  __int64 *v8; 
  int v9; 
  __int64 v10; 
  _ETHREAD *v11; 
  __int64 v12; 
  int v13; 
  _ETHREAD *v14; 
  __int64 v15; 
  struct _EX_RUNDOWN_REF *v17; 
  VOID *Context; 
  VOID *Contexta; 
  _MDL *v20; 
  _MDL *v21; 
  UINT64 DontFail; 
  int v23; 
  unsigned int v24; 
  int v25; 
  v25 = HIDWORD(a4);
  v23 = a3;
  v24 = 0;
  v5 = 0i64;
  v6 = SMKM_STORE_MGR::SmFeEvictInitiate(a1, a2, (unsigned int *)&v23, &v24);
  v7 = v6;
  if( v6 != 1024 )
  {
    v8 = (__int64 *)SmKmStoreRefFromStoreIndex((INT64)&SmGlobals, v6 & 0x3FF);
    v9 = dword_140D230F0 & 1;
    LODWORD(Context) = v9;
    v10 = *v8;
    SmFpAllocate((INT64)&qword_140D22F50, 0i64, 0i64, 0i64, Context, v20, 0i64);
    v13 = v23;
    v14 = v11;
    if( v11 )
    {
      *((_QWORD *)v11 + 1) = 0i64;
      *(_QWORD *)v11 = 0i64;
      LODWORD(Contexta) = v9;
      SmFpAllocate((INT64)&qword_140D22F50, 1i64, (INT64)v11, 0i64, Contexta, v21, DontFail);
      v5 = (struct _MDL *)v15;
      if( v15 )
      {
        *(_DWORD *)(v15 + 4) = 0;
        *(_QWORD *)(v15 + 16) = 0i64;
        *(_QWORD *)(v15 + 24) = 0i64;
        *(_DWORD *)v15 = 1;
        *(_DWORD *)(v15 + 8) = *a2;
        *(_DWORD *)(v15 + 12) = v13;
        *(_QWORD *)(v15 + 32) = v14;
        if( (int)SMKM_STORE_MGR::SmIoCtxQueueWork(v14, (__int64)&SmGlobals, v7, v15) >= 0 )
        {
          v10 = 0i64;
          v5 = 0i64;
          v14 = 0i64;
        }
      }
    }
    if( v10 )
    {
      SMKM_STORE_MGR::SmFeSetEvictFailed(v12, a2, v13);
      v17 = (struct _EX_RUNDOWN_REF *)SmKmStoreRefFromStoreIndex((INT64)&SmGlobals, *(_DWORD *)(v10 + 6016) & 0x3FF);
      ExReleaseRundownProtection(v17 + 1);
    }
    if( v5 )
      SMKM_STORE_MGR::SmWorkItemFreeResource((__int64)&SmGlobals, v5, (__int64)v14);
    if( v14 )
      SmFpFree((INT64)&qword_140D22F50, 0i64, (INT64)v14, (INT64)v14);
  }
  return v24;
}

Referenced by:

No references.