PspApiSetCopyToSystemSpace

NTSTATUS __stdcall PspApiSetCopyToSystemSpace(
        VOID *ApiSetBaseAddress,
        UINT64 ApiSetSize,
        VOID **ApiSetSection,
        VOID **ApiSetSchema){
  size_t v6; 
  NTSTATUS v8; 
  _ADAPTER_OBJECT *v9; 
  int v10; 
  size_t v11; 
  VOID *v12; 
  UINT64 v14; 
  UINT64 v15; 
  VOID *MappedBase; 
  _LARGE_INTEGER v17; 
  __int64 ViewSize[2]; 
  VOID *Section; 

  MappedBase = 0i64;
  Section = 0i64;
  v6 = ApiSetSize;
  ViewSize[0] = 0i64;
  v17.QuadPart = ApiSetSize;
  LODWORD(v15) = 0x8000000;
  LODWORD(v14) = 4;
  v8 = MmCreateSection(&Section, 0xF001Fui64, 0i64, &v17, v14, v15, 0i64, 0i64);
  v9 = (_ADAPTER_OBJECT *)Section;
  v10 = v8;
  if( v8 >= 0 )
  {
    v10 = MmMapViewInSystemSpace(Section, &MappedBase, (UINT64 *)ViewSize);
    if( v10 >= 0 )
    {
      v11 = v6;
      v12 = MappedBase;
      memmove(MappedBase, ApiSetBaseAddress, v11);
      *ApiSetSection = v9;
      *ApiSetSchema = v12;
    }
  }
  if( v9 && v10 < 0 )
    HalPutDmaAdapter(v9);
  return v10;
}

Referenced by:

PspSiloLoadApiSets