VslFinishStartSecureProcessor
NTSTATUS __stdcall VslFinishStartSecureProcessor(UINT64 ProcessorNumber){
unsigned int v1;
VOID **PoolWithTag;
_KPRCB *Prcb;
VOID *v5;
int v6;
INT64 v7[10];
INT64 v8[14];
v1 = ProcessorNumber;
memset(v8, 0i64, 0x68u);
memset(v7, 0i64, 0x48u);
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, 0x10ui64, 1416850774i64);
if( !PoolWithTag )
return -1073741670;
Prcb = KeGetPrcb(v1);
*(_DWORD *)PoolWithTag = v1;
LODWORD(v5) = MmGetPhysicalAddress(Prcb[-1].PrcbPad141[479]);
PoolWithTag[1] = v5;
v6 = VslpLockPagesForTransfer((INT64)v7, (INT64)PoolWithTag, 0x10ui64, 0i64, 0);
if( v6 >= 0 )
{
v8[1] = v7[0];
v8[2] = v7[7];
v6 = VslpEnterIumSecureMode(2u, 3, 0i64, (INT64)v8);
VslpUnlockPagesForTransfer((INT64 **)v7);
}
ExFreePoolWithTag(PoolWithTag, 0);
return v6;
}Referenced by:
KeWriteProtectProcessorState