PspInitPhase3
BOOL __stdcall PspInitPhase3(){
NTSTATUS SystemDllSecureHandle;
NTSTATUS v2;
UINT64 v3;
UINT64 v4;
UINT64 a2;
_KAPC_STATE ApcState;
INT64 v7[14];
memset(&ApcState, 0, sizeof(ApcState));
a2 = 0i64;
if( !VslVsmEnabled )
return 1;
KiStackAttachProcess(PsSecureSystemProcess, 0i64, &ApcState);
SystemDllSecureHandle = PspGetSystemDllSecureHandle(PspSystemDlls, &a2);
if( SystemDllSecureHandle >= 0 )
{
SystemDllSecureHandle = PspMapSystemDll(
(_EPROCESS *)PsSecureSystemProcess,
(PSP_SYSTEM_DLL_DATA *)PspSystemDlls,
0i64,
0i64);
if( SystemDllSecureHandle >= 0 )
{
v4 = 0i64;
if( PspGetSystemDllSecureHandle(DllData, &v4) < 0 )
{
v3 = v4;
}
else
{
v2 = PspMapSystemDll((_EPROCESS *)PsSecureSystemProcess, (PSP_SYSTEM_DLL_DATA *)DllData, 0i64, 0i64);
v3 = v4;
if( v2 < 0 )
v3 = 0i64;
}
memset(v7, 0i64, 0x68u);
v7[1] = a2;
v7[2] = v3;
SystemDllSecureHandle = VslpEnterIumSecureMode(2u, 4, 0i64, (INT64)v7);
}
}
KiUnstackDetachProcess(&ApcState, 0i64);
return SystemDllSecureHandle >= 0;
}Referenced by:
Phase1InitializationIoReady
PsInitSystem