VslCreateSecureSection
NTSTATUS __stdcall VslCreateSecureSection(
PHANDLE Handle,
_EPROCESS *TargetProcess,
PMDL Mdl,
UINT32 DevicePageProtection,
UINT32 Attributes){
NTSTATUS v9;
UINT64 v10;
int v11;
INT64 v12[10];
INT64 result[2];
UINT32 v14;
INT64 v15;
void *v16;
INT64 v17;
memset((INT64)result, 0i64);
memset((INT64)v12, 0i64);
*Handle = 0i64;
if( (Attributes & 0xFFFFFFFE) != 0 )
return -1073741580;
if( (Attributes & 1) == 0 && ((Mdl->ByteCount & 0xFFF) != 0 || Mdl->ByteOffset) )
return -1073741583;
v10 = MmSizeOfMdl((PVOID)Mdl->ByteOffset, Mdl->ByteCount);
if( v10 > 0xFFFFFFFF )
return -1073741583;
v9 = VslpLockPagesForTransfer((INT64)v12, (INT64)Mdl, (unsigned int)v10, 0i64, 0);
if( v9 >= 0 )
{
v15 = v12[0];
v17 = v12[7];
result[1] = *((_QWORD *)TargetProcess + 124);
v14 = DevicePageProtection;
v11 = VslpEnterIumSecureMode(2u, 63, 0i64, (INT64)result);
VslpUnlockPagesForTransfer((INT64 **)v12);
if( v11 >= 0 )
*Handle = v16;
return v11;
}
return v9;
}Referenced by:
No references.