MiApplyImportOptimizationToRuntimeDriver
NTSTATUS __stdcall MiApplyImportOptimizationToRuntimeDriver(INT64 a1, UINT64 a2){
_MMPTE *v4;
INT64 v5;
int v6;
__int64 v7;
char v8;
int v9;
_KTBFLUSH_TYPE v10;
VOID *v12;
VOID *v13;
UINT64 Size;
v4 = 0i64;
if( !MiIsImportOptimizationEnabled() )
return 0;
LOBYTE(v6) = MiDoesControlAreaRequireRetpolineFixups(v5);
if( !v6
|| *(_QWORD *)(*(_QWORD *)v7 + 32i64) != *(_QWORD *)(a1 + 48)
|| (v8 & 1) != 0
|| VfIsDriverSuspect((PCUNICODE_STRING)(a1 + 88)) )
{
return 0;
}
if( (MiFlags & 0x10000) != 0 )
{
v12 = *(VOID **)(a1 + 48);
LODWORD(Size) = 0;
v13 = RtlImageDirectoryEntryToData(v12, 1u, 0xCu, &Size);
if( v13 )
{
v9 = VslCaptureSecureImageIat((INT64)v12, (INT64)v13, (unsigned int)Size);
if( v9 < 0 )
return v9;
}
}
else
{
v4 = MiReservePtes((_MI_SYSTEM_PTE_TYPE *)((char *)&stru_140C4DB30 + 4432), 1ui64);
if( !v4 )
return -1073741670;
v9 = MiCaptureRetpolineImportInfo(a1, a2);
if( v9 < 0 )
goto LABEL_12;
}
MiWalkEntireImage((_CONTROL_AREA *)a2, v4, 16i64, 0xFFFFFFFFui64);
if( (MiFlags & 0x10000) == 0 )
MiUpdateImportRelocationsOnDriverPrivatePages(a1, a2, (UINT64)v4);
*(_DWORD *)(a1 + 104) |= 0x80u;
v9 = 0;
LABEL_12:
if( v4 )
MiReleasePtes((_MI_SYSTEM_PTE_TYPE *)((char *)&stru_140C4DB30 + 4432), v4, 1ui64, v10);
return v9;
}Referenced by:
MmLoadSystemImageEx