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