MiStoreWriteIssue

NTSTATUS __stdcall MiStoreWriteIssue(
        INT64 a1,
        INT64 a2,
        union _MM_STORE_KEY *a3,
        INT64 a4,
        INT64 TransferContext,
        INT64 StoreContext,
        INT64 PageKey,
        INT64 a8){
  unsigned __int64 v9; 
  INT64 v10; 
  NTSTATUS result; 
  __int64 v12; 
  UINT64 WaitAllowed; 

  *(_DWORD *)(a1 + 72) = 56;
  *(_QWORD *)(a1 + 64) = 0i64;
  *(_QWORD *)(a1 + 96) = 0i64;
  *(_QWORD *)(a1 + 104) = 4096i64;
  *(_WORD *)(a1 + 74) |= 2u;
  v9 = (__int64)((unsigned __int128)((a2 - (__int64)MmGetPfnDb()) * (__int128)0x2AAAAAAAAAAAAAABi64) >> 64) >> 3;
  v10 = PageKey;
  *(_QWORD *)(a1 + 112) = (v9 >> 63) + v9;
  *(_QWORD *)(a1 + 56) = v10;
  LODWORD(PageKey) = 0;
  result = SmKeyConvert(a3, (union _SM_PAGE_KEY *)&PageKey);
  if( result >= 0 )
  {
    LODWORD(WaitAllowed) = a8;
    return SmpPageWrite(
             (_SM_PAGE_KEY *)&PageKey,
             (_MM_STORE_KEY_DESCRIPTOR *)a4,
             (VOID *)StoreContext,
             (_MDL *)(v12 + 64),
             (VOID *)TransferContext,
             (_IO_STATUS_BLOCK *)(v12 + 16),
             WaitAllowed);
  }
  return result;
}

Referenced by:

MiStoreWriteModifiedPages