NtTerminateEnclave
NTSTATUS __stdcall NtTerminateEnclave(_XSTATE_CONFIGURATION *a1, UINT64 a2){
unsigned int v2;
INT64 v5;
_MMVAD_SHORT *v6;
NTSTATUS v7;
INT64 v8;
LODWORD(v8) = 0;
v2 = a2;
if( (a2 & 0xFFFFFFFA) != 0 )
return -1073741584;
LODWORD(v5) = MiObtainReferencedVadEx((UINT64)a1, 0, &v8);
v6 = (_MMVAD_SHORT *)v5;
if( !v5 )
return v8;
if( (*(_DWORD *)(v5 + 48) & 0x3100000) == 34603008
&& (_XSTATE_CONFIGURATION *)((*(unsigned int *)(v5 + 24) | ((unsigned __int64)*(unsigned __int8 *)(v5 + 32) << 32)) << 12) == a1 )
{
v7 = MiTerminateEnclave((INT64)KeGetCurrentThread()->ApcState.Process, v5, v2);
}
else
{
v7 = -1073741800;
}
MiUnlockAndDereferenceVad(v6);
return v7;
}Referenced by:
No references.