KxSetTimeStampBusy
UINT8 __stdcall KxSetTimeStampBusy(INT64 *TimeStamp){
int v2;
int v3;
int v4;
UINT64 SpinCount;
LODWORD(SpinCount) = 0;
_m_prefetchw(TimeStamp);
v2 = *(_DWORD *)TimeStamp;
v3 = v2;
while( (v2 & 1) != 0 || _interlockedbittestandset((volatile signed __int32 *)TimeStamp, 0) )
{
KeYieldProcessorEx(&SpinCount);
v2 = *(_DWORD *)TimeStamp;
v4 = *(_DWORD *)TimeStamp - v3;
if( v4 >= 3 || v4 >= 2 && (v3 & 1) == 0 )
return 0;
}
return 1;
}Referenced by:
KeInvalidateAllCaches
KiFlushAddressSpaceTb
KxFlushEntireTb
KxFlushNonGlobalTb