KiCheckForSListAddress
VOID __stdcall KiCheckForSListAddress(_KTRAP_FRAME *TrapFrame){
unsigned __int16 SegCs;
unsigned __int64 Rip;
SegCs = TrapFrame->SegCs;
Rip = TrapFrame->_Rip;
if( SegCs == 51 )
{
if( Rip > KeUserPopEntrySListResume && Rip <= KeUserPopEntrySListEnd )
TrapFrame->_Rip = KeUserPopEntrySListResume;
}
else if( SegCs == 16
&& Rip > (unsigned __int64)&ExpInterlockedPopEntrySListResume
&& Rip <= (unsigned __int64)&ExpInterlockedPopEntrySListEnd )
{
TrapFrame->_Rip = (unsigned __int64)&ExpInterlockedPopEntrySListResume;
}
}Referenced by:
KiDeliverApc
KiDispatchInterrupt
KiHvInterrupt
KiIpiInterrupt
KiMcheckAbort
KiNmiInterruptStart
KiPageFault
KiSwInterrupt
KiVmbusInterrupt0
KiVmbusInterrupt1
KiVmbusInterrupt2
KiVmbusInterrupt3
KxIsrLinkage