MmManagePartitionCreateLargePages

NTSTATUS __stdcall MmManagePartitionCreateLargePages(pHalIoWritePartitionTable **a1, INT64 a2, CHAR a3){
  NTSTATUS v5; 
  unsigned __int64 v6; 
  unsigned __int64 v7; 
  unsigned int v8; 
  unsigned int v9; 
  unsigned int v10; 
  __int64 *v11; 
  unsigned __int64 v12; 
  unsigned __int64 v13; 

  v5 = 0;
  if( !SeSinglePrivilegeCheck(*(_QWORD *)&SeLockMemoryPrivilege, a3) )
    return -1073741727;
  if( !*(_DWORD *)a2 && *(_DWORD *)(a2 + 4) < (unsigned int)(unsigned __int16)KeNumberNodes )
  {
    v6 = *(_QWORD *)(a2 + 8);
    if( (v6 & 0xFFF) == 0 )
    {
      v7 = v6 >> 12;
      LOBYTE(v8) = MiGetLargestPageIndex();
      v10 = v8;
      if( v8 < 3 )
      {
        v11 = &MiLargePageSizes[v8];
        do
        {
          if( *v11 == v7 )
            break;
          ++v10;
          ++v11;
        }
        while( v10 < 3 );
      }
      if( v10 == 3 || !v10 )
        return -1073741637;
      v12 = *(_QWORD *)(a2 + 16);
      if( v12 && v12 < 0xFFFFFFFFFFFFFFFFui64 / v7 )
      {
        LODWORD(v13) = MiRebuildLargePage((_MI_PARTITION *)*a1, v9);
        *(_QWORD *)(a2 + 24) = v13 / v7;
        return v5;
      }
    }
  }
  return -1073741811;
}

Referenced by:

NtManagePartition