VfGetVerifierInformation
NTSTATUS __stdcall VfGetVerifierInformation(
PVOID SystemInformation,
UINT64 SystemInformationLength,
UINT64 *ReturnedLength,
UINT64 GetAdditionalCounters){
int v4;
unsigned int v7;
unsigned __int64 v8;
VOID **PoolWithTag;
NTSTATUS VerifierInformation;
UINT64 GetAdditionalCountersa;
v4 = GetAdditionalCounters;
*(_DWORD *)ReturnedLength = 0;
v7 = 10485760;
if( (unsigned int)SystemInformationLength <= 0xA00000 )
v7 = SystemInformationLength;
v8 = v7;
PoolWithTag = ExAllocatePoolWithTag(0x200ui64, v7, 1886213206i64);
if( !PoolWithTag )
return -1073741801;
memset(PoolWithTag, 0, v8);
LODWORD(GetAdditionalCountersa) = v4;
VerifierInformation = VfSuspectDriversGetVerifierInformation(
PoolWithTag,
(unsigned int)v8,
ReturnedLength,
SystemInformation,
GetAdditionalCountersa);
if( *(_DWORD *)ReturnedLength <= (unsigned int)v8 )
LODWORD(v8) = *(_DWORD *)ReturnedLength;
memmove(SystemInformation, PoolWithTag, v8);
ExFreePoolWithTag(PoolWithTag, 0);
return VerifierInformation;
}Referenced by:
ExpQuerySystemInformation