ExpAllocateMidLevelTable

_HANDLE_TABLE_ENTRY **__stdcall ExpAllocateMidLevelTable(
        _HANDLE_TABLE *HandleTable,
        _HANDLE_TABLE_ENTRY **NewLowLevel,
        _EXHANDLE LeafHandleValue){
  _HANDLE_TABLE_ENTRY **TablePagedPool; 
  _HANDLE_TABLE_ENTRY *LowLevelTable; 

  TablePagedPool = (_HANDLE_TABLE_ENTRY **)ExpAllocateTablePagedPool(HandleTable->QuotaProcess, 0x1000ui64);
  if( TablePagedPool )
  {
    LowLevelTable = ExpAllocateLowLevelTable(HandleTable, LeafHandleValue);
    *NewLowLevel = LowLevelTable;
    if( LowLevelTable )
    {
      *TablePagedPool = LowLevelTable;
      return TablePagedPool;
    }
    ExpFreeTablePagedPool((ULONG_PTR)HandleTable->QuotaProcess, TablePagedPool, 0x1000u);
  }
  return 0i64;
}

Referenced by:

ExpAllocateHandleTableEntrySlow