VfDriverLoadImage
VOID __stdcall VfDriverLoadImage(
_KLDR_DATA_TABLE_ENTRY *DataTableEntry,
_VF_SUSPECT_DRIVER_ENTRY *Verifier,
UINT8 KernelEntry,
UINT8 AlreadyRunning){
_KLDR_DATA_TABLE_ENTRY *v4;
unsigned int v5;
_SECTION *SectionPointer;
v4 = DataTableEntry;
v5 = KernelEntry;
SectionPointer = (_SECTION *)DataTableEntry->SectionPointer;
if( SectionPointer )
KernelEntry = MiSectionControlArea(SectionPointer)->Segment->SegmentFlags.UChar2 >> 4;
else
KernelEntry = 12;
if( ViVerifierDriverAddedThunkListHead.Flink )
{
VfSuspectDriversLoadCallback(v4, Verifier, KernelEntry, v5);
}
else if( !AlreadyRunning )
{
VfTargetDriversAdd(v4->DllBase, v4->SizeOfImage, (_VF_SUSPECT_DRIVER_ENTRY *)KernelEntry);
}
}Referenced by:
MiFinalizeDriverImage
VfDriverEnableVerifier
VfDriverLoadBootDrivers