PspJobIoRateVolumeEntryRemove
VOID __stdcall PspJobIoRateVolumeEntryRemove(){
UINT64 v0;
__int64 v1;
INT64 *v2;
UINT64 v3;
__int64 v4;
KIRQL v5;
unsigned __int64 v6;
unsigned __int64 v7;
int v8;
int v9;
unsigned __int64 v10;
v2 = (INT64 *)(v1 + 1456);
v3 = v0;
v4 = v1 + 1464;
v5 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)(v1 + 1456));
v6 = *(_QWORD *)v4;
v7 = v5;
if( (*(_BYTE *)(v4 + 8) & 1) != 0 && v6 )
v6 ^= v4;
v8 = *(_BYTE *)(v4 + 8) & 1;
if( v6 )
{
do
{
v9 = MiLockTrackerCompare(v3, v6);
if( v9 >= 0 )
{
if( v9 <= 0 )
break;
v10 = *(_QWORD *)(v6 + 8);
}
else
{
v10 = *(_QWORD *)v6;
}
if( v8 && v10 )
v6 ^= v10;
else
v6 = v10;
}
while( v6 );
if( v6 )
{
RtlRbRemoveNode((unsigned __int64 *)v4, v6);
*(_QWORD *)(v6 + 16) = -1i64;
}
}
ExReleaseSpinLockExclusiveFromDpcLevel(v2);
__writecr8(v7);
}Referenced by:
PspSetJobIoRateControlForVolume