HvlLpReadCpuid
NTSTATUS __stdcall HvlLpReadCpuid(
UINT64 LpIndex,
UINT64 InEax,
UINT64 *OutEax,
UINT64 *OutEbx,
UINT64 *OutEcx,
UINT64 *OutEdx){
int v6;
int v9;
_DWORD *v10;
_DWORD *v11;
__int16 v12;
PHYSICAL_ADDRESS v14[2];
__int128 v15;
PHYSICAL_ADDRESS PageInfo[2];
__int128 v17;
v6 = InEax;
v9 = LpIndex;
*(_OWORD *)&PageInfo[0].anonymous_0.LowPart = 0i64;
v17 = 0i64;
*(_OWORD *)&v14[0].anonymous_0.LowPart = 0i64;
v15 = 0i64;
v10 = HvlpAcquireHypercallPage(PageInfo, 1ui64, 0i64, 0x10ui64);
v11 = HvlpAcquireHypercallPage(v14, 2ui64, 0i64, 0x10ui64);
v10[3] = 0;
*v10 = v9;
v10[1] = 0x10000;
v10[2] = v6;
HvcallInitiateHypercall();
*(_DWORD *)OutEax = *v11;
*(_DWORD *)OutEbx = v11[1];
LODWORD(v10) = v12 != 0 ? 0xC0000001 : 0;
*(_DWORD *)OutEcx = v11[2];
*(_DWORD *)OutEdx = v11[3];
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)v14);
HvlpReleaseHypercallPage((_HVLP_HYPERCALL_PAGE_INFO *)PageInfo);
return(int)v10;
}Referenced by:
No references.