HvlpSetupCachedHypercallPages
VOID __stdcall HvlpSetupCachedHypercallPages(_KPRCB *Prcb){
union _SLIST_HEADER *v1;
__int64 v2;
PHYSICAL_ADDRESS *v3;
char *v4;
__int64 v5;
PHYSICAL_ADDRESS PhysicalAddress;
PHYSICAL_ADDRESS v7;
v1 = (union _SLIST_HEADER *)((char *)Prcb + 33600);
v2 = *((_QWORD *)Prcb + 4208) + 0x2000i64;
InitializeSListHead((_SLIST_HEADER *)((char *)Prcb + 33600));
v3 = (PHYSICAL_ADDRESS *)v2;
v4 = (char *)v2;
v5 = 3i64;
do
{
PhysicalAddress = MmGetPhysicalAddress(v4);
v4 += 4096;
v3[2] = PhysicalAddress;
v3->QuadPart = (LONGLONG)v4;
v3 += 512;
--v5;
}
while( v5 );
v7 = MmGetPhysicalAddress((PVOID)(v2 + 12288));
*(_QWORD *)(v2 + 12288) = 0i64;
*(PHYSICAL_ADDRESS *)(v2 + 12304) = v7;
InterlockedPushListSList(v1, (PSLIST_ENTRY)v2, (PSLIST_ENTRY)(v2 + 12288), 4u);
}Referenced by:
HvlInitializeProcessor
HvlPhase1Initialize