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