VfDriverEnableVerifierForAll
INT64 __stdcall VfDriverEnableVerifierForAll(){
INT64 v0;
INT64 v1;
INT64 v2;
int v3;
BOOL v4;
PVOID *i;
PVOID v6;
_VF_SUSPECT_DRIVER_ENTRY *Entry;
_VF_SUSPECT_DRIVER_ENTRY *v8;
int v10;
PIMAGE_NT_HEADERS NtHeader;
NtHeader = 0i64;
v3 = 0;
v10 = 0;
VfDriverLock(v1, v0, v2);
LOBYTE(v4) = 1;
ExAcquireResourceSharedLite(&PsLoadedModuleResource, v4);
for( i = *(PVOID **)PsLoadedModuleList; i != &PsLoadedModuleList; i = (PVOID *)*i )
{
if( !VfUtilIsProtectedDriver((PCUNICODE_STRING)(i + 11)) )
{
v6 = i[6];
if( (unsigned int)MmIsSessionAddress(v6) || RtlImageNtHeaderEx(1ui64, v6, 0i64, &NtHeader) >= 0 )
{
Entry = VfSuspectDriversAllocateEntry((_UNICODE_STRING *)(i + 11));
v8 = Entry;
if( !Entry )
{
v3 = -1073741670;
break;
}
v10 = 0;
v3 = VfDriverEnableVerifier((__int64)Entry, (__int64)i, &v10);
if( !v10 )
ExFreePoolWithTag(v8, 0);
if( v3 < 0 )
break;
}
}
}
ExReleaseResourceLite(&PsLoadedModuleResource);
ViDriversLoadLockOwner = 0i64;
KeReleaseMutex(&ViDriversLoadLock, 0);
return(unsigned int)v3;
}Referenced by:
VfAddVerifierEntry