HalpMapNvsArea
VOID __fastcall HalpMapNvsArea(_HALP_ALLOC_CONTEXT *a1){
__int64 v1;
__int64 v2;
_HALP_ALLOC_CONTEXT *v3;
if( !HalpNvsPreservedDataSize )
{
HalpDisableNvsSaveRestore = 1;
return;
}
HalpDisableNvsSaveRestore = 0;
HalpNvsPreservedData = HalpMmAllocCtxAlloc((__int64)a1, (unsigned int)HalpNvsPreservedDataSize);
if( !HalpNvsPreservedData )
goto LABEL_8;
v1 = 0i64;
if( HalpNvsRegionCount )
{
while( 1 )
{
MmMapIoSpaceEx(
*(_LARGE_INTEGER *)(HalpNvsRegionData + 24 * v1),
*(unsigned int *)(HalpNvsRegionData + 24 * v1 + 8),
0x204ui64);
*(_QWORD *)(HalpNvsRegionData + 24 * v1 + 16) = v2;
if( !v2 )
break;
v1 = (unsigned int)(v1 + 1);
if( (unsigned int)v1 >= HalpNvsRegionCount )
return;
}
LABEL_8:
DbgPrint("HALACPI: The BIOS's non-volatile data will not be preserved\n");
HalpDisableNvsSaveRestore = 1;
HalpFreeNvsBuffers(v3);
}
}Referenced by:
HalpPowerStateCallback