HalpIommuMarkHiberPhase
NTSTATUS __stdcall HalpIommuMarkHiberPhase(PVOID MemoryMap){
void **v1;
INT64 *i;
PVOID *j;
PVOID *k;
UINT64 Tag;
UINT64 Taga;
void *retaddr;
v1 = &retaddr;
for( i = (INT64 *)HalpIommuList; i != &HalpIommuList; i = (INT64 *)*i )
{
v1 = (void **)i[38];
if( v1 )
LODWORD(v1) = ((__int64(__fastcall *)(PVOID, INT64, INT64 *))v1)(MemoryMap, i[2], i + 46);
}
if( MemoryMap )
{
LODWORD(Tag) = 1231839560;
PoSetHiberRange(MemoryMap, 2ui64, &IommupSystemContextListLock, 8ui64, Tag);
for( j = (PVOID *)IommupSystemContextListHead; j != &IommupSystemContextListHead; j = (PVOID *)*j )
{
LODWORD(Taga) = 1231839560;
PoSetHiberRange(MemoryMap, 2ui64, j, 0x40ui64, Taga);
for( k = (PVOID *)j[6]; k != j + 6; k = (PVOID *)*k )
{
LODWORD(Taga) = 1231839560;
PoSetHiberRange(MemoryMap, 2ui64, k, 0x68ui64, Taga);
}
}
}
return(int)v1;
}Referenced by:
HaliLocateHiberRanges