VfSuspectDriversUnloadCallback
VOID __stdcall VfSuspectDriversUnloadCallback(_KLDR_DATA_TABLE_ENTRY *DataTableEntry){
_VF_SUSPECT_DRIVER_ENTRY *i;
VfDriverLock();
if( (unsigned __int8)RtlEqualUnicodeString(&VfTcpIpName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfTcpIpDllBase = 0i64;
}
else if( (unsigned __int8)RtlEqualUnicodeString(&VfTdxName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfTdxDllBase = 0i64;
}
else if( (unsigned __int8)RtlEqualUnicodeString(&VfMrxsmbName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfMrxsmbDllBase = 0i64;
}
else if( (unsigned __int8)RtlEqualUnicodeString(&VfTmName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfTmDllBase = 0i64;
}
else if( (unsigned __int8)RtlEqualUnicodeString(&VfWin32kName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfWin32kDllBase = 0i64;
}
else if( (unsigned __int8)RtlEqualUnicodeString(&VfKsName, &DataTableEntry->BaseDllName, 1u) == 1 )
{
VfKsDllBase = 0i64;
}
for( i = VfSuspectDriversList;
i != (_VF_SUSPECT_DRIVER_ENTRY *)&VfSuspectDriversList;
i = (_VF_SUSPECT_DRIVER_ENTRY *)i->Links.Flink )
{
if( (unsigned __int8)RtlEqualUnicodeString(&i->BaseName, &DataTableEntry->BaseDllName, 1u) )
{
++dword_140C2A654;
++i->Unloads;
VfNotifyVerifierExtensions(XdvUnloadImageEvent, DataTableEntry);
break;
}
}
ViDriversLoadLockOwner = 0i64;
KeReleaseMutex(&ViDriversLoadLock, 0);
}Referenced by:
VfDriverUnloadImage