KiPrepareFlushParameters
VOID __stdcall KiPrepareFlushParameters(_KTBFLUSH_TYPE FlushType, UINT64 *AddressSpace, UINT8 *Global){
UINT8 v3;
__int32 v4;
__int32 v5;
if( KiKvaShadow )
{
if( FlushType == FlushKernel || (v4 = FlushType - 1) != 0 && v4 == 1 )
{
v3 = 0;
LABEL_4:
*AddressSpace = 0i64;
*Global = v3;
return;
}
LABEL_6:
v3 = 1;
goto LABEL_4;
}
if( FlushType == FlushKernel )
goto LABEL_6;
v5 = FlushType - 1;
if( v5 )
{
if( v5 != 1 )
goto LABEL_6;
*AddressSpace = 0i64;
}
else
{
*AddressSpace = KeGetCurrentThread()->ApcState.Process->Pcb.DirectoryTableBase & 0xFFFFFFFFFFFFF000ui64;
}
*Global = 0;
}Referenced by:
KeFlushMultipleRangeCurrentTb
KeFlushMultipleRangeTb
KeFlushSingleCurrentTb
KeFlushTb