ViThunkReplaceImportEntry
UINT64 __stdcall ViThunkReplaceImportEntry(_LIST_ENTRY *ThunkListHead, UINT64 *ImportEntry){
_LIST_ENTRY *Flink;
UINT64 result;
unsigned int Blink;
_LIST_ENTRY *v7;
int v8;
Flink = ThunkListHead->Flink;
for( result = 0i64; Flink != ThunkListHead; Flink = Flink->Flink )
{
Blink = (unsigned int)Flink[1].Blink;
v7 = Flink + 2;
v8 = 0;
if( Blink )
{
while( (_LIST_ENTRY *)*ImportEntry != v7->Flink )
{
++v7;
if( ++v8 >= Blink )
goto LABEL_7;
}
MmReplaceImportEntry(ImportEntry, (UINT64)v7->Blink);
result = 1i64;
}
LABEL_7:
if( (_DWORD)result == 1 )
break;
}
return result;
}Referenced by:
VfThunkApplyDriverAddedThunks
ViThunkReplaceAllThunkedImports