VfSettingsCheckForChanges
VOID __stdcall VfSettingsCheckForChanges(
UINT64 OldVerifierFlags,
UINT64 NewFlagsOn,
UINT64 NewFlagsOff,
UINT64 NewFlags){
unsigned int v4;
unsigned int v5;
int v6;
int v7;
_BOOL4 v8;
int v9;
char v10;
_BOOL4 v11;
_BOOL8 v12;
v4 = OldVerifierFlags;
v5 = NewFlags;
v6 = NewFlagsOff;
v7 = NewFlagsOn;
VfKeCheckForChanges((unsigned int)NewFlags);
v8 = 0;
v9 = 0;
v10 = v6 & v4;
v11 = 1;
if( (v7 & 8) != 0 )
{
v8 = ((v4 >> 3) & 1) == 0;
v9 = v8;
}
else if( (v10 & 8) != 0 )
{
v9 = 1;
}
if( v9 )
{
if( v8 )
MmTrackLockedPages = 1;
else
MmTrackLockedPages |= 0x10000000u;
}
ViSettingsIoCheckForChanges(v5);
if( (v7 & 0x20) != 0 )
{
if( (v4 & 0x20) != 0 )
goto LABEL_14;
}
else if( (v10 & 0x20) == 0 )
{
goto LABEL_14;
}
ViDeadlockDetectionApplySettings();
LABEL_14:
if( (v7 & 0x80u) == 0 )
{
if( (v10 & 0x80) == 0 )
goto LABEL_19;
}
else if( (v4 & 0x80) != 0 )
{
goto LABEL_19;
}
ViHalApplySettings();
LABEL_19:
if( (v7 & 0x800) != 0 )
{
v12 = ((v4 >> 11) & 1) == 0;
v11 = ((v4 >> 11) & 1) == 0;
}
else
{
if( ((unsigned __int16)v6 & (unsigned __int16)v4 & 0x800) == 0 )
goto LABEL_25;
v12 = 0i64;
}
if( v11 )
{
ViSettingsEnableKernelHandleChecking(v12);
VfSettingsApplyMiscellaneousChecks(~v6 & (v7 | v4));
}
LABEL_25:
VfPendingCheckForChanges(v5);
}Referenced by:
VfSetVerifierInformation