VslpLockMdlForTransfer

NTSTATUS __stdcall VslpLockMdlForTransfer(INT64 a1, INT64 a2, CHAR a3){
  __int64 v3; 
  _MDL *v4; 

  *(_QWORD *)a1 = a2;
  *(_DWORD *)(a1 + 64) = 0;
  v3 = *(__int16 *)(a2 + 8);
  v4 = (_MDL *)(a1 + 8);
  v4->Next = 0i64;
  v4->Size = 8 * ((((unsigned __int64)(a2 & 0xFFF) + v3 + 4095) >> 12) + 6);
  v4->MdlFlags = 0;
  v4->StartVa = (void *)(a2 & 0xFFFFFFFFFFFFF000ui64);
  v4->ByteOffset = a2 & 0xFFF;
  v4->ByteCount = v3;
  if( (a3 & 4) != 0 )
    MmBuildMdlForNonPagedPool(v4);
  else
    MiProbeAndLockPages((INT64)v4, 0, 0i64);
  return 0;
}

Referenced by:

VslLoadEnclaveData
VslLoadEnclaveModule
VslpLockPagesForTransfer